Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp1538166pxk; Fri, 25 Sep 2020 18:31:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyhrvGebMRrMNa4lazBg5Ep5u24yKv6oPXWz8LJ05IMv89dS+VFmX7LiV+mdpWRUeZxYevQ X-Received: by 2002:a17:906:1115:: with SMTP id h21mr5585216eja.273.1601083894135; Fri, 25 Sep 2020 18:31:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601083894; cv=none; d=google.com; s=arc-20160816; b=Kz4qHThldzDblozGaAyCq8feUs51E5yuDw8j4GD+PQGONTkPuCT59Z8WcOl1F3A4Ld 7Na8i7Pdxg1Xp9ZgGdG2pQ+1eXDuqpm2jgEaB1Xa1UjnFALc/xbd4MHokziKkHHoMAjZ 0X558TY6cm5x3v1dJDOTY9JqGEBu39+NAZtDfL3mTfOaS0nxjfo5oeegAP3ILfoDMOnc Wx91AZMMN1LAQOYmuvoENz+NSCh5IcQi2kG9pB5WbT5UKvZQj5Tqk6186n/ezdMjgaWH RMuG+Qd5GDsClli7l//Ilujo7Z7uM896OaOepPRNAyuntrT0u24z8ZVFj0oUTY3yejr7 3cOQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-language:thread-index :content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:dkim-signature; bh=ULKEh+Ecw4DPQy4L6QL+sGqPt4lHGJzlYj9qGMuSRy8=; b=U/dNDqA8Of3RVwHP0JHU/bHTB2G7NkD0WrxSg6nAhAjMqVP5TPmuuA5DidGCBCBxLM WNWG3rsydgr1hLpSbyj6tcOaQBBbNhVd+viraOWbu/UfRxwAzzMr+7DUDshmcTDsuNaa +idSkhnppCmIlGM0VxHmTqQeBpyJIew/TOuR42wtffOLJvuaS5HXSUZ7qFYBFCdc1Y3a cL5eAtItbXJEO5ic3KTwqsk5u0sWHex/AI4VtOOhm8unEbnc/ZBTGFOsKEWHAxnLEvHW yzqIMYYpaDbTa7kL2J9HGBRapuzWeYlnF5T2n1KnIpDljfz4P1lv4zOJ4PCNOEBv0EcB 9wSQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=vI5hFVRg; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c24si2907368edw.144.2020.09.25.18.31.10; Fri, 25 Sep 2020 18:31:34 -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=@gmail.com header.s=20161025 header.b=vI5hFVRg; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729685AbgIZBaM (ORCPT + 99 others); Fri, 25 Sep 2020 21:30:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43602 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728871AbgIZBaM (ORCPT ); Fri, 25 Sep 2020 21:30:12 -0400 Received: from mail-pl1-x643.google.com (mail-pl1-x643.google.com [IPv6:2607:f8b0:4864:20::643]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 838B0C0613CE; Fri, 25 Sep 2020 18:30:12 -0700 (PDT) Received: by mail-pl1-x643.google.com with SMTP id bd2so212873plb.7; Fri, 25 Sep 2020 18:30:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding:thread-index:content-language; bh=ULKEh+Ecw4DPQy4L6QL+sGqPt4lHGJzlYj9qGMuSRy8=; b=vI5hFVRgp2yFl2zQcAgMEaG3b9isCmZGnDGzFV7b8hK/jO2c2RWGG4JKJZtrtBTfsn VIKCfikRvyt1gb/FBV6chGzqF3GkRCd8VpXNVFWsulUWdQQUHl3J95uzXSdWPt4WL8y0 MjcSJ8QdKjvY2tsArgjtuEcQ/EnUbFz0RmriHDK+Ze1qbbp/h8YnQasToJq27oQEjZjC Dv9IUwZbmO0Q9nMZ4CYnxWTBLIsALgQRYReCre9NYfrY82gMTXlZt7dm5yZkr4jRvEFD zO6USVvBolAd2P7lyCge8r1NJUom+x2vW2uYV9k+2G+IXOZdd7SvdJPf1DVekwPfJQ6K ce6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding:thread-index:content-language; bh=ULKEh+Ecw4DPQy4L6QL+sGqPt4lHGJzlYj9qGMuSRy8=; b=FRH+a2R5dlMIDddKXSAacLb7swgm9bXSY2ZiFLe3tuz2R0gxs8Zg97Qxi2JnRzdRR+ +TdYfh6oTUEU/rkgDiiUtnHOdToQSO/dC88ccOTHd7dnyGOtP3u53awTgPC/MVbPppV6 JaUhYR0tuNf0b9ln1hcmwT4DnfpYVcwQKq3rvAmCo3d5zPHJZ+SRlv3Y4dxOn3oDzR+W anmc7F83keuXICVMv5/YwW48HBF1Ok/kkqRMagrXdp3GnEaMhzjThHnkQDc51hNrN7k3 IopVQP8MxZttfcgZIfl089YK7QcqjyDwVdnWeKuKY1oQcg8XqPK7J7KhwuiBtLEtGzlh 9yzQ== X-Gm-Message-State: AOAM5320nlUmLUfDUVV3BBFJe8j6rNw5sKvqbMqe2dQSWipJFIS4l63Q tmMasDUpaeqtps5RvTwjm8k= X-Received: by 2002:a17:902:a5ca:b029:d2:6391:a7f7 with SMTP id t10-20020a170902a5cab02900d26391a7f7mr1985100plq.9.1601083811874; Fri, 25 Sep 2020 18:30:11 -0700 (PDT) Received: from DESKTOPIUKEMQD ([209.9.72.212]) by smtp.gmail.com with ESMTPSA id e16sm3432358pgv.81.2020.09.25.18.30.09 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 25 Sep 2020 18:30:11 -0700 (PDT) From: "zhuguangqing83" To: "'Rafael J. Wysocki'" Cc: "'Rafael J. Wysocki'" , "'Daniel Lezcano'" , "'Linux PM'" , "'Linux Kernel Mailing List'" , "'zhuguangqing'" Subject: Re: [PATCH] cpuidle: change #ifdef for the declaration of cpuidle_enter_s2idle() Date: Sat, 26 Sep 2020 09:30:06 +0800 Message-ID: <00d901d693a4$93195980$b94c0c80$@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 16.0 Thread-Index: AdaTpGstmz1XVlqyTRWaANv4KWFGkQ== Content-Language: zh-cn Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > On Thu, Sep 24, 2020 at 10:01 AM wrote: > > > > From: zhuguangqing > > > > Currently, if CONFIG_SUSPEND=n and CONFIG_CPU_IDLE=y, the function > > cpuidle_enter_s2idle() is declared but not defined, it may cause error > > when cpuidle_enter_s2idle() is called. > > > > If CONFIG_SUSPEND=y and CONFIG_CPU_IDLE=n, the function > > cpuidle_enter_s2idle() is defined as "return -ENODEV;" which is not > > supposed to be. > > > > Change #ifdef CONFIG_CPU_IDLE to #ifdef CONFIG_SUSPEND for > > cpuidle_enter_s2idle() in cpuidle.h, which is consistent with its > > defination in cpuidle.c. > > Well, what about the case when CONFIG_SUSPEND is set, but CONFIG_CPU_IDLE > isn't? > When CONFIG_SUSPEND is set, but CONFIG_CPU_IDLE isn't, the function cpuidle_enter_s2idle() is defined in cpuidle.c, but the defination in cpuidle.c is not used actually because CONFIG_CPU_IDLE isn't set, we only use its defination as "return -ENODEV;" in cpuidle.h. > > > > Signed-off-by: zhuguangqing > > --- > > include/linux/cpuidle.h | 14 +++++++++----- > > 1 file changed, 9 insertions(+), 5 deletions(-) > > > > diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h > > index 6175c77bf25e..2aa8cead1727 100644 > > --- a/include/linux/cpuidle.h > > +++ b/include/linux/cpuidle.h > > @@ -216,22 +216,26 @@ static inline struct cpuidle_device > *cpuidle_get_device(void) {return NULL; } > > extern int cpuidle_find_deepest_state(struct cpuidle_driver *drv, > > struct cpuidle_device *dev, > > u64 latency_limit_ns); > > -extern int cpuidle_enter_s2idle(struct cpuidle_driver *drv, > > - struct cpuidle_device *dev); > > extern void cpuidle_use_deepest_state(u64 latency_limit_ns); > > #else > > static inline int cpuidle_find_deepest_state(struct cpuidle_driver *drv, > > struct cpuidle_device *dev, > > u64 latency_limit_ns) > > {return -ENODEV; } > > -static inline int cpuidle_enter_s2idle(struct cpuidle_driver *drv, > > - struct cpuidle_device *dev) > > -{return -ENODEV; } > > static inline void cpuidle_use_deepest_state(u64 latency_limit_ns) > > { > > } > > #endif > > > > +#ifdef CONFIG_SUSPEND > > +extern int cpuidle_enter_s2idle(struct cpuidle_driver *drv, > > + struct cpuidle_device *dev); > > +#else > > +static inline int cpuidle_enter_s2idle(struct cpuidle_driver *drv, > > + struct cpuidle_device *dev) > > +{return -ENODEV; } > > +#endif > > + > > /* kernel/sched/idle.c */ > > extern void sched_idle_set_state(struct cpuidle_state *idle_state); > > extern void default_idle_call(void); > > -- > > 2.17.1 > >