lkml.org 
[lkml]   [2008]   [Jul]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [build error] drivers/char/pcmcia/ipwireless/hardware.c:571: error: invalid use of undefined type 'struct ipw_network'
    On Tue, 29 Jul 2008 00:06:31 +0200
    Ingo Molnar <mingo@elte.hu> wrote:

    >
    > * Ingo Molnar <mingo@elte.hu> wrote:
    >
    > > drivers/char/pcmcia/ipwireless/hardware.c:571: error: invalid use of
    > > undefined type 'struct ipw_network'
    > >
    > > http://redhat.com/~mingo/misc/config-Mon_Jul_28_23_36_20_CEST_2008.bad
    > >
    > > probably due to a string of commits to that file from today.
    >
    > hm, has this version of the driver ever been built successfully? Because
    > struct ipw_network is defined in network.c [only], and then used in
    > hardware.c.
    >
    > It could be changed to void * if the structure wasnt relied on by:
    >
    > const int min_capacity =
    > ipwireless_ppp_mru(hw->network + 2);
    >
    > so changing it to void * would break this part of the code.
    >
    > furthermore, what does that "hw->network + 2" mean? It points into
    > la-la-land AFAICS, because it's initialized as:
    >
    > struct ipw_network *network =
    > kzalloc(sizeof(struct ipw_network), GFP_ATOMIC);
    >
    > and then written into hw->network via:
    >
    > ipwireless_associate_network(hw, network);
    >
    > it's getting late here, so i might be missing some really obvious
    > solution (and Jiri is asleep i suspect), so below is a temporary patch
    > that marks the driver CONFIG_BROKEN until this is resolved. This gets
    > allyesconfig going on x86.

    I suspect that this:

    --- a/drivers/char/pcmcia/ipwireless/hardware.c~a
    +++ a/drivers/char/pcmcia/ipwireless/hardware.c
    @@ -568,7 +568,7 @@ static struct ipw_rx_packet *pool_alloca
    list_del(&packet->queue);
    } else {
    const int min_capacity =
    - ipwireless_ppp_mru(hw->network + 2);
    + ipwireless_ppp_mru(hw->network) + 2;
    int new_capacity;

    spin_unlock_irqrestore(&hw->lock, flags);
    _
    was intended.


    \
     
     \ /
      Last update: 2008-07-29 00:23    [W:0.028 / U:1.580 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site