Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 24f8b116 authored by Horst Schirmeier's avatar Horst Schirmeier Committed by Greg Kroah-Hartman
Browse files

[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: default avatarHorst Schirmeier <horst@schirmeier.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent f88f8295
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -493,7 +493,8 @@ static int check_ctrlrecip(struct dev_state *ps, unsigned int requesttype, unsig
{
	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;
	if (USB_TYPE_VENDOR == (USB_TYPE_MASK & requesttype))
		return 0;