diff options
Diffstat (limited to 'drivers/usb/wusbcore')
| -rw-r--r-- | drivers/usb/wusbcore/cbaf.c | 3 | ||||
| -rw-r--r-- | drivers/usb/wusbcore/devconnect.c | 2 | ||||
| -rw-r--r-- | drivers/usb/wusbcore/security.c | 2 |
3 files changed, 5 insertions, 2 deletions
diff --git a/drivers/usb/wusbcore/cbaf.c b/drivers/usb/wusbcore/cbaf.c index 1335cbe1191d..25eae405f622 100644 --- a/drivers/usb/wusbcore/cbaf.c +++ b/drivers/usb/wusbcore/cbaf.c | |||
| @@ -638,8 +638,7 @@ static void cbaf_disconnect(struct usb_interface *iface) | |||
| 638 | usb_put_intf(iface); | 638 | usb_put_intf(iface); |
| 639 | kfree(cbaf->buffer); | 639 | kfree(cbaf->buffer); |
| 640 | /* paranoia: clean up crypto keys */ | 640 | /* paranoia: clean up crypto keys */ |
| 641 | memset(cbaf, 0, sizeof(*cbaf)); | 641 | kzfree(cbaf); |
| 642 | kfree(cbaf); | ||
| 643 | } | 642 | } |
| 644 | 643 | ||
| 645 | static struct usb_device_id cbaf_id_table[] = { | 644 | static struct usb_device_id cbaf_id_table[] = { |
diff --git a/drivers/usb/wusbcore/devconnect.c b/drivers/usb/wusbcore/devconnect.c index 8e18141bb2e0..f0aac0cf315a 100644 --- a/drivers/usb/wusbcore/devconnect.c +++ b/drivers/usb/wusbcore/devconnect.c | |||
| @@ -889,6 +889,8 @@ static void wusb_dev_add_ncb(struct usb_device *usb_dev) | |||
| 889 | if (usb_dev->wusb == 0 || usb_dev->devnum == 1) | 889 | if (usb_dev->wusb == 0 || usb_dev->devnum == 1) |
| 890 | return; /* skip non wusb and wusb RHs */ | 890 | return; /* skip non wusb and wusb RHs */ |
| 891 | 891 | ||
| 892 | usb_set_device_state(usb_dev, USB_STATE_UNAUTHENTICATED); | ||
| 893 | |||
| 892 | wusbhc = wusbhc_get_by_usb_dev(usb_dev); | 894 | wusbhc = wusbhc_get_by_usb_dev(usb_dev); |
| 893 | if (wusbhc == NULL) | 895 | if (wusbhc == NULL) |
| 894 | goto error_nodev; | 896 | goto error_nodev; |
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) | |||
| 312 | result = wusb_set_dev_addr(wusbhc, wusb_dev, 0); | 312 | result = wusb_set_dev_addr(wusbhc, wusb_dev, 0); |
| 313 | if (result < 0) | 313 | if (result < 0) |
| 314 | goto error_addr0; | 314 | goto error_addr0; |
| 315 | usb_set_device_state(usb_dev, USB_STATE_DEFAULT); | ||
| 315 | usb_ep0_reinit(usb_dev); | 316 | usb_ep0_reinit(usb_dev); |
| 316 | 317 | ||
| 317 | /* Set new (authenticated) address. */ | 318 | /* Set new (authenticated) address. */ |
| @@ -327,6 +328,7 @@ int wusb_dev_update_address(struct wusbhc *wusbhc, struct wusb_dev *wusb_dev) | |||
| 327 | result = wusb_set_dev_addr(wusbhc, wusb_dev, new_address); | 328 | result = wusb_set_dev_addr(wusbhc, wusb_dev, new_address); |
| 328 | if (result < 0) | 329 | if (result < 0) |
| 329 | goto error_addr; | 330 | goto error_addr; |
| 331 | usb_set_device_state(usb_dev, USB_STATE_ADDRESS); | ||
| 330 | usb_ep0_reinit(usb_dev); | 332 | usb_ep0_reinit(usb_dev); |
| 331 | usb_dev->authenticated = 1; | 333 | usb_dev->authenticated = 1; |
| 332 | error_addr: | 334 | error_addr: |
