From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932582AbcERPag (ORCPT ); Wed, 18 May 2016 11:30:36 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:60880 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932506AbcERPaa (ORCPT ); Wed, 18 May 2016 11:30:30 -0400 From: Arnd Bergmann To: David Howells Cc: linux-arch@vger.kernel.org, x86@kernel.org, will.deacon@arm.com, linux-kernel@vger.kernel.org, ramana.radhakrishnan@arm.com, paulmck@linux.vnet.ibm.com, dwmw2@infradead.org Subject: Re: [RFC PATCH 01/15] cmpxchg_local() is not signed-value safe, so fix generic atomics Date: Wed, 18 May 2016 17:29:49 +0200 Message-ID: <3591761.rzLMs6OGtT@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) In-Reply-To: <146358424513.8596.16888168996359637266.stgit@warthog.procyon.org.uk> References: <146358423711.8596.9104061348359986393.stgit@warthog.procyon.org.uk> <146358424513.8596.16888168996359637266.stgit@warthog.procyon.org.uk> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:4G6t1RG62iKvlBwh2F3qLxLlFOat316mnqAJjaNKG0Z91HPF64F 268p8YGkGchCB90EZ2fTEuLWRIdW32kWN/ywX04SkuKuOUxDxqwnQJuunMJEpZuPOS1CN1f ekwvwjuc3VIGrDea4OgBaLOiUp9rA5TH3m1fxzt8hNlwFNZe4wOc9sarN1gfST8c6ahf5Xg M6dfDRYLsIX7hnKRejLcQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:YmPD5yZiRQ4=:YvzyZKEx55WBXcwCn+dkaC 9BKoKG7VfL8E6X+8mTif9wofQbkYiJ8DLUVxLi7axIvvmFv0CCKxXkXqpyRHMjcj+EQqVbhDR /UA7i+zXBdvpnlWYmm+IPmOAtUUD1O4r0c2UWOsgBn2TtMZSKIvUln5l6LLhIvqFYLpVuT+ZD zNRb49p6xt0ysGaLyFz4YABe+2XK0X0IK8njXoRr1dV3UVUoW2XW5yhY4zPE1HKfpl7DbKyth lXZJDZ9WfqpJrdFeTG4lewSQQsoAFkm1hRp2zTjfMGJ+GbRn4K6Ri0kOY0Y/+197oZx3QNj7j 6+GQiX69iPnZp/M5fpmpDJGEBPJake7r7JidHpgDNzoKYSev7TR6wh1JW1H7X3ARF/GLG5K6E HB6zlWfdoCt6VHuw6a5pYRF8el52Z8yZAihRZ0Z40z0i8rDnbPl2Qoef0ZH3XFjs13iAL7utW sTZNKR+QqpBLVqfv0wTTO87aGKUj0TMaV8TpNWwvn+nzv/205Z7r9BrVlTYMzr/Ae1xkhQOba ovh1irnvtQMsGZ11BSei/lTd0McNmZkCpU837C3k0Qm2d0Wu6QJMKyb6SN2XqyS9DdEuTHZNn dohT2/LEQKGBN5LG5KOi+Ltk3RpphbbBJdZtSiRzFiqHGERqCXFV5hvu/n9ebljnUyy0cyL9N 7/wZtAchPt5aMYoEaXvL5z5v1ZdrU890IpyAVgyv1bsBcY7qKNo52yaen6Tvcw9HokWcmKj5u Qg/6BJ70z7Kkx0hM Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wednesday 18 May 2016 16:10:45 David Howells wrote: > cmpxchg_local() is not signed-value safe because on a 64-bit machine signed > int arguments to it may be sign-extended to signed long _before_ begin cast > to unsigned long. This potentially causes comparisons to fail when dealing > with negative values. > > Fix the generic atomic functions that are implemented in terms of cmpxchg() > to cast their arguments to unsigned int before calling cmpxchg(). > > Signed-off-by: David Howells > Isn't the problem you describe something that cmpxchg() could prevent instead? Arnd