Received: by 10.223.176.5 with SMTP id f5csp2835844wra; Mon, 5 Feb 2018 10:39:42 -0800 (PST) X-Google-Smtp-Source: AH8x225zuS0m1tTSFEwv0gs8LgvaTNEw6EeoLL+M07gyIswE3j3A+OphXRiCfgFXrpojwf3+3LzB X-Received: by 2002:a17:902:7082:: with SMTP id z2-v6mr14648184plk.244.1517855982603; Mon, 05 Feb 2018 10:39:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517855982; cv=none; d=google.com; s=arc-20160816; b=Ffw/u8E8CxN9UB+v2A0JE69U8SAV60fQSiapcwobCHXgZQ5N+B12JTMOiYJFOwSUVS JNeyLDdJxV0OBnRF0RtbtBYNFIYfoOTUn1g25oS5v468SJNBmpq6B42YNNtrSCvKW21t HO7SAEOEmIgNSPBm/8XNpAgwypeAPjiwHYco0oODe/Q+19DOClMHuQKiD4HRogbFkzkv EfuO3TrYmnY8RT8GMfvK4iQKVm3ks3SR8ekGW31Ba77rvurR32T4W4wDec6xW1TkyLUI vuGZ4aDNlILPeykiJxAwNc1YG7yJyoM8Df4BPGa2Y+yGVnNJMUDzYBl4SUjgO5QNXjsN P4nQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=GTdzF2PIf02Ta6YMH1LfDuQKNKNajat+eiRpvC4LqPA=; b=xUbfHJu9s6gc6ELFxf+BFSiDlSzzfM3+kbfZwNFmhQ3eILvSmbbc8Yd2E/RoMkOsIv 3VHwL+PHlgNNl8MeAqlIPksxAruo54ysscfSdR+FE1gTFfgVEOiNKatEVn/gO3Y+DThC gYEjDY1B1Z5NrD4SF4VH07+khTgO5/VwODD4oxLs/cHdvgMX1xGFJtqmHZRykU7VJgvV irJDpPiqK4mkATrd0iJLTTmIT8rNpEgu2Ozc7dwUBH3sKx7LJkyDsWpDRPPMhczuyfxs +m6WSgOtn6VwD8sjEAe6wjzlwW7poRYxKfa6O/9f+zLhPMFJ3LQJE2MsyB3rtWrIwQ47 amgA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k69si3978493pgc.618.2018.02.05.10.39.28; Mon, 05 Feb 2018 10:39:42 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753887AbeBEShL (ORCPT + 99 others); Mon, 5 Feb 2018 13:37:11 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:54198 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753256AbeBES0v (ORCPT ); Mon, 5 Feb 2018 13:26:51 -0500 Received: from localhost (unknown [104.132.1.108]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 3CE84D1E; Mon, 5 Feb 2018 18:26:40 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Felipe Balbi , Michal Nazarewicz , John Stultz , Dmitry Shmidt , Badhri , Android Kernel Team , Hemant Kumar , Amit Pundir , Greg KH Subject: [PATCH 3.18 32/36] usb: f_fs: Prevent gadget unbind if it is already unbound Date: Mon, 5 Feb 2018 10:24:00 -0800 Message-Id: <20180205182353.091072658@linuxfoundation.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180205182351.774761393@linuxfoundation.org> References: <20180205182351.774761393@linuxfoundation.org> User-Agent: quilt/0.65 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 3.18-stable review patch. If anyone has any objections, please let me know. ------------------ From: Hemant Kumar commit ce5bf9a50daf2d9078b505aca1cea22e88ecb94a upstream. Upon usb composition switch there is possibility of ep0 file release happening after gadget driver bind. In case of composition switch from adb to a non-adb composition gadget will never gets bound again resulting into failure of usb device enumeration. Fix this issue by checking FFS_FL_BOUND flag and avoid extra gadget driver unbind if it is already done as part of composition switch. This fixes adb reconnection error reported on Android running v4.4 and above kernel versions. Verified on Hikey running vanilla v4.15-rc7 + few out of tree Mali patches. Reviewed-at: https://android-review.googlesource.com/#/c/582632/ Cc: Felipe Balbi Cc: Greg KH Cc: Michal Nazarewicz Cc: John Stultz Cc: Dmitry Shmidt Cc: Badhri Cc: Android Kernel Team Signed-off-by: Hemant Kumar [AmitP: Cherry-picked it from android-4.14 and updated the commit log] Signed-off-by: Amit Pundir Signed-off-by: Greg Kroah-Hartman --- drivers/usb/gadget/function/f_fs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c @@ -3438,7 +3438,8 @@ static void ffs_closed(struct ffs_data * ci = opts->func_inst.group.cg_item.ci_parent->ci_parent; ffs_dev_unlock(); - unregister_gadget_item(ci); + if (test_bit(FFS_FL_BOUND, &ffs->flags)) + unregister_gadget_item(ci); return; done: ffs_dev_unlock();