lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87vb32kz7s.fsf@intel.com>
Date:	Thu, 28 Apr 2016 09:46:15 +0300
From:	Felipe Balbi <balbi@...nel.org>
To:	"Du\, Changbin" <changbin.du@...el.com>
Cc:	"gregkh\@linuxfoundation.org" <gregkh@...uxfoundation.org>,
	"linux-usb\@vger.kernel.org" <linux-usb@...r.kernel.org>,
	"linux-kernel\@vger.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH] usb: dwc3: usb/dwc3: fake dissconnect event when turn off pullup


Hi,

(we don't top-post on this forum ;-)

"Du, Changbin" <changbin.du@...el.com> writes:
> Hi, Balbi,
>
> The step to reproduce this issue is:
> 1) connect device to a host and wait its enumeration.
> 2) trigger software disconnect by calling function
>     usb_gadget_disconnect(), which finally call
>    dwc3_gadget_pullup(false). Do not reconnect device
>   (I mean no enumeration go on, keep bit Run/Stop 0.).
>
> At here, gadget driver's disconnect callback should be
> Called, right? We has been disconnected. But no, as
> You said " not generating disconnect IRQ after you
> drop Run/Stop is expected".
>
> And I am testing on an Android device, Android only
> use dwc3_gadget_pullup(false) to issue a soft disconnection.
> This confused user that the UI still show usb as connected
> State, caused by missing a disconnect event.

okay, so I know what this is. This is caused by Android gadget itself
not notifying the gadget that a disconnect has happened. Just look at
udc-core's soft_connect implementation for the sysfs interface, and
you'll see what I mean.

This should be fixed at Android gadget itself. The only thing we could
do is introduce a new usb_gadget_soft_connect()/disconnect() to wrap the
logic so it's easier for Android gadget to use; but even that I'm a
little bit reluctant to do because Android should be using our
soft_connect interface instead of reimplementing it (wrongly) by its
own.

-- 
balbi

Download attachment "signature.asc" of type "application/pgp-signature" (819 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ