summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcelo Tosatti <mtosatti@redhat.com>2007-01-02 20:40:24 -0200
committerAndres Salomon <dilinger@debian.org>2007-01-02 17:46:02 -0500
commit677ffb84b20bd59db3f8114427c9d77124e636ac (patch)
tree6c2c44d08c748d5e2b86dece3df42ea7191ef0e6
parentdcdf823f26de6020c8347c6a4ed5b719d8cb6330 (diff)
downloadlwn-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.c7
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",