[PATCH] USB: fix check_ctrlrecip to allow control transfers in state ADDRESS
check_ctrlrecip() disallows any control transfers if the device is deconfigured (in configuration 0, ie. state ADDRESS). This for example makes it impossible to read the device descriptors without configuring the device, although most standard device requests are allowed in this state by the spec. This patch allows control transfers for the ADDRESS state, too. Signed-off-by: Horst Schirmeier <horst@schirmeier.com> Cc: Alan Stern <stern@rowland.harvard.edu> Cc: David Brownell <david-b@pacbell.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
f88f8295d8
commit
24f8b116c4
|
@ -493,7 +493,8 @@ static int check_ctrlrecip(struct dev_state *ps, unsigned int requesttype, unsig
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
if (ps->dev->state != USB_STATE_CONFIGURED)
|
if (ps->dev->state != USB_STATE_ADDRESS
|
||||||
|
&& ps->dev->state != USB_STATE_CONFIGURED)
|
||||||
return -EHOSTUNREACH;
|
return -EHOSTUNREACH;
|
||||||
if (USB_TYPE_VENDOR == (USB_TYPE_MASK & requesttype))
|
if (USB_TYPE_VENDOR == (USB_TYPE_MASK & requesttype))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue