lkml.org 
[lkml]   [2008]   [Sep]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: I need help with a sparse warning
    Steven Noonan wrote:
    > On Thu, Sep 11, 2008 at 7:13 PM, Larry Finger <Larry.Finger@lwfinger.net> wrote:
    >> In file drivers/net/wireless/p54/p54common.c, the statement
    >>
    >> priv->rx_mtu = (size_t) le16_to_cpu((__le16)bootrec->data[10]);
    >>
    >> generates the sparse warning
    >>
    >> .../p54common.c:185:29: warning: cast to restricted __le16
    >>
    >> where bootrec->data is u32, and priv->rx_mtu is u16.
    >>
    >
    > (Whoops, didn't CC the mailing lists. Sorry about the double-message, Larry.)
    >
    > If priv->rx_mtu is u16, I'm surprised it doesn't get noisy about the
    > size_t cast. Unless the machine it's being compiled on is 16-bit, that
    > should throw a truncation warning, because size_t should be a 32-bit
    > integer on 32-bit machines (typically).
    >
    > I think if you change the (__le16) cast to (__le16 __force) it will
    > stop warning you about that particular issue.

    This one gets rid of the sparse warning.

    priv->rx_mtu = le16_to_cpu((__le16 __force)
    bootrec->data[10]);

    Thanks,

    Larry


    \
     
     \ /
      Last update: 2008-09-12 05:09    [W:0.021 / U:89.652 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site