[lkml]   [2009]   [Oct]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: is avoiding compat ioctls possible?
    On Wednesday 28 October 2009, Andi Kleen wrote:
    > > > However some architectures need special operations on compat pointers
    > > > (s390 iirc), but if you don't support those it might be reasonable
    > > > to not support that.
    > >
    > > s390 has to sign extend all 32-bit compat process pointers when
    > > processing them in the 64-bit s390 kernel. I think one other
    > > architecture has this kind of situation too.
    > Which other architure? I reviewed all the definitions in tree
    > and don't see any other than s390 doing magic there.

    I'm also pretty sure that s390 is the only one needing this, I
    added the compat_ptr stuff initially.

    Note that a cast from pointer to unsigned long to u64 and back
    in C does the correct 31 to 64 bit extension, which btw is not
    a sign-extend but a unsigned extend clearing the upper 33 bits.

    The easier rule to remember should be to always to compat_ptr()
    on any pointer coming from user space, and to avoid pointers in
    data structures where possible, as DaveM pointed out.

    Arnd <><

     \ /
      Last update: 2009-10-28 11:29    [W:0.019 / U:10.172 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site