linux/drivers/usb/core
Hindin Joseph c13b86a336 USB: fix authorization and claimed port logic
It looks like I've run into some inconsistency in the USB stack behavior.

    The USB stack maintains, among others, two states for the attach
USB device: authorized and owned. Authorization state is accessible to
the user space code through correspondent sysfs files, the ownership
can be set by claiming the hub's port with ioctl call. Both state may
be set before the device is attached, by access the hub settings. When
the new device is attached, both authorization and ownership prevent
the kernel USB stack from setting the newly attached device
configuration, but when the device is authorized, the ownership state
is ignored. It looks like ignoring the ownership state on
authorization make the stack behavior inconsistent; it also prevents
the user space code from completely overriding configuration
selection, important for implementing workarounds for bugs in the
device configuration selection.

   The following patch makes the stack behavior more consistent, by
moving ownership test into usb_choose_configuration - the later
function is used both by generic_probe and usb_authorize_device

Signed-off-by: Joseph Hindin <hindin@gmail.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-15 16:56:22 -08:00
..
buffer.c USB: Core: Fix minor coding style issues 2011-01-22 19:35:39 -08:00
config.c usb: Fail a get config when the port is powered off. 2012-09-10 13:04:01 -07:00
devices.c USB: hub_for_each_child should skip unconnected ports 2012-10-24 14:51:21 -07:00
devio.c usbdevfs: Fix broken scatter-gather transfer 2012-10-17 13:41:34 -07:00
driver.c USB: Enable LPM after a failed probe. 2012-10-08 11:47:40 -07:00
endpoint.c usb/endpoint: Set release callback in the struct device_type instead of in the device itself directly 2012-08-20 14:38:08 -07:00
file.c USB: rename the usb misc class from "usb" to "usbmisc" 2012-06-13 15:37:13 -07:00
generic.c USB: fix authorization and claimed port logic 2012-11-15 16:56:22 -08:00
hcd-pci.c USB: add NO_D3_DURING_SLEEP flag and revert 151b612847 2012-06-13 13:11:39 -07:00
hcd.c USB: speed up usb_bus_resume() 2012-10-24 14:51:22 -07:00
hub.c USB: remove iteration limit in hub_tt_work() 2012-10-31 12:48:07 -07:00
Kconfig USB: remove CONFIG_EXPERIMENTAL dependancies 2012-09-17 23:00:15 -07:00
Makefile usb: Bind devices to ACPI devices when possible 2012-05-11 17:06:13 -07:00
message.c USB: fix endpoint-disabling for failed config changes 2012-11-11 18:06:48 -08:00
notify.c usb: Add export.h for EXPORT_SYMBOL/THIS_MODULE where needed 2011-10-31 19:31:25 -04:00
otg_whitelist.h
quirks.c Merge 3.6-rc6 into usb-next 2012-09-16 20:42:46 -07:00
sysfs.c usb: convert USB_QUIRK_RESET_MORPHS to USB_QUIRK_RESET 2012-08-20 14:38:08 -07:00
urb.c USB: report submission of active URBs 2012-11-11 18:10:46 -08:00
usb-acpi.c Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux 2012-10-08 07:14:06 +09:00
usb.c USB: use bus_to_hdc instead of container_of 2012-10-24 14:40:50 -07:00
usb.h usb/acpi: Store info on device removability. 2012-09-10 13:04:01 -07:00