diff options
author | Jason Andryuk <jandryuk@gmail.com> | 2009-01-30 09:05:03 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@kvm.kroah.org> | 2009-02-09 14:26:18 -0500 |
commit | ea8f9fe634da9042c01ca2f4e459a7b187056021 (patch) | |
tree | 3b6b7c7e98b619c73c6937d2ba3221da99e6163d /drivers | |
parent | 89cb7e7fd6c0917bb9236ea48bf538d4668ed009 (diff) |
Staging: at76_usb: fix bugs introduced by "Staging: at76_usb: cleanup dma on stack issues"
Tracking down the firmware loading problem led to this commit.
$ git bisect bad
0d1d1424330cc1934f2b2742f0cfa2c31e6a250b is first bad commit
commit 0d1d1424330cc1934f2b2742f0cfa2c31e6a250b
Author: Oliver Neukum <oliver@neukum.org>
Date: Thu Dec 18 13:16:40 2008 +0100
Staging: at76_usb: cleanup dma on stack issues
- no DMA on stack
- cleanup unclear endianness issue
Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
:040000 040000 c4fee9ea0fef25926229d810d19dc2f89cca9401
8b165a35d16280d2413b2700a6080ef290ca1009 M drivers
The "no DMA on stack" conversion was incomplete with respect to
updating the arguments passed to usb_control_msg. The value 40 is
hardcoded as it was prior to conversion.
The driver can now load firmware, but is not fully functional.
Signed-off-by: Jason Andryuk <jandryuk@gmail.com>
Cc: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/staging/at76_usb/at76_usb.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/staging/at76_usb/at76_usb.c b/drivers/staging/at76_usb/at76_usb.c index 9195ee9319ff..06ae16341337 100644 --- a/drivers/staging/at76_usb/at76_usb.c +++ b/drivers/staging/at76_usb/at76_usb.c | |||
@@ -649,7 +649,7 @@ static int at76_get_op_mode(struct usb_device *udev) | |||
649 | return -ENOMEM; | 649 | return -ENOMEM; |
650 | ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), 0x33, | 650 | ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), 0x33, |
651 | USB_TYPE_VENDOR | USB_DIR_IN | | 651 | USB_TYPE_VENDOR | USB_DIR_IN | |
652 | USB_RECIP_INTERFACE, 0x01, 0, &op_mode, 1, | 652 | USB_RECIP_INTERFACE, 0x01, 0, op_mode, 1, |
653 | USB_CTRL_GET_TIMEOUT); | 653 | USB_CTRL_GET_TIMEOUT); |
654 | saved = *op_mode; | 654 | saved = *op_mode; |
655 | kfree(op_mode); | 655 | kfree(op_mode); |
@@ -782,7 +782,7 @@ static inline int at76_get_cmd_status(struct usb_device *udev, u8 cmd) | |||
782 | ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), 0x22, | 782 | ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), 0x22, |
783 | USB_TYPE_VENDOR | USB_DIR_IN | | 783 | USB_TYPE_VENDOR | USB_DIR_IN | |
784 | USB_RECIP_INTERFACE, cmd, 0, stat_buf, | 784 | USB_RECIP_INTERFACE, cmd, 0, stat_buf, |
785 | sizeof(stat_buf), USB_CTRL_GET_TIMEOUT); | 785 | 40, USB_CTRL_GET_TIMEOUT); |
786 | if (ret >= 0) | 786 | if (ret >= 0) |
787 | ret = stat_buf[5]; | 787 | ret = stat_buf[5]; |
788 | kfree(stat_buf); | 788 | kfree(stat_buf); |