From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1423645AbcBQOtD (ORCPT ); Wed, 17 Feb 2016 09:49:03 -0500 Received: from mail-lb0-f178.google.com ([209.85.217.178]:35857 "EHLO mail-lb0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1423553AbcBQOs7 (ORCPT ); Wed, 17 Feb 2016 09:48:59 -0500 From: Felipe Balbi To: Vegard Nossum , Marek Szyprowski , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Ruslan Bilovol , Bartlomiej Zolnierkiewicz , Maxime Ripard , Greg Kroah-Hartman , Peter Chen Subject: Re: [PATCH] usb: gadget: gadgetfs: unregister gadget only if it got successfully registered In-Reply-To: <56B88B0B.8020503@oracle.com> References: <56B7D2C9.5070301@oracle.com> <1454933704-31233-1-git-send-email-m.szyprowski@samsung.com> <56B88B0B.8020503@oracle.com> User-Agent: Notmuch/0.21 (http://notmuchmail.org) Emacs/25.0.50.1 (x86_64-pc-linux-gnu) Date: Wed, 17 Feb 2016 16:48:51 +0200 Message-ID: <87twl7gzos.fsf@ti.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha1; protocol="application/pgp-signature" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi, Vegard Nossum writes: > On 02/08/2016 01:15 PM, Marek Szyprowski wrote: >> Gadgetfs driver called usb_gadget_unregister_driver unconditionally, even >> if it didn't register it earlier due to other failures. This patch fixes >> this. >> >> Reported-by: Vegard Nossum >> Signed-off-by: Marek Szyprowski >> --- >> drivers/usb/gadget/legacy/inode.c | 7 +++++-- >> 1 file changed, 5 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/usb/gadget/legacy/inode.c b/drivers/usb/gadget/lega= cy/inode.c >> index 7a62a2f7bc18..cde6a2133c90 100644 >> --- a/drivers/usb/gadget/legacy/inode.c >> +++ b/drivers/usb/gadget/legacy/inode.c >> @@ -130,7 +130,8 @@ struct dev_data { >> setup_can_stall : 1, >> setup_out_ready : 1, >> setup_out_error : 1, >> - setup_abort : 1; >> + setup_abort : 1, >> + gadget_registered : 1; >> unsigned setup_wLength; >> >> /* the rest is basically write-once */ >> @@ -1179,7 +1180,8 @@ dev_release (struct inode *inode, struct file *fd) >> >> /* closing ep0 =3D=3D=3D shutdown all */ >> >> - usb_gadget_unregister_driver (&gadgetfs_driver); >> + if (dev->gadget_registered) >> + usb_gadget_unregister_driver (&gadgetfs_driver); >> >> /* at this point "good" hardware has disconnected the >> * device from USB; the host won't see it any more. >> @@ -1825,6 +1827,7 @@ dev_config (struct file *fd, const char __user *bu= f, size_t len, loff_t *ptr) >> * kick in after the ep0 descriptor is closed. >> */ >> value =3D len; >> + dev->gadget_registered =3D true; >> } >> return value; >> >> > > That (along with the first patch) fixes the problem! Thanks. > > It also seems to have fixed another crash I was seeing with > req->complete =3D=3D NULL in usb_gadget_giveback_request(). please resend both patches with proper Acks and Tested-bys so I can apply them. =2D-=20 balbi --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJWxIhTAAoJEIaOsuA1yqREefAP/0JCbaljh5q+mIgbXOR8XT3+ J5sc0mvob78ZI8u1LVeo38XckFleSeB2z7i6Xdu82K+2ELS0v5TLDkt0d31DDWlg hfzsiKYEclCZ0v2zd1Qs8GfdjmV54K6mDwGvTRirellpGQuBduni/cOZ2JOgkrK/ /melrRsp6CLZKzky0vtaunsq3UNmJrv0mS0jiMK30NPm9LFg1ZHqAIhUr5yuo68/ Py/L2T7AzNsuIyHzePiVKdIraTN7NmoQZFhscUSMonFoGd/2FVe8qOhevnstUpPO V42hQgcPbobq2XHsOyTXfym9wnePg5KtoW6nfmk7vbY8yqtfJCwrBeXUqTWXBnWk 5S1F7AQRbUomP56XEcUXNFua/wkZc4DxtHjl74xJUxDRByQ1A5uxcOX9LFbRla+9 edBfIiP1q6jC2jA9CGNjNp2pmg3JLwAYL8OAy5+BchBvp+cwW7ZUsuMqfwXTIIcW VO6MFmhFOyKqzrcxdwBZPwLlCtWEtjkYSNNd0Rbv+uNZ197NSBZnLBJjyNRtY8ck tdbDM/AvXum3XLUAljrSrBGAP8eWvuQPig6GqgDDd8i78Nme9BAFX5Uzrm2ORSiX P5HC9uRjeq0X28HryiMWhnLKwXCSCUYKBTZbSjvnUxUU6XsipNiEbFv3jJjD0cMI v+7lRfF8za7rWBx3U/Of =f18B -----END PGP SIGNATURE----- --=-=-=--