diff options
author | Marcelo Tosatti <mtosatti@redhat.com> | 2007-01-02 20:40:24 -0200 |
---|---|---|
committer | Andres Salomon <dilinger@debian.org> | 2007-01-02 17:46:02 -0500 |
commit | 677ffb84b20bd59db3f8114427c9d77124e636ac (patch) | |
tree | 6c2c44d08c748d5e2b86dece3df42ea7191ef0e6 | |
parent | dcdf823f26de6020c8347c6a4ed5b719d8cb6330 (diff) | |
download | lwn-677ffb84b20bd59db3f8114427c9d77124e636ac.tar.gz lwn-677ffb84b20bd59db3f8114427c9d77124e636ac.zip |
libertas: do not evaluate boot command response if boot2 < v3106
Apparently v3104 does not generate valid boot command response.
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
-rw-r--r-- | drivers/net/wireless/libertas/if_usb.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c index 37fe7bfa947e..6513dc39b4ef 100644 --- a/drivers/net/wireless/libertas/if_usb.c +++ b/drivers/net/wireless/libertas/if_usb.c @@ -472,6 +472,13 @@ static void if_usb_receive_fwload(struct urb *urb) if (cardp->BootCMDResp == 0) { memcpy (&bootcmdresp, skb->data + IPFIELD_ALIGN_OFFSET, sizeof(bootcmdresp)); + if(cardp->udev->descriptor.bcdDevice < 0x3106) { + kfree_skb(skb); + if_usb_submit_rx_urb_fwload(priv); + cardp->BootCMDResp = 1; + dprintk(1, "Received valid boot command response\n"); + return; + } if (bootcmdresp.u32MagicNumber != BOOT_CMD_MAGIC_NUMBER) { printk(KERN_INFO "boot cmd response wrong magic number (0x%x)\n", |