From: kernel test robot <lkp@intel.com>
To: Shawn Lin <shawn.lin@rock-chips.com>,
Rob Herring <robh+dt@kernel.org>,
"James E . J . Bottomley" <James.Bottomley@hansenpartnership.com>,
"Martin K . Petersen" <martin.petersen@oracle.com>,
Krzysztof Kozlowski <krzk@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Ulf Hansson <ulf.hansson@linaro.org>,
Heiko Stuebner <heiko@sntech.de>,
"Rafael J . Wysocki" <rafael@kernel.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>,
Alim Akhtar <alim.akhtar@samsung.com>,
Avri Altman <avri.altman@wdc.com>,
Bart Van Assche <bvanassche@acm.org>,
YiFeng Zhao <zyf@rock-chips.com>, Liang Chen <cl@rock-chips.com>,
linux-scsi@vger.kernel.org, linux-rockchip@lists.infradead.org,
devicetree@vger.kernel.org, linux-pm@vger.kernel.org
Subject: Re: [PATCH v4 4/7] pmdomain: core: Introduce dev_pm_genpd_rpm_always_on()
Date: Tue, 5 Nov 2024 04:17:30 +0800 [thread overview]
Message-ID: <202411050317.abJatSkD-lkp@intel.com> (raw)
In-Reply-To: <1730705521-23081-5-git-send-email-shawn.lin@rock-chips.com>
Hi Shawn,
kernel test robot noticed the following build warnings:
[auto build test WARNING on jejb-scsi/for-next]
[also build test WARNING on robh/for-next linus/master v6.12-rc6]
[cannot apply to mkp-scsi/for-next next-20241104]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Shawn-Lin/dt-bindings-ufs-Document-Rockchip-UFS-host-controller/20241104-191810
base: https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next
patch link: https://lore.kernel.org/r/1730705521-23081-5-git-send-email-shawn.lin%40rock-chips.com
patch subject: [PATCH v4 4/7] pmdomain: core: Introduce dev_pm_genpd_rpm_always_on()
config: x86_64-buildonly-randconfig-002-20241104 (https://download.01.org/0day-ci/archive/20241105/202411050317.abJatSkD-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241105/202411050317.abJatSkD-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202411050317.abJatSkD-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from drivers/pmdomain/core.c:21:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
In file included from include/linux/memcontrol.h:21:
In file included from include/linux/mm.h:2213:
include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
518 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
>> drivers/pmdomain/core.c:898:4: warning: misleading indentation; statement is not part of the previous 'if' [-Wmisleading-indentation]
898 | if (to_gpd_data(pdd)->rpm_always_on)
| ^
drivers/pmdomain/core.c:893:3: note: previous statement is here
893 | if (!pm_runtime_suspended(pdd->dev) ||
| ^
2 warnings generated.
vim +/if +898 drivers/pmdomain/core.c
837
838 /**
839 * genpd_power_off - Remove power from a given PM domain.
840 * @genpd: PM domain to power down.
841 * @one_dev_on: If invoked from genpd's ->runtime_suspend|resume() callback, the
842 * RPM status of the releated device is in an intermediate state, not yet turned
843 * into RPM_SUSPENDED. This means genpd_power_off() must allow one device to not
844 * be RPM_SUSPENDED, while it tries to power off the PM domain.
845 * @depth: nesting count for lockdep.
846 *
847 * If all of the @genpd's devices have been suspended and all of its subdomains
848 * have been powered down, remove power from @genpd.
849 */
850 static int genpd_power_off(struct generic_pm_domain *genpd, bool one_dev_on,
851 unsigned int depth)
852 {
853 struct pm_domain_data *pdd;
854 struct gpd_link *link;
855 unsigned int not_suspended = 0;
856 int ret;
857
858 /*
859 * Do not try to power off the domain in the following situations:
860 * (1) The domain is already in the "power off" state.
861 * (2) System suspend is in progress.
862 */
863 if (!genpd_status_on(genpd) || genpd->prepared_count > 0)
864 return 0;
865
866 /*
867 * Abort power off for the PM domain in the following situations:
868 * (1) The domain is configured as always on.
869 * (2) When the domain has a subdomain being powered on.
870 */
871 if (genpd_is_always_on(genpd) ||
872 genpd_is_rpm_always_on(genpd) ||
873 atomic_read(&genpd->sd_count) > 0)
874 return -EBUSY;
875
876 /*
877 * The children must be in their deepest (powered-off) states to allow
878 * the parent to be powered off. Note that, there's no need for
879 * additional locking, as powering on a child, requires the parent's
880 * lock to be acquired first.
881 */
882 list_for_each_entry(link, &genpd->parent_links, parent_node) {
883 struct generic_pm_domain *child = link->child;
884 if (child->state_idx < child->state_count - 1)
885 return -EBUSY;
886 }
887
888 list_for_each_entry(pdd, &genpd->dev_list, list_node) {
889 /*
890 * Do not allow PM domain to be powered off, when an IRQ safe
891 * device is part of a non-IRQ safe domain.
892 */
893 if (!pm_runtime_suspended(pdd->dev) ||
894 irq_safe_dev_in_sleep_domain(pdd->dev, genpd))
895 not_suspended++;
896
897 /* The device may need its PM domain to stay powered on. */
> 898 if (to_gpd_data(pdd)->rpm_always_on)
899 return -EBUSY;
900 }
901
902 if (not_suspended > 1 || (not_suspended == 1 && !one_dev_on))
903 return -EBUSY;
904
905 if (genpd->gov && genpd->gov->power_down_ok) {
906 if (!genpd->gov->power_down_ok(&genpd->domain))
907 return -EAGAIN;
908 }
909
910 /* Default to shallowest state. */
911 if (!genpd->gov)
912 genpd->state_idx = 0;
913
914 /* Don't power off, if a child domain is waiting to power on. */
915 if (atomic_read(&genpd->sd_count) > 0)
916 return -EBUSY;
917
918 ret = _genpd_power_off(genpd, true);
919 if (ret) {
920 genpd->states[genpd->state_idx].rejected++;
921 return ret;
922 }
923
924 genpd->status = GENPD_STATE_OFF;
925 genpd_update_accounting(genpd);
926 genpd->states[genpd->state_idx].usage++;
927
928 list_for_each_entry(link, &genpd->child_links, child_node) {
929 genpd_sd_counter_dec(link->parent);
930 genpd_lock_nested(link->parent, depth + 1);
931 genpd_power_off(link->parent, false, depth + 1);
932 genpd_unlock(link->parent);
933 }
934
935 return 0;
936 }
937
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2024-11-04 20:17 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-04 7:31 [PATCH v4 0/7] Initial support for RK3576 UFS controller Shawn Lin
2024-11-04 7:31 ` [PATCH v4 1/7] scsi: ufs: core: Add UFSHCI_QUIRK_DME_RESET_ENABLE_AFTER_HCE Shawn Lin
2024-11-07 15:51 ` Manivannan Sadhasivam
2024-11-08 1:04 ` Shawn Lin
2024-11-04 7:31 ` [PATCH v4 2/7] dt-bindings: ufs: Document Rockchip UFS host controller Shawn Lin
2024-11-07 15:42 ` Manivannan Sadhasivam
2024-11-04 7:31 ` [PATCH v4 3/7] soc: rockchip: add header for suspend mode SIP interface Shawn Lin
2024-11-04 7:31 ` [PATCH v4 4/7] pmdomain: core: Introduce dev_pm_genpd_rpm_always_on() Shawn Lin
2024-11-04 19:04 ` kernel test robot
2024-11-04 20:17 ` kernel test robot [this message]
2024-11-08 14:19 ` Dan Carpenter
2024-11-04 7:31 ` [PATCH v4 5/7] pmdomain: rockchip: Add smc call to inform firmware Shawn Lin
2024-11-04 7:32 ` [PATCH v4 6/7] PM: wakeup: Add device_clr_wakeup_path() Shawn Lin
2024-11-04 7:32 ` [PATCH v4 7/7] scsi: ufs: rockchip: initial support for UFS Shawn Lin
2024-11-04 10:57 ` Ulf Hansson
2024-11-05 1:54 ` Shawn Lin
2024-11-09 12:12 ` Manivannan Sadhasivam
2024-11-11 1:10 ` Shawn Lin
2024-11-12 6:43 ` Manivannan Sadhasivam
2024-11-12 6:51 ` Shawn Lin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202411050317.abJatSkD-lkp@intel.com \
--to=lkp@intel.com \
--cc=James.Bottomley@hansenpartnership.com \
--cc=alim.akhtar@samsung.com \
--cc=avri.altman@wdc.com \
--cc=bvanassche@acm.org \
--cc=cl@rock-chips.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=heiko@sntech.de \
--cc=krzk@kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=linux-scsi@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=manivannan.sadhasivam@linaro.org \
--cc=martin.petersen@oracle.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=rafael@kernel.org \
--cc=robh+dt@kernel.org \
--cc=shawn.lin@rock-chips.com \
--cc=ulf.hansson@linaro.org \
--cc=zyf@rock-chips.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox