From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752712AbbJNCvI (ORCPT ); Tue, 13 Oct 2015 22:51:08 -0400 Received: from mail-bn1bon0114.outbound.protection.outlook.com ([157.56.111.114]:54634 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752559AbbJNCvC (ORCPT ); Tue, 13 Oct 2015 22:51:02 -0400 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none;freescale.mail.onmicrosoft.com; dmarc=none action=none header.from=freescale.com; From: Shengjiu Wang To: , , CC: , , Subject: [PATCH] ARM: SWP emulation: Restore original *data when failed Date: Wed, 14 Oct 2015 10:51:17 +0800 Message-ID: <1444791077-26020-1-git-send-email-shengjiu.wang@freescale.com> X-Mailer: git-send-email 1.9.1 X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11FD051;1:1uwQ+Z36NVQSC2uQH8TNr9mqt0xCIYu/hOlPNh3zkZTh03OzbzAh6MQmaprxKt+twX5g0hKj9+JKb3SVi/HGgWXILWrc478JOIufbqVq25rcdNNJVUe5U8dr4dKJEes1nlLCsUnXlZqUnQzLNLyLPbRzFGg0g8G5vq4Fk+Eeo9NWfES9giT9+kfXXdhqPTG0WsPsdO51t02G6DY/jF7pixv1UW5AkcqMLyrW6gxDNwcJj3ji05piiWcQznV1pO+Zr8O39ru04tk9kIpkzdhU4pV+UQPzTRmyt9DXlq4dp/PyvQAbjjiP5rsmHvM8YfdHwkH6Jy8yspLFTp0N2NLlitqIOMRdZoSvL4v6wlSII6mMEO++fhGsMUFeEsiBr0sFkMyVDmFIDhvWiIFmFO599A== X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(5003940100001)(229853001)(105606002)(106466001)(6806005)(104016004)(11100500001)(2201001)(87936001)(85426001)(50226001)(5001770100001)(86362001)(50986999)(5007970100001)(19580395003)(97736004)(19580405001)(81156007)(107886002)(5001960100002)(64706001)(50466002)(36756003)(47776003)(92566002)(189998001)(46102003)(5008740100001)(77096005)(48376002)(33646002)(4001430100001);DIR:OUT;SFP:1102;SCL:1;SRVR:BY1PR0301MB0904;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;BY1PR0301MB0904;2:KGRUJ3wnH/zMTozQVWwSM1dKalyfRn4zlwXaS5Nz4dPL5wQjs7i3w+IY8E4lkuX5XVtMp54x66aNCOn3wyTe4TCizn8Ye2RXLyh8geAO51p5wiUF5RIfuyv8HYnXlc84v6jrE9+ef5qPDBS7+4iJFHjfn5MkIwc9RFeiZry3Vvw=;3:fem3lRFnfNgMCpcpNsYNXatkpGs4rKJcK5uAXYzZjaCX72PK2w5w9+rgOPtgqMd70ewTB8yJTmr+KZfICAwRCUPXE011YbNmaOZCDANwBFhzySMgSRAn9TQqY0DZGQzfbEvDrp9l7qbi/8sLogLLRunBusa58avA/EJWe/yHZAx/TiAb8wC7nZx6Nqi0lWvGGz44Ya44UpQmfHDP4/UmwwgWrOWUXt4A4lyFkExcp2g=;25:cOZqU5f/vYALjz5twbcedeaeIzlEId953Y21ZY790jHxE6sumTl5VagXu7haEQlqP74FwZnwGV16ClAh6y1XmngEt4ICPktXeeyxVPGXa1jEd7DbUbDjW6jWPAfPH9N5H5nC9B470EnhBjGCc3KtShtt1O2//Pi8TlYD0B6n7WtjDE3E0tF6aBEZtCOwbrALOKp7oLIOpp6bRJcgNBCGDGeTR/EXHabDqIaMMKnpcxnpJGXGeSAZAlHsvBt9kqvaFfO4fAqkXKF1nLkVm79wEw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR0301MB0904; X-Microsoft-Exchange-Diagnostics: 1;BY1PR0301MB0904;20:3Nk8HU1AmlBqxwwh6Uen2c7jeFWzBIxq0kT2ONrVrJAXB/068POU8RXf0s6EceBwdGh3pHaxXlbNHUxI/9Gfoef02M5TJ5msN1UhfAhF+32q7jh/h97AmbmuHvl/ZIJlBVq6k115TOrN2UXh1sOzrxtg7aITSFXpabTUfMtPWfGxoCgvOdLPy9l+IG+LA63BRfuqHkTYFZh12VDZCRPBk0ZZ7GpUjYOF/3Xz/GmnVdqlDVnFYn8t+ZZ8+VL+n85P9WzU72EMbe8Zdwl1FNyAynzgjnciBLd7liCNLckezjl6BdcnahkuPtvx0GLieHDIOskDShwWnra7kdch32ByHPnB+PVEAlHx2BAGwoShAFY=;4:fr4+ahHSbPhGD1auQUMunbqwpRK0UAiJCHuJW7QOFWnjuJdRDnUbb8/yGPR/r7xOqST4C3itnPnNSuqXI2PWc4B36ScxUINHHuui2ktMqn0rJVgHBZUgzeraYH8qFvNF+HVnQZWgwx0ZqJp+jgB9v4koabxoeDoMvcLYOmJPQOGlFANjiVzTbXHmY7FTxjTvQnwQM+Wc3vy/Q7wCnCtjGNWbtfaZv2CMALa5KKevD6P5Akodp6eZjqPrs4FpTQpLME92BTT3KiyJ/JrQMMvbr/XysWytHktNhNJBmt5jMkTfeINAUqAMS0byC8kw61C0Nj8X5aCIGdAuBfWMQQH6+WTzGWzZ3TnoN3bXdTjY+xI= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001);SRVR:BY1PR0301MB0904;BCL:0;PCL:0;RULEID:;SRVR:BY1PR0301MB0904; X-Forefront-PRVS: 0729050452 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY1PR0301MB0904;23:j4A81AIr5mk59WWJ3O/Bi34x57ktdUTVnAwocwX?= =?us-ascii?Q?+JAqtLSoUyeBNDQcKfH2j/5AujN1gqNuI0N/Tjh3hkeHlXlfNNxux+mm8irw?= =?us-ascii?Q?QPUw03PLYRiu8Mty0wTPJIweK+ghumuHkkHSXWgZbEiHVVck8Ph9vFlNcvI5?= =?us-ascii?Q?kL+xWQj0Juw/gnbhWvHzMp0/5jxfmWMnkkZXpyedvsnazkZvwYs1QB/lodvM?= =?us-ascii?Q?WGVDHsmsEMlSec505EQBT6TPWRcpYDAriDY5DUhrsElOIFL/eqyCBenpCcrd?= =?us-ascii?Q?JyicRWidwoVEcPuY5KIomLkgqtO/hbTt2OdUErbCz0Ky+gkjDmxARCbHNUpD?= =?us-ascii?Q?AFWySJ5i8J4bcmrC7fEWkl59iX+PG7Um8AtkEokr2HRQNAfr5l6n2Evdo9Yw?= =?us-ascii?Q?GLB23kTP+h/GqI4YDdn0BlsDZ3ygh3EPWnrmo8+YS8GSVCGN5oxuBXvMi+2G?= =?us-ascii?Q?06ZiJfBqMa4nzuUFwdLXAM3JB+oRScs6tLT7Yx4hUi/rK4S3cEP5gqfo/jQr?= =?us-ascii?Q?Brp/suIC412zspveUHX5vu2Y6HU/919IiMHHC8Z5VlqzhRHgOL6lUZ3oC6vs?= =?us-ascii?Q?QwbZVoIvN7Ko4X37u2L5zUITB0xG34vvEAEolhvlVD1HznzvUF0X8jhQzD8D?= =?us-ascii?Q?flNfgvyKzsUz0eGQYo76BNrZhWeXBQRx9acSjRON+eAwG5RkQBsvb7FzDsvk?= =?us-ascii?Q?O+ntziWc/W+nhR1MfwHmhIcxq2Fk/Ojl7eoylv0FVuC56lyeSfjFIZmeR1Kh?= =?us-ascii?Q?IgQsXy4rdmxvKtin92khW7udjnwx8iFHdvGxKlaK0eDOiVNUyamtazIrdrcG?= =?us-ascii?Q?xEPkEhaKjLKzU2sP8iuCGZiNMCTs1yWGtRUunhNkO0i4Klg0C0BGSahylE8/?= =?us-ascii?Q?9Sq6EPO4qLzTEC8TFuWSZOkkvtCtR6CQPFJ83EHu1SYIbRVywC80Zrn+VaAW?= =?us-ascii?Q?c8bZk7ZwK5cqPLrXRB/iEjgOKK59A1v8jEKBr3L5QjKwD7zlHm4tDhEOUS1J?= =?us-ascii?Q?UEGiXkVtaJxZfLGvR4ZsQGOdsTMS5MsHAf7dAHtbrM4XCRrWN0/VbwT2HQjw?= =?us-ascii?Q?n9yNO/UmEEiuPvEelag9GnzQtBUtzlnTgw4R/2aOrEICtvyOJag=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY1PR0301MB0904;5:t8EqYSpcOReXTOhfQ9mZ6qfNXdNvDb+ZBvA4znRm1WVrr/mqZwSUdHloYw2rKyzXtGN/n4R6z6K83B99S0TjkZNteMWmW+zDYZogts3JqsH0hY813++GdH/qbZNqZ+yc7pwY4wHQpCHeTYx/AUwJhA==;24:XwqviVIZ6q2+DY3NRAe0nHc+nr4kSiMkWxvaqaeFTjQEN4+pK+MZGYRevkybsUCuQ0F3u/Q8TegUUx7ry/LwQal/eChcWCCOWr7TMNYV2OE=;20:imTgJpsIVjCvqElKZxvzRhrTSB5yqqf+fsdb+5S42vHhifpGN/bcy55vxrPYploNcyPLzIDFl3SeWGdp5GJGKw== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Oct 2015 02:50:59.1883 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0301MB0904 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org __user_swpX_asm maybe failed in first STREX operation, emulate_swpX will try again, but the *data has been changed in first time. which cause the result is wrong. So need to recover the *data when failed. Signed-off-by: Shengjiu Wang --- arch/arm/kernel/swp_emulate.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/kernel/swp_emulate.c b/arch/arm/kernel/swp_emulate.c index 5b26e7e..c61fbf92 100644 --- a/arch/arm/kernel/swp_emulate.c +++ b/arch/arm/kernel/swp_emulate.c @@ -41,6 +41,7 @@ "1: strex"B" %0, %2, [%3]\n" \ " cmp %0, #0\n" \ " movne %0, %4\n" \ + " movne %1, %2\n" \ "2:\n" \ " .section .text.fixup,\"ax\"\n" \ " .align 2\n" \ -- 1.9.1