From patchwork Wed Dec 26 11:22:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zeng Tao X-Patchwork-Id: 154513 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp5418337ljp; Tue, 25 Dec 2018 19:19:16 -0800 (PST) X-Google-Smtp-Source: ALg8bN7SyLwkkVA13KRWQHMhrkx+qq1SSGQGoYVrWqcHFMVObvz7zpsqE+nCzT1adqQnCDYjYyMD X-Received: by 2002:a17:902:9006:: with SMTP id a6mr18035213plp.334.1545794356739; Tue, 25 Dec 2018 19:19:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1545794356; cv=none; d=google.com; s=arc-20160816; b=rThgsstRZ1ofDau16kdLaXv76YSkGaJjE73FgysJJgVy3jc1UPHQGpDlMwH/WDfaQB oQ7jKQk/h2OS8sDahNcwmAekxVgImfcJ2kh7vjxWkJwZQfbbyxJ00eWu7SH5FQQ2raok p3RBbUI4qrts1fmGsgb8268XHe754DXJfhY/fV8ng0yP6w0X1NwEvm/nTauJNIlR9Gq+ kmW2ANMYXFvKU016sjJG0WhEt1it/dRbG97h4+BIbvObKgZzQL8P0eoLnT50oW8RSBGN 6fvHdpA3Jp1g1optUAmLzWnoQwJG4l6JTCQhw7cJI5g9RIrclPK/1UBZnS6o8Md6/NPR EiuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from; bh=5lxVKUamx6LW49G5EIQdVYFJNa1mYu/RhZ+O6AffH2M=; b=RIMjnD3YFgj3F+STxVU579aOFlH+XWdKnaldJIu4xB3rk1GOc+GY/bN7lkYksyXFPg 6zlJrM/vn+jxIb4s5+PFsnk3SKxEVfPzn7cE8fIyz/6wtMVXWE/f5RS3z3lI2TTdU4vM Xk0o/Gar3HFCeZ3L7p/SsNPDaxjIR7CHKPjNAfsZor2LqUCmzV3v1RWf3kB2qJgpzhfL BNLx5Voo9+/aHol/JPJSBWCSOSngvPmJ/BHoo6VsG9P6K1x3Um+PHAKl9UTa+EFITSc3 8BLZFbyBGPHF7GAtxwKtMPoZLeDrzblze+xSI6ByHH7sZuMFGiMBL5eBWGFcZk/DTgyZ 2TYQ== 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 f82si33434734pfa.221.2018.12.25.19.19.16; Tue, 25 Dec 2018 19:19:16 -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 S1726960AbeLZDTN (ORCPT + 31 others); Tue, 25 Dec 2018 22:19:13 -0500 Received: from szxga05-in.huawei.com ([45.249.212.191]:16661 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725957AbeLZDTN (ORCPT ); Tue, 25 Dec 2018 22:19:13 -0500 Received: from DGGEMS410-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 214172B66B523; Wed, 26 Dec 2018 11:19:08 +0800 (CST) Received: from dessert.huawei.com (10.69.192.158) by DGGEMS410-HUB.china.huawei.com (10.3.19.210) with Microsoft SMTP Server id 14.3.408.0; Wed, 26 Dec 2018 11:18:59 +0800 From: Zeng Tao To: CC: Zeng Tao , Felipe Balbi , "Greg Kroah-Hartman" , , Subject: [PATCH] usb: dwc3: gadget: Fix the uninitialized link_state when udc starts Date: Wed, 26 Dec 2018 19:22:00 +0800 Message-ID: <1545823320-21881-1-git-send-email-prime.zeng@hisilicon.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-Originating-IP: [10.69.192.158] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently the link_state is uninitialized and the default value is 0(U0) before the first time we start the udc, and after we start the udc then stop the udc, the link_state will be undefined. We may have the following warnings if we start the udc again with an undefined link_state: WARNING: CPU: 0 PID: 327 at drivers/usb/dwc3/gadget.c:294 dwc3_send_gadget_ep_cmd+0x304/0x308 dwc3 100e0000.hidwc3_0: wakeup failed --> -22 [...] Call Trace: [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (dump_stack+0x84/0x98) [] (dump_stack) from [] (__warn+0xe8/0x100) [] (__warn) from [](warn_slowpath_fmt+0x38/0x48) [] (warn_slowpath_fmt) from [](dwc3_send_gadget_ep_cmd+0x304/0x308) [] (dwc3_send_gadget_ep_cmd) from [](dwc3_ep0_start_trans+0x48/0xf4) [] (dwc3_ep0_start_trans) from [](dwc3_ep0_out_start+0x64/0x80) [] (dwc3_ep0_out_start) from [](__dwc3_gadget_start+0x1e0/0x278) [] (__dwc3_gadget_start) from [](dwc3_gadget_start+0x88/0x10c) [] (dwc3_gadget_start) from [](udc_bind_to_driver+0x88/0xbc) [] (udc_bind_to_driver) from [](usb_gadget_probe_driver+0xf8/0x140) [] (usb_gadget_probe_driver) from [](gadget_dev_desc_UDC_store+0xac/0xc4 [libcomposite]) [] (gadget_dev_desc_UDC_store [libcomposite]) from[] (configfs_write_file+0xd4/0x160) [] (configfs_write_file) from [] (__vfs_write+0x1c/0x114) [] (__vfs_write) from [] (vfs_write+0xa4/0x168) [] (vfs_write) from [] (SyS_write+0x3c/0x90) [] (SyS_write) from [] (ret_fast_syscall+0x0/0x3c) Signed-off-by: Zeng Tao --- drivers/usb/dwc3/gadget.c | 1 + 1 file changed, 1 insertion(+) -- 2.7.4 diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 16a6e3c..e18c2a2 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -1988,6 +1988,7 @@ static int __dwc3_gadget_start(struct dwc3 *dwc) /* begin to receive SETUP packets */ dwc->ep0state = EP0_SETUP_PHASE; + dwc->link_state = DWC3_LINK_STATE_SS_DIS; dwc3_ep0_out_start(dwc); dwc3_gadget_enable_irq(dwc);