lkml.org 
[lkml]   [2007]   [Jan]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: spurious sparse warnings from linux/aio.h
    Suparna Bhattacharya schrieb:
    > On Fri, Jan 12, 2007 at 12:55:18PM +0100, Tilman Schmidt wrote:
    [...]
    >> causes a sparse warning:
    >>
    >> > include/linux/sched.h:1313:29: warning: symbol '__mptr' shadows an earlier one
    >> > include/linux/sched.h:1313:29: originally declared here
    >>
    >> for every source file referencing <linux/sched.h>.
    >> Could that be avoided please?
    >
    > So ... the nested container_of() is a problem ? I guess changing
    > io_wait_to_kiocb() to be an inline function instead of a macro could help ?

    So it would seem. The following experimental patch indeed makes
    the warnings disappear:

    --- linux-2.6.20-rc4-mm1-orig/include/linux/aio.h 2007-01-12 10:33:12.000000000 +0100
    +++ linux-2.6.20-rc4-mm1-work/include/linux/aio.h 2007-01-12 18:31:16.000000000 +0100
    @@ -243,8 +243,12 @@

    -#define io_wait_to_kiocb(io_wait) container_of(container_of(io_wait, \
    - struct wait_bit_queue, wait), struct kiocb, ki_wait)
    +static inline struct kiocb *io_wait_to_kiocb(wait_queue_t *io_wait)
    +{
    + struct wait_bit_queue *wbqptr =
    + container_of(io_wait, struct wait_bit_queue, wait);
    + return container_of(wbqptr, struct kiocb, ki_wait);
    +}

    #include <linux/aio_abi.h>


    Compile checked only - please review.

    Thanks
    Tilman
    --
    Tilman Schmidt E-Mail: tilman@imap.cc
    Bonn, Germany
    Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
    Ungeöffnet mindestens haltbar bis: (siehe Rückseite)

    [unhandled content-type:application/pgp-signature]
    \
     
     \ /
      Last update: 2007-01-12 19:23    [W:4.119 / U:0.236 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site