lkml.org 
[lkml]   [2016]   [Mar]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] x86_32: add support for 64 bit __get_user()
    On Wed, Mar 09, 2016 at 10:22:50AM -0800, H. Peter Anvin wrote:
    > On 03/09/2016 09:50 AM, Benjamin LaHaise wrote:
    > > On Wed, Mar 09, 2016 at 09:36:30AM -0800, H. Peter Anvin wrote:
    > >> On March 9, 2016 9:22:25 AM PST, Benjamin LaHaise <bcrl@kvack.org> wrote:
    > >>> The existing __get_user() implementation does not support fetching
    > >>> 64 bit values on 32 bit x86. Implement this in a way that does not
    > >>> generate any incorrect warnings as cautioned by Russell King. Test
    > >>> code available at http://www.kvack.org/~bcrl/x86_32-get_user.tar .
    > > ...
    > >> Weird. I could swear we had already fixed this a few years ago.
    > >
    > > That surprised me as well, but Russell raised the fact that the approaches
    > > previously tried on 32 bit architectures had caused various incorrect
    > > compiler warnings for certain obscure cases -- see the code in test_module.c
    > > in that URL that Russell provided to demonstrate the problem across all the
    > > corner cases.
    >
    > Oh, I see... I implemented it for put but not get... weird. You may
    > want to look at the __inttype() macro defined earlier in this file; it
    > might be useful.

    Ah, interesting. I'll look at that.

    > I presume you have already seen:
    >
    > >> fs/select.c:710: Error: operand type mismatch for `movq'
    > >> fs/select.c:714: Error: incorrect register `%cx' used with `q' suffix
    > fs/select.c:711: Error: operand type mismatch for `movq'
    > >> fs/select.c:715: Error: incorrect register `%si' used with `q' suffix
    > --
    > fs/aio.c: Assembler messages:
    > >> fs/aio.c:1606: Error: operand type mismatch for `movq'
    > >> fs/aio.c:1610: Error: incorrect register `%si' used with `q' suffix
    >
    > ... which implies it used 16-bit registers for 64-bit operations when
    > compiling for 64 bits.

    Yup, will respin shortly.

    -ben
    --
    "Thought is the essence of where you are now."

    \
     
     \ /
      Last update: 2016-03-09 20:01    [W:5.410 / U:1.148 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site