Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp866551pxb; Tue, 1 Feb 2022 12:03:55 -0800 (PST) X-Google-Smtp-Source: ABdhPJyMQANE+drobGSuctpYDtkxQeb1HGOygKWuutrKGgok+Q/opC1d7pC+xlonShjwgDwf8oEz X-Received: by 2002:a17:907:1609:: with SMTP id hb9mr22554718ejc.159.1643745835009; Tue, 01 Feb 2022 12:03:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643745835; cv=none; d=google.com; s=arc-20160816; b=WXWp6D4scj6w+VlZTKp5A8X7QGMgblP6Uvrub1mAe1o02zvHl5m+7j3b4tvr7b8SdQ /00BxH0goCCtIIcjoKej1h1At2YnMjLKKkTuqfQGLVz3xPpDsYh6reOiJ/DNUKFYTFr/ 1SW+mzEP34MARUOxzIFLw8YOrqMuxrCLx53ILFvq0NDOgyFHUE6Z/d5r+RO3R+KqKt98 JEU+yD41hPfNXDiMCzFCtZN01A5y8ttz72iLpZGx9wGxdf7V8l1/9Ge1MCflmODy7RNS EjlU091Z+8RguwrGb/lni3X6wd/xqS3Dfw8MWHulTMbsfBwGDyvNKku8jFQfvAIMgUuj ix8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=tBHhQoD6GzC4eW/MIDyvar8KO3NjoFJ5OFLPZCnTJWg=; b=VlUzgpOSvdYq6GoX1K9zFe6JpcUc4zctaahe7Pn+HNGmIm5W6G0ZuH2SGDKTksCF/c 1kj8DpR25HkfWGtSaxZo96waqs5dphKGqAt48Rs1PnUxG4RBZblHq+1UMmUueGML+oU6 HVe07FJhvVRzJV5kBhokM+fX8MAQIYB8GWJBr/bXOs7MrHoX5UXA8qJD6bIJgDSyyONK Jc/WhUej13XJ8Gu9hhW315d9EAaiLBQ9xzyEuP4xFSqRWPFdCc6uLlwx2oIr33fuDrO7 xgzA/Shi9WlA5uoBsamrvk89Q7aHIcJAvCJPyVNdEhHXZDl+znPsajN12hQuYScACK44 aVVA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=qPt6z8XC; 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=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p21si8961580ejn.754.2022.02.01.12.03.21; Tue, 01 Feb 2022 12:03:54 -0800 (PST) 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=@linuxfoundation.org header.s=korg header.b=qPt6z8XC; 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=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1376461AbiAaLMp (ORCPT + 99 others); Mon, 31 Jan 2022 06:12:45 -0500 Received: from ams.source.kernel.org ([145.40.68.75]:53778 "EHLO ams.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1376850AbiAaLJM (ORCPT ); Mon, 31 Jan 2022 06:09:12 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id B4E8EB82A72; Mon, 31 Jan 2022 11:09:11 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DA02DC340E8; Mon, 31 Jan 2022 11:09:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643627350; bh=YP3uc33jwRUfDk9XScnitxmKQ9R/hWEnLuZ4nu+AswA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qPt6z8XCtN0joPTfttrvtFyM3okdnVgjI4w8s1l2s0vxUvInu+Xi8V4OdRNpTQBAZ ftJdZmIy1WPdGErsMGg/jboGVRftUIAhnnxACKhh8HOZeh4+nMwENJWYqiLrm54vyT s4K1OpkH8rzQHr+2Xbgf3tMyvxMcDiotU3JfgQuE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Peter Chen , Frank Li , Abel Vesa Subject: [PATCH 5.15 054/171] usb: xhci-plat: fix crash when suspend if remote wake enable Date: Mon, 31 Jan 2022 11:55:19 +0100 Message-Id: <20220131105231.852924360@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220131105229.959216821@linuxfoundation.org> References: <20220131105229.959216821@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Frank Li commit 9df478463d9feb90dae24f183383961cf123a0ec upstream. Crashed at i.mx8qm platform when suspend if enable remote wakeup Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP Modules linked in: CPU: 2 PID: 244 Comm: kworker/u12:6 Not tainted 5.15.5-dirty #12 Hardware name: Freescale i.MX8QM MEK (DT) Workqueue: events_unbound async_run_entry_fn pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : xhci_disable_hub_port_wake.isra.62+0x60/0xf8 lr : xhci_disable_hub_port_wake.isra.62+0x34/0xf8 sp : ffff80001394bbf0 x29: ffff80001394bbf0 x28: 0000000000000000 x27: ffff00081193b578 x26: ffff00081193b570 x25: 0000000000000000 x24: 0000000000000000 x23: ffff00081193a29c x22: 0000000000020001 x21: 0000000000000001 x20: 0000000000000000 x19: ffff800014e90490 x18: 0000000000000000 x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000 x14: 0000000000000000 x13: 0000000000000002 x12: 0000000000000000 x11: 0000000000000000 x10: 0000000000000960 x9 : ffff80001394baa0 x8 : ffff0008145d1780 x7 : ffff0008f95b8e80 x6 : 000000001853b453 x5 : 0000000000000496 x4 : 0000000000000000 x3 : ffff00081193a29c x2 : 0000000000000001 x1 : 0000000000000000 x0 : ffff000814591620 Call trace: xhci_disable_hub_port_wake.isra.62+0x60/0xf8 xhci_suspend+0x58/0x510 xhci_plat_suspend+0x50/0x78 platform_pm_suspend+0x2c/0x78 dpm_run_callback.isra.25+0x50/0xe8 __device_suspend+0x108/0x3c0 The basic flow: 1. run time suspend call xhci_suspend, xhci parent devices gate the clock. 2. echo mem >/sys/power/state, system _device_suspend call xhci_suspend 3. xhci_suspend call xhci_disable_hub_port_wake, which access register, but clock already gated by run time suspend. This problem was hidden by power domain driver, which call run time resume before it. But the below commit remove it and make this issue happen. commit c1df456d0f06e ("PM: domains: Don't runtime resume devices at genpd_prepare()") This patch call run time resume before suspend to make sure clock is on before access register. Reviewed-by: Peter Chen Cc: stable Signed-off-by: Frank Li Testeb-by: Abel Vesa Link: https://lore.kernel.org/r/20220110172738.31686-1-Frank.Li@nxp.com Signed-off-by: Greg Kroah-Hartman --- drivers/usb/host/xhci-plat.c | 3 +++ 1 file changed, 3 insertions(+) --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c @@ -437,6 +437,9 @@ static int __maybe_unused xhci_plat_susp struct xhci_hcd *xhci = hcd_to_xhci(hcd); int ret; + if (pm_runtime_suspended(dev)) + pm_runtime_resume(dev); + ret = xhci_priv_suspend_quirk(hcd); if (ret) return ret;