Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1881425ybz; Thu, 30 Apr 2020 07:09:16 -0700 (PDT) X-Google-Smtp-Source: APiQypJyLkiHsRs5y5p5IeiEnJDJXNQYo/ch8WI/cARHAUqOaFDbb1svIdZG0cHavDgD8VTo6s/j X-Received: by 2002:a17:906:b2c4:: with SMTP id cf4mr2950056ejb.340.1588255755968; Thu, 30 Apr 2020 07:09:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588255755; cv=none; d=google.com; s=arc-20160816; b=MAF0Lt9APCXrcGjF0Ln/3JS4EMiOCjpB6NO+/7/5TAiVFL0e5+J/+pPdCZnMV7yIqq 8/nEzwV6rjbAyzIYlpepKGZOZBqP91HRcLt9ORMKTEO1rsyQlrHEqrcG3aCgBCOzOQcC /Z9NNx+5m4bkQwLL9BMqJIawyKxee/CdzvaDqvyp/R+JBO6grRXuYEexPuvtjAdMJ0qf LLFOhKpiJ45sUZpVqxK5r+rEIHpUr9JBAVgZ4/Y/Yl5pd/+nabGrVpW9EXMlxnuoV5t5 lqBsgW2Jrt6+fr2FJg0yvZ1IGTBHJvl9Nz0zwBvID1kEIMDuFZTzsREE7TBgeyZkDUT/ deDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=cu0yDKOMIYG1PpNnNnviVIjkE/gnOUpUexWA5lS3p0M=; b=lq9uGjRISrZpRjfNfkOtT0TbMdtBeZQtzKHNl1/IaHo80epgAj9WuzBscjGLesu15K hMsJ3dxqWlOZ01uip87RG6PscTlHwJFjzjDdeKl0uDjHnAsEjL6WVNNvWwbOoBg8Oan/ hAA9lXhdHhafE5ynmrKU5UrnLfMiZb+6GX7zcBAginKguLuK9WGseh9rwmvgFPjrCRhj 3z18QMDMjlowOfLhXT7b5XZ1+wncjG8BYAijM25WeHgT6wbvoDBX8VsToFL7r8fT3n1M lVSVptLEoWGKRHwBaI0VGuJbQWqTdm9HkeyEX14JRz5xKq3dwSL/XkBxPZFfW6krX8mR WPtA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ie1DZ49q; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h23si5884741ejq.206.2020.04.30.07.08.50; Thu, 30 Apr 2020 07:09:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ie1DZ49q; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728890AbgD3OHO (ORCPT + 99 others); Thu, 30 Apr 2020 10:07:14 -0400 Received: from mail.kernel.org ([198.145.29.99]:34058 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728479AbgD3Nwn (ORCPT ); Thu, 30 Apr 2020 09:52:43 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 2637A208D5; Thu, 30 Apr 2020 13:52:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1588254762; bh=IpPVEfvJLI6p3CS+kHD0JvcDAyrdouIX9eEe+XK+FGM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ie1DZ49qjCAyYvnuAamTMawdVIo62RDX3PniJPtlugsr1OOOvwzpu4hSHDXEfIK+C t2p8kKxtcW1cA28p6Dk0s3NDuonnOdhlZ814YOukhCA38cKkJ8KMJ99KdRSLyzzW6E w7C4mBpScp/oN4DjLfIyS8Tv5rjIO2dKNdQBxhKQ= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Cristian Birsan , Felipe Balbi , Sasha Levin , linux-arm-kernel@lists.infradead.org, linux-usb@vger.kernel.org Subject: [PATCH AUTOSEL 5.4 21/57] usb: gadget: udc: atmel: Fix vbus disconnect handling Date: Thu, 30 Apr 2020 09:51:42 -0400 Message-Id: <20200430135218.20372-21-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200430135218.20372-1-sashal@kernel.org> References: <20200430135218.20372-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Cristian Birsan [ Upstream commit 12b94da411f9c6d950beb067d913024fd5617a61 ] A DMA transfer can be in progress while vbus is lost due to a cable disconnect. For endpoints that use DMA, this condition can lead to peripheral hang. The patch ensures that endpoints are disabled before the clocks are stopped to prevent this issue. Fixes: a64ef71ddc13 ("usb: gadget: atmel_usba_udc: condition clocks to vbus state") Signed-off-by: Cristian Birsan Signed-off-by: Felipe Balbi Signed-off-by: Sasha Levin --- drivers/usb/gadget/udc/atmel_usba_udc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c index 1d0d8952a74bf..58e5b015d40e6 100644 --- a/drivers/usb/gadget/udc/atmel_usba_udc.c +++ b/drivers/usb/gadget/udc/atmel_usba_udc.c @@ -1950,10 +1950,10 @@ static irqreturn_t usba_vbus_irq_thread(int irq, void *devid) usba_start(udc); } else { udc->suspended = false; - usba_stop(udc); - if (udc->driver->disconnect) udc->driver->disconnect(&udc->gadget); + + usba_stop(udc); } udc->vbus_prev = vbus; } -- 2.20.1