Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp875823yba; Thu, 18 Apr 2019 11:03:01 -0700 (PDT) X-Google-Smtp-Source: APXvYqwqTStoMt/b5h/jhRG8yPktQc/y1Y7D83usHpFalHEXQ+vj+pxVGNh3ZPScVao8rFz8obE+ X-Received: by 2002:a17:902:56e:: with SMTP id 101mr46635536plf.142.1555610581110; Thu, 18 Apr 2019 11:03:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555610581; cv=none; d=google.com; s=arc-20160816; b=qOXu/bs2D98aS2UDevnklkc3twF+1GWiiFN9Dp/g7daUyPQvzu5vIKvl68JwBhEQpG 9V95L4oPRYIETtASkh9EAVi2IINHEil/a/vc4RwVEp0kFjHnbPk9ka9qXmDopZ9/ysu4 37V8I58cVH8c5GYik5fqZkQ4mVNOk5imRuSrf27F+ZUqiNWE/oPnJ5namQDK8dtiA28c XijWVV/E3TC92MUs8skBoGuFflDjQzmkEA+cs+qZyRDzXgGMB5sFGGIMgXIRkP1Ou21f TUeWJWucMO0CAda8kYgX/gSyaR/KS2Gy+TRN/9lT/c/jbJe5ZbsWQj0ahh4vFjx657v5 IayQ== 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=6TcQKgakdF1r44M4oanhhv6bXXCPSCsDDn3YvwBO+PI=; b=XFEdh5cmXcOyXsw4p5Pc5d1JUmXAKmtNrJ3RoSgeL8rNEmCE8iUlLpQ5rbj7bdYTpF juAIKsO6cKVdkfd45MwrTZmNOtQQWyhOUBhH3/ZxqLzv/XTNQh39FZsPsWvniZ1vEY+m M3Orj7sILjzD+gu6GpT61wn8CXOSx4BuVu2GQHdO3Sb9wpPedjRwXOBqejuXb+NvZ/5Y Yfkf01Qs3muKy9fU4yjcrKikzPra28fVf7s42UKVp9NAdsBfNg69AntqTLLOuzMxsUkO p6INX0EdhAshmInTMlrWFC6U+m63kYa9sKXrAVIqYWOyh+IbgNr81AT1kqCU1B4Nrfb9 vaXg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=y0SgWWA6; 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 e1si2916848pfc.149.2019.04.18.11.02.46; Thu, 18 Apr 2019 11:03:01 -0700 (PDT) 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; dkim=pass header.i=@kernel.org header.s=default header.b=y0SgWWA6; 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 S2390484AbfDRSBG (ORCPT + 99 others); Thu, 18 Apr 2019 14:01:06 -0400 Received: from mail.kernel.org ([198.145.29.99]:56566 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390460AbfDRSBE (ORCPT ); Thu, 18 Apr 2019 14:01:04 -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 49755206B6; Thu, 18 Apr 2019 18:01:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1555610463; bh=iO51pAh8omlNXFGuy8GzhbH4CR48s3WXR7eMW/mrSfw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=y0SgWWA6YXg/hRKIw9jjVsmG5VyiVuolkh0s+0B+h01otcuTGz6BkWiZQoSI/fByC 7OApv3QGinH5shMrsXdP7W60YcbNqEDqA6YxqOqzLoRshqHOJFxhp2N1IH7K1YIpC0 6ggFvUDgQXaeFw8H3xlvseRwi7D/epgCdHYFx8zs= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Robert Jarzmik , Nicolas Chauvet , Linus Walleij , Sasha Levin Subject: [PATCH 4.19 054/110] gpio: pxa: handle corner case of unprobed device Date: Thu, 18 Apr 2019 19:56:43 +0200 Message-Id: <20190418160443.783847965@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190418160437.484158340@linuxfoundation.org> References: <20190418160437.484158340@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 [ Upstream commit 9ce3ebe973bf4073426f35f282c6b955ed802765 ] In the corner case where the gpio driver probe fails, for whatever reason, the suspend and resume handlers will still be called as they have to be registered as syscore operations. This applies as well when no probe was called while the driver has been built in the kernel. Nicolas tracked this in : https://bugzilla.kernel.org/show_bug.cgi?id=200905 Therefore, add a failsafe in these function, and test if a proper probe succeeded and the driver is functional. Signed-off-by: Robert Jarzmik Reported-by: Nicolas Chauvet Signed-off-by: Linus Walleij Signed-off-by: Sasha Levin --- drivers/gpio/gpio-pxa.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpio/gpio-pxa.c b/drivers/gpio/gpio-pxa.c index eb27fa76e8fc..bcc6be4a5cb2 100644 --- a/drivers/gpio/gpio-pxa.c +++ b/drivers/gpio/gpio-pxa.c @@ -777,6 +777,9 @@ static int pxa_gpio_suspend(void) struct pxa_gpio_bank *c; int gpio; + if (!pchip) + return 0; + for_each_gpio_bank(gpio, c, pchip) { c->saved_gplr = readl_relaxed(c->regbase + GPLR_OFFSET); c->saved_gpdr = readl_relaxed(c->regbase + GPDR_OFFSET); @@ -795,6 +798,9 @@ static void pxa_gpio_resume(void) struct pxa_gpio_bank *c; int gpio; + if (!pchip) + return; + for_each_gpio_bank(gpio, c, pchip) { /* restore level with set/clear */ writel_relaxed(c->saved_gplr, c->regbase + GPSR_OFFSET); -- 2.19.1