Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp690878ybz; Fri, 1 May 2020 06:54:11 -0700 (PDT) X-Google-Smtp-Source: APiQypKlLJK2lKRVBQVqMzQkD3ps43MBIsQgohL5UAoX3It/GAm6p6rrV0a8OgMVIc7+JyaSXz9U X-Received: by 2002:a17:906:9706:: with SMTP id k6mr3391632ejx.103.1588341251240; Fri, 01 May 2020 06:54:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588341251; cv=none; d=google.com; s=arc-20160816; b=Hr6iIVvCQB/codY9g3ToJ3Rj4TI0/6CzB02JlYzzzx53xFDVMSiKbehuam5EJOzep9 HOzOvTcs+/2uZt5R4J0KP7CuNKwiQ7RKA10gTRHOk0US1oEE6ToCHGFIp0Ce7SVXl692 7EYV46T5sO8OnpvijEPaoxjnB9YQh9xRuuLPSZ9KUcodoylbPL8T6CYgcByfqL0z/y1Q uAVSI0NSGGFtqeUcZZMdlFwuskVUNVm+R1+prVJn1u7C36IZDrZpcWlZfLFe7YSg085Z Na5cTUmHxnwefEEueVRwaqOjgyEacEgiART1tA2x7mddq8h27eJvxpqpXchRtgHzoUxX 0gTw== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=KyHP3AIEuITn5PyNJqQIuaLFeKcpNcgnQnQ8/gAMVLE=; b=DK9Be8wF2tfoKxE4kF1ZvNQZqyPwzfa7B66cm5I8E5oXIhs/OxS3oUAeS/nFD5PvoM eKuJUJ77hRfiYKgbn/uPFqYjf3HpqdDREU7IIWaPLYlar+VOxNGZK/Q3YaSq/Ayx8BSG LwgxoAybmr0WJz/CGPc+R26lLKJpa5EMXFz9s6ZFUt+pa6C6iHLXvZ37nf36eb85c+dY kotgRTipUkYT15ICZElFMNFizY/qBCXW326qIt9Gsho19vi+FFLhHNw3m0DqucWMOHaq GcSC1J4uhLmY/D/jjVc4Kz7UA66E42cA7KLG6KmxUXI3jeYwhULL18I7mjsD7iQcpyWE v97Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=zs1LManO; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t27si1693626edt.42.2020.05.01.06.53.47; Fri, 01 May 2020 06:54:11 -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=zs1LManO; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731499AbgEANv6 (ORCPT + 99 others); Fri, 1 May 2020 09:51:58 -0400 Received: from mail.kernel.org ([198.145.29.99]:37484 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731032AbgEANiF (ORCPT ); Fri, 1 May 2020 09:38:05 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 5B8E92173E; Fri, 1 May 2020 13:38:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1588340284; bh=XcghBDSwiZLVwlHGU2MXLCquDLWZS7gj+r5HQZeJ6rQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=zs1LManOGtHWyLySVOt92ix/Kha3LGOAlINoIQLStk36PEH2IHnSfel1L068lxHG3 jz2/VJ0XTJVdt3cDJ7HkYvIgp8OkQuG9bila8Lto78mJb1wK3O3C876w/TUY9BtKm0 6zAbsVLhvmOosTZluN58ip3e/y/+E7xRs/CHPZ8w= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Cristian Birsan , Felipe Balbi Subject: [PATCH 5.4 08/83] usb: gadget: udc: atmel: Fix vbus disconnect handling Date: Fri, 1 May 2020 15:22:47 +0200 Message-Id: <20200501131525.999344083@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200501131524.004332640@linuxfoundation.org> References: <20200501131524.004332640@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 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 commit 12b94da411f9c6d950beb067d913024fd5617a61 upstream. 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: Greg Kroah-Hartman --- drivers/usb/gadget/udc/atmel_usba_udc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- 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( 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; }