From: Pan Xinhui <xinhui@linux.vnet.ibm.com>
To: Rich Felker <dalias@libc.org>
Cc: linux-kernel@vger.kernel.org, ysato@users.sourceforge.jp,
mst@redhat.com, peterz@infradead.org, linux-sh@vger.kernel.org
Subject: Re: [PATCH V2]sh: cmpxchg: fix a bit shift bug in big_endian os
Date: Tue, 26 Apr 2016 10:07:37 +0000 [thread overview]
Message-ID: <571F3DE9.6010500@linux.vnet.ibm.com> (raw)
In-Reply-To: <20160426013913.GJ21636@brightrain.aerifal.cx>
On 2016年04月26日 09:39, Rich Felker wrote:
> On Wed, Apr 20, 2016 at 02:41:00PM +0800, Pan Xinhui wrote:
>> From: Pan Xinhui <xinhui.pan@linux.vnet.ibm.com>
>>
>> Correct bitoff in big endian OS.
>> Current code works correctly for 1 byte but not for 2 bytes.
>>
>> Fixes: 3226aad81aa6 ("sh: support 1 and 2 byte xchg")
>> Signed-off-by: Pan Xinhui <xinhui.pan@linux.vnet.ibm.com>
>> Acked-by: Michael S. Tsirkin <mst@redhat.com>
>> ---
>> changes from V1:
>> just add some patch comments. no code changes.
>
> Looks good. Are you aware of any code affected by this bug that would
> make it a regression in 4.6? If so I'll try to get this in now as a
> bugfix; otherwise I'll include it in stuff for 4.7.
>
no idea about what code is affected.
4.7 is okay I think. :)
xinhui
> Rich
>
>
>> ---
>> arch/sh/include/asm/cmpxchg-xchg.h | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/sh/include/asm/cmpxchg-xchg.h b/arch/sh/include/asm/cmpxchg-xchg.h
>> index 7219719..1e881f5 100644
>> --- a/arch/sh/include/asm/cmpxchg-xchg.h
>> +++ b/arch/sh/include/asm/cmpxchg-xchg.h
>> @@ -21,7 +21,7 @@ static inline u32 __xchg_cmpxchg(volatile void *ptr, u32 x, int size)
>> int off = (unsigned long)ptr % sizeof(u32);
>> volatile u32 *p = ptr - off;
>> #ifdef __BIG_ENDIAN
>> - int bitoff = (sizeof(u32) - 1 - off) * BITS_PER_BYTE;
>> + int bitoff = (sizeof(u32) - size - off) * BITS_PER_BYTE;
>> #else
>> int bitoff = off * BITS_PER_BYTE;
>> #endif
>> --
>> 1.9.1
>
WARNING: multiple messages have this Message-ID (diff)
From: Pan Xinhui <xinhui@linux.vnet.ibm.com>
To: Rich Felker <dalias@libc.org>
Cc: linux-kernel@vger.kernel.org, ysato@users.sourceforge.jp,
mst@redhat.com, peterz@infradead.org, linux-sh@vger.kernel.org
Subject: Re: [PATCH V2]sh: cmpxchg: fix a bit shift bug in big_endian os
Date: Tue, 26 Apr 2016 18:07:37 +0800 [thread overview]
Message-ID: <571F3DE9.6010500@linux.vnet.ibm.com> (raw)
In-Reply-To: <20160426013913.GJ21636@brightrain.aerifal.cx>
On 2016年04月26日 09:39, Rich Felker wrote:
> On Wed, Apr 20, 2016 at 02:41:00PM +0800, Pan Xinhui wrote:
>> From: Pan Xinhui <xinhui.pan@linux.vnet.ibm.com>
>>
>> Correct bitoff in big endian OS.
>> Current code works correctly for 1 byte but not for 2 bytes.
>>
>> Fixes: 3226aad81aa6 ("sh: support 1 and 2 byte xchg")
>> Signed-off-by: Pan Xinhui <xinhui.pan@linux.vnet.ibm.com>
>> Acked-by: Michael S. Tsirkin <mst@redhat.com>
>> ---
>> changes from V1:
>> just add some patch comments. no code changes.
>
> Looks good. Are you aware of any code affected by this bug that would
> make it a regression in 4.6? If so I'll try to get this in now as a
> bugfix; otherwise I'll include it in stuff for 4.7.
>
no idea about what code is affected.
4.7 is okay I think. :)
xinhui
> Rich
>
>
>> ---
>> arch/sh/include/asm/cmpxchg-xchg.h | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/sh/include/asm/cmpxchg-xchg.h b/arch/sh/include/asm/cmpxchg-xchg.h
>> index 7219719..1e881f5 100644
>> --- a/arch/sh/include/asm/cmpxchg-xchg.h
>> +++ b/arch/sh/include/asm/cmpxchg-xchg.h
>> @@ -21,7 +21,7 @@ static inline u32 __xchg_cmpxchg(volatile void *ptr, u32 x, int size)
>> int off = (unsigned long)ptr % sizeof(u32);
>> volatile u32 *p = ptr - off;
>> #ifdef __BIG_ENDIAN
>> - int bitoff = (sizeof(u32) - 1 - off) * BITS_PER_BYTE;
>> + int bitoff = (sizeof(u32) - size - off) * BITS_PER_BYTE;
>> #else
>> int bitoff = off * BITS_PER_BYTE;
>> #endif
>> --
>> 1.9.1
>
next prev parent reply other threads:[~2016-04-26 10:07 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-19 6:58 [PATCH] sh: cmpxchg: fix a bit shift bug in big_endian os Pan Xinhui
2016-04-19 6:58 ` Pan Xinhui
2016-04-19 10:00 ` Michael S. Tsirkin
2016-04-19 10:00 ` Michael S. Tsirkin
2016-04-20 6:41 ` [PATCH V2]sh: " Pan Xinhui
2016-04-20 6:41 ` Pan Xinhui
2016-04-26 1:39 ` Rich Felker
2016-04-26 1:39 ` Rich Felker
2016-04-26 10:07 ` Pan Xinhui [this message]
2016-04-26 10:07 ` Pan Xinhui
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=571F3DE9.6010500@linux.vnet.ibm.com \
--to=xinhui@linux.vnet.ibm.com \
--cc=dalias@libc.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=mst@redhat.com \
--cc=peterz@infradead.org \
--cc=ysato@users.sourceforge.jp \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.