2010/4/22 Sujith <Sujith.Manoharan@xxxxxxxxxxx>: > So, apparently there is a USB reboot command > that the target accepts. Using this instead of > usb_reset_device() fixes the issue of "descriptor read error" > that pops up on repeated load/unload. > > Signed-off-by: Sujith <Sujith.Manoharan@xxxxxxxxxxx> > --- > drivers/net/wireless/ath/ath9k/hif_usb.c | 13 ++++++++++++- > 1 files changed, 12 insertions(+), 1 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c > index cee5feb..ce13e08 100644 > --- a/drivers/net/wireless/ath/ath9k/hif_usb.c > +++ b/drivers/net/wireless/ath/ath9k/hif_usb.c > @@ -889,6 +889,17 @@ err_alloc: > return ret; > } > > +static void ath9k_hif_usb_reboot(struct usb_device *udev) > +{ > + u32 cmd = 0xffffffff; > + int ret; > + > + ret = usb_bulk_msg(udev, usb_sndbulkpipe(udev, USB_REG_OUT_PIPE), > + &cmd, sizeof(cmd), NULL, HZ); The buffer passed to usb hcd should not be allocated from stack since it will be DMAed to usb host controller. The 'cmd' should be allocated by kmalloc even though it is only 4byte. -- Lei Ming -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html