Message ID | 20211208002043.882200-1-david.e.box@linux.intel.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Lorenzo Pieralisi |
Headers | show |
Series | [V2,1/2] PCI/ASPM: Add ASPM BIOS override function | expand |
Hi "David, Thank you for the patch! Yet something to improve: [auto build test ERROR on v5.16-rc4] [also build test ERROR on next-20211207] [cannot apply to helgaas-pci/next] [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] url: https://github.com/0day-ci/linux/commits/David-E-Box/PCI-ASPM-Add-ASPM-BIOS-override-function/20211208-082303 base: 0fcfb00b28c0b7884635dacf38e46d60bf3d4eb1 config: arm64-randconfig-r022-20211207 (https://download.01.org/0day-ci/archive/20211208/202112081821.vVNb7kbL-lkp@intel.com/config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 097a1cb1d5ebb3a0ec4bcaed8ba3ff6a8e33c00a) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install arm64 cross compiling tool for clang build # apt-get install binutils-aarch64-linux-gnu # https://github.com/0day-ci/linux/commit/78c85417651fe465aafee7ef1841ab75619b165b git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review David-E-Box/PCI-ASPM-Add-ASPM-BIOS-override-function/20211208-082303 git checkout 78c85417651fe465aafee7ef1841ab75619b165b # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash ./ drivers/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): In file included from drivers/pci/controller/pci-aardvark.c:28: >> drivers/pci/controller/../pci.h:571:82: error: expected ';' after return statement static inline int pcie_aspm_policy_override(struct pci_dev *dev) { return -EINVAL } ^ ; 1 error generated. -- In file included from drivers/pci/controller/dwc/pci-dra7xx.c:32: >> drivers/pci/controller/dwc/../../pci.h:571:82: error: expected ';' after return statement static inline int pcie_aspm_policy_override(struct pci_dev *dev) { return -EINVAL } ^ ; 1 error generated. -- In file included from drivers/pci/pcie/portdrv_core.c:19: >> drivers/pci/pcie/../pci.h:571:82: error: expected ';' after return statement static inline int pcie_aspm_policy_override(struct pci_dev *dev) { return -EINVAL } ^ ; 1 error generated. -- In file included from drivers/pci/hotplug/pci_hotplug_core.c:32: >> drivers/pci/hotplug/../pci.h:571:82: error: expected ';' after return statement static inline int pcie_aspm_policy_override(struct pci_dev *dev) { return -EINVAL } ^ ; 1 error generated. -- In file included from drivers/xen/pci.c:18: >> drivers/xen/../pci/pci.h:571:82: error: expected ';' after return statement static inline int pcie_aspm_policy_override(struct pci_dev *dev) { return -EINVAL } ^ ; 1 error generated. -- In file included from drivers/pci/controller/mobiveil/pcie-mobiveil.c:18: In file included from drivers/pci/controller/mobiveil/pcie-mobiveil.h:18: >> drivers/pci/controller/mobiveil/../../pci.h:571:82: error: expected ';' after return statement static inline int pcie_aspm_policy_override(struct pci_dev *dev) { return -EINVAL } ^ ; 1 error generated. vim +571 drivers/pci/controller/../pci.h 553 554 /* PCI error reporting and recovery */ 555 pci_ers_result_t pcie_do_recovery(struct pci_dev *dev, 556 pci_channel_state_t state, 557 pci_ers_result_t (*reset_subordinates)(struct pci_dev *pdev)); 558 559 bool pcie_wait_for_link(struct pci_dev *pdev, bool active); 560 #ifdef CONFIG_PCIEASPM 561 void pcie_aspm_init_link_state(struct pci_dev *pdev); 562 void pcie_aspm_exit_link_state(struct pci_dev *pdev); 563 void pcie_aspm_pm_state_change(struct pci_dev *pdev); 564 void pcie_aspm_powersave_config_link(struct pci_dev *pdev); 565 int pcie_aspm_policy_override(struct pci_dev *dev); 566 #else 567 static inline void pcie_aspm_init_link_state(struct pci_dev *pdev) { } 568 static inline void pcie_aspm_exit_link_state(struct pci_dev *pdev) { } 569 static inline void pcie_aspm_pm_state_change(struct pci_dev *pdev) { } 570 static inline void pcie_aspm_powersave_config_link(struct pci_dev *pdev) { } > 571 static inline int pcie_aspm_policy_override(struct pci_dev *dev) { return -EINVAL } 572 #endif 573 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Hi "David, Thank you for the patch! Yet something to improve: [auto build test ERROR on v5.16-rc4] [also build test ERROR on next-20211208] [cannot apply to helgaas-pci/next] [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] url: https://github.com/0day-ci/linux/commits/David-E-Box/PCI-ASPM-Add-ASPM-BIOS-override-function/20211208-082303 base: 0fcfb00b28c0b7884635dacf38e46d60bf3d4eb1 config: i386-randconfig-r024-20211207 (https://download.01.org/0day-ci/archive/20211208/202112081833.kaiKplAi-lkp@intel.com/config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 097a1cb1d5ebb3a0ec4bcaed8ba3ff6a8e33c00a) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/78c85417651fe465aafee7ef1841ab75619b165b git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review David-E-Box/PCI-ASPM-Add-ASPM-BIOS-override-function/20211208-082303 git checkout 78c85417651fe465aafee7ef1841ab75619b165b # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): In file included from drivers/pci/controller/cadence/pci-j721e.c:23: >> drivers/pci/controller/cadence/../../pci.h:571:82: error: expected ';' after return statement static inline int pcie_aspm_policy_override(struct pci_dev *dev) { return -EINVAL } ^ ; 1 error generated. vim +571 drivers/pci/controller/cadence/../../pci.h 553 554 /* PCI error reporting and recovery */ 555 pci_ers_result_t pcie_do_recovery(struct pci_dev *dev, 556 pci_channel_state_t state, 557 pci_ers_result_t (*reset_subordinates)(struct pci_dev *pdev)); 558 559 bool pcie_wait_for_link(struct pci_dev *pdev, bool active); 560 #ifdef CONFIG_PCIEASPM 561 void pcie_aspm_init_link_state(struct pci_dev *pdev); 562 void pcie_aspm_exit_link_state(struct pci_dev *pdev); 563 void pcie_aspm_pm_state_change(struct pci_dev *pdev); 564 void pcie_aspm_powersave_config_link(struct pci_dev *pdev); 565 int pcie_aspm_policy_override(struct pci_dev *dev); 566 #else 567 static inline void pcie_aspm_init_link_state(struct pci_dev *pdev) { } 568 static inline void pcie_aspm_exit_link_state(struct pci_dev *pdev) { } 569 static inline void pcie_aspm_pm_state_change(struct pci_dev *pdev) { } 570 static inline void pcie_aspm_powersave_config_link(struct pci_dev *pdev) { } > 571 static inline int pcie_aspm_policy_override(struct pci_dev *dev) { return -EINVAL } 572 #endif 573 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index 3d60cabde1a1..c741791f15e0 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -562,11 +562,13 @@ void pcie_aspm_init_link_state(struct pci_dev *pdev); void pcie_aspm_exit_link_state(struct pci_dev *pdev); void pcie_aspm_pm_state_change(struct pci_dev *pdev); void pcie_aspm_powersave_config_link(struct pci_dev *pdev); +int pcie_aspm_policy_override(struct pci_dev *dev); #else static inline void pcie_aspm_init_link_state(struct pci_dev *pdev) { } static inline void pcie_aspm_exit_link_state(struct pci_dev *pdev) { } static inline void pcie_aspm_pm_state_change(struct pci_dev *pdev) { } static inline void pcie_aspm_powersave_config_link(struct pci_dev *pdev) { } +static inline int pcie_aspm_policy_override(struct pci_dev *dev) { return -EINVAL } #endif #ifdef CONFIG_PCIE_ECRC diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c index 52c74682601a..e2c61e14e724 100644 --- a/drivers/pci/pcie/aspm.c +++ b/drivers/pci/pcie/aspm.c @@ -1140,6 +1140,25 @@ int pci_disable_link_state(struct pci_dev *pdev, int state) } EXPORT_SYMBOL(pci_disable_link_state); +int pcie_aspm_policy_override(struct pci_dev *pdev) +{ + struct pcie_link_state *link = pcie_aspm_get_link(pdev); + + if (!link || aspm_disabled) + return -EINVAL; + + down_read(&pci_bus_sem); + mutex_lock(&aspm_lock); + link->aspm_default = ASPM_STATE_ALL; + pcie_config_aspm_link(link, policy_to_aspm_state(link)); + pcie_set_clkpm(link, policy_to_clkpm_state(link)); + mutex_unlock(&aspm_lock); + up_read(&pci_bus_sem); + + return 0; +} +EXPORT_SYMBOL(pcie_aspm_policy_override); + static int pcie_aspm_set_policy(const char *val, const struct kernel_param *kp) {