lkml.org 
[lkml]   [2010]   [Aug]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [GIT] Sparc
    Oh,
    I noticed another thing:

    In commit 86fa04b8742ac681d470786f55e2403ada0075b2 you fix the return
    type, but you still have the wrong _argument_ type:

    extern void atomic64_add(int, atomic64_t *);
    extern void atomic64_sub(int, atomic64_t *);
    extern long atomic64_add_ret(int, atomic64_t *);
    extern long atomic64_sub_ret(int, atomic64_t *);

    note how if somebody does

    atomic64_add(0x100000000ull, &x)

    sparc64 will get it wrong, because it will only take the low 32 bits
    of the first argument, and add zero to the 64-bit counter.

    Which is definitely not what the code intended, I think.

    I merged your pull request, but you've got some fixing up to do,
    methinks. I also really think you need to make your rwsem's use 64-bit
    values on sparc64, because otherwise you can overflow the mmap_sem by
    having more than 65536 threads doing page-faults (on 32-bit, having
    more than 2**16 threads in one process is unlikely to work for other
    reasons, like just pure stack usage, so we don't really care about the
    32-bit case)

    Linus


    \
     
     \ /
      Last update: 2010-08-18 04:03    [W:6.730 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site