Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp1475154ybl; Sat, 10 Aug 2019 04:25:03 -0700 (PDT) X-Google-Smtp-Source: APXvYqxvCR2H7KPNM6Yj+XEM9kpRxsTaN5RFg866ubEHO5HdeIx/jHuwtSxdBqI/xcsWwd0qEp7Z X-Received: by 2002:a17:902:6b44:: with SMTP id g4mr23766131plt.152.1565436303795; Sat, 10 Aug 2019 04:25:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565436303; cv=none; d=google.com; s=arc-20160816; b=V8CW2IrrCjPXxKKlhChknyojKix0CEmqZH8b30jtzu4d306fHbQiKOHWZhdg8Wa3d0 JaaPcg5NSGsW8Wn19yfXctTyudK5JduAOycuvPnAI8V+oj3G3fFNPVQZ19uKnDmnHDZQ Q4OgyZ8OqDfZ1Gc7mCTJAVhjHCnhTtIU0VXLJTYcBMrriiMOhwUctygLK7LQCmKHKT34 N3Lx86KR9b8K4AySxIS6B0Cj6QAfU3G1w6zzuTnNRLg+c17zGd1n4d+NG1PeSdLomYzb vThRNsFTDWaT+A/nNMpHlfSfU8nMv7W/Rrp3UsY22e/uDP9Qw8psxRHFJMjSf9VmLFh+ A5LA== 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; bh=8lkhCBZHZZvktv7izi+oQD1BZQgDYCRK809D6CJxlUk=; b=AUTFuSbYTS4SDTlDKOZoNIgm1ZnyBVmRUd/vUIorDp08V+Ipg3Rx2P/Zr/5GjfhwiH YlBeylmLLqJJUjkbCbkGm6ozXztRQNZ2CUSBQoYHx7BFhwXdhcbp4WxdUwuQ1C/s4O2a y0ahFdM8u0ITtx+XOU9pKXxXPfSYAZggDEMht3ONZMVmP2xl4gWglE7mGNx7XBqlrgi9 WwmithWgoBhxfIp09b+8CYWCprDklLiz87LHs12UKxRjhb+aZg7JzC+KveITlDz2sp1q oMIr8kCrbltD+1HOrq36sgqI5Xj3+J28gO7sW+chLj8rNZJUyBvP6nd3FCue27qry+HU 0DPA== 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 q38si44366269pgk.63.2019.08.10.04.24.45; Sat, 10 Aug 2019 04:25:03 -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; 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 S1726114AbfHJLYI (ORCPT + 99 others); Sat, 10 Aug 2019 07:24:08 -0400 Received: from cloudserver094114.home.pl ([79.96.170.134]:60555 "EHLO cloudserver094114.home.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725862AbfHJLYH (ORCPT ); Sat, 10 Aug 2019 07:24:07 -0400 Received: from 79.184.254.29.ipv4.supernova.orange.pl (79.184.254.29) (HELO kreacher.localnet) by serwer1319399.home.pl (79.96.170.134) with SMTP (IdeaSmtpServer 0.83.275) id 280ae9cb69888997; Sat, 10 Aug 2019 13:24:05 +0200 From: "Rafael J. Wysocki" To: Linux PM Cc: Marek Szyprowski , Linux ACPI , LKML , Zhang Rui , Rajneesh Bhardwaj , Andy Shevchenko , Mario Limonciello , Kai-Heng Feng Subject: [PATCH] PM: suspend: Fix platform_suspend_prepare_noirq() Date: Sat, 10 Aug 2019 13:24:04 +0200 Message-ID: <1929036.rkDPr3nAr5@kreacher> In-Reply-To: <1b181f35-29c3-c6ce-6c42-ae55e890579e@samsung.com> References: <5997740.FPbUVk04hV@kreacher> <1b181f35-29c3-c6ce-6c42-ae55e890579e@samsung.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Rafael J. Wysocki After commit ac9eafbe930a ("ACPI: PM: s2idle: Execute LPS0 _DSM functions with suspended devices"), a NULL pointer may be dereferenced if suspend-to-idle is attempted on a platform without "traditional" suspend support due to invalid fall-through in platform_suspend_prepare_noirq(). Fix that and while at it add missing braces in platform_resume_noirq(). Fixes: ac9eafbe930a ("ACPI: PM: s2idle: Execute LPS0 _DSM functions with suspended devices") Reported-by: Marek Szyprowski Signed-off-by: Rafael J. Wysocki --- Commit ac9eafbe930a is in linux-next only at this point. --- kernel/power/suspend.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) Index: linux-pm/kernel/power/suspend.c =================================================================== --- linux-pm.orig/kernel/power/suspend.c +++ linux-pm/kernel/power/suspend.c @@ -253,10 +253,10 @@ static int platform_suspend_prepare_late static int platform_suspend_prepare_noirq(suspend_state_t state) { - if (state == PM_SUSPEND_TO_IDLE) { - if (s2idle_ops && s2idle_ops->prepare_late) - return s2idle_ops->prepare_late(); - } + if (state == PM_SUSPEND_TO_IDLE) + return s2idle_ops && s2idle_ops->prepare_late ? + s2idle_ops->prepare_late() : 0; + return suspend_ops->prepare_late ? suspend_ops->prepare_late() : 0; } @@ -265,8 +265,9 @@ static void platform_resume_noirq(suspen if (state == PM_SUSPEND_TO_IDLE) { if (s2idle_ops && s2idle_ops->restore_early) s2idle_ops->restore_early(); - } else if (suspend_ops->wake) + } else if (suspend_ops->wake) { suspend_ops->wake(); + } } static void platform_resume_early(suspend_state_t state)