summaryrefslogtreecommitdiffstats
path: root/drivers/usb/wusbcore/security.c
diff options
context:
space:
mode:
authorDavid Vrabel <david.vrabel@csr.com>2009-02-18 14:43:47 +0000
committerGreg Kroah-Hartman <gregkh@suse.de>2009-03-24 16:20:35 -0700
commit6da9c99059bf24fb1faae6b9613bae64ea50c05e (patch)
treef190e2d2b6daab5d8b02c57b24ac37f43a50c1b7 /drivers/usb/wusbcore/security.c
parent4246b06a33ebdd6593dccaab3aa01eb0c9f8c1c8 (diff)
downloadlinux-6da9c99059bf24fb1faae6b9613bae64ea50c05e.tar.gz
linux-6da9c99059bf24fb1faae6b9613bae64ea50c05e.tar.bz2
linux-6da9c99059bf24fb1faae6b9613bae64ea50c05e.zip
USB: allow libusb to talk to unauthenticated WUSB devices
To permit a userspace application to associate with WUSB devices using numeric association, control transfers to unauthenticated WUSB devices must be allowed. This requires that wusbcore correctly sets the device state to UNAUTHENTICATED, DEFAULT and ADDRESS and that control transfers can be performed to UNAUTHENTICATED devices. Signed-off-by: David Vrabel <david.vrabel@csr.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/wusbcore/security.c')
-rw-r--r--drivers/usb/wusbcore/security.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/usb/wusbcore/security.c b/drivers/usb/wusbcore/security.c
index f4aa28eca70d..8118db7f1d8d 100644
--- a/drivers/usb/wusbcore/security.c
+++ b/drivers/usb/wusbcore/security.c
@@ -312,6 +312,7 @@ int wusb_dev_update_address(struct wusbhc *wusbhc, struct wusb_dev *wusb_dev)
result = wusb_set_dev_addr(wusbhc, wusb_dev, 0);
if (result < 0)
goto error_addr0;
+ usb_set_device_state(usb_dev, USB_STATE_DEFAULT);
usb_ep0_reinit(usb_dev);
/* Set new (authenticated) address. */
@@ -327,6 +328,7 @@ int wusb_dev_update_address(struct wusbhc *wusbhc, struct wusb_dev *wusb_dev)
result = wusb_set_dev_addr(wusbhc, wusb_dev, new_address);
if (result < 0)
goto error_addr;
+ usb_set_device_state(usb_dev, USB_STATE_ADDRESS);
usb_ep0_reinit(usb_dev);
usb_dev->authenticated = 1;
error_addr: