Re: [PATCH v10 7/7] PCI: Use device constraints to decide PCI target state fallback policy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Mario,

kernel test robot noticed the following build warnings:

[auto build test WARNING on rafael-pm/linux-next]
[also build test WARNING on pci/next pci/for-linus westeri-thunderbolt/next linus/master v6.5-rc4 next-20230804]
[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/Mario-Limonciello/ACPI-Add-comments-to-clarify-some-ifdef-statements/20230805-050559
base:   https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
patch link:    https://lore.kernel.org/r/20230804210129.5356-8-mario.limonciello%40amd.com
patch subject: [PATCH v10 7/7] PCI: Use device constraints to decide PCI target state fallback policy
config: x86_64-randconfig-r072-20230730 (https://download.01.org/0day-ci/archive/20230805/202308051831.tHlat46E-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230805/202308051831.tHlat46E-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308051831.tHlat46E-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
   drivers/pci/pci.c:1117:36: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted pci_power_t [usertype] current_state @@     got int @@
   drivers/pci/pci.c:1117:36: sparse:     expected restricted pci_power_t [usertype] current_state
   drivers/pci/pci.c:1117:36: sparse:     got int
   drivers/pci/pci.c:1267:15: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted pci_power_t [assigned] [usertype] state @@     got int @@
   drivers/pci/pci.c:1267:15: sparse:     expected restricted pci_power_t [assigned] [usertype] state
   drivers/pci/pci.c:1267:15: sparse:     got int
   drivers/pci/pci.c:1269:50: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:1269:69: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:1317:28: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted pci_power_t [usertype] current_state @@     got int @@
   drivers/pci/pci.c:1317:28: sparse:     expected restricted pci_power_t [usertype] current_state
   drivers/pci/pci.c:1317:28: sparse:     got int
   drivers/pci/pci.c:1392:16: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:1392:35: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:1392:52: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:1392:70: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:1414:15: sparse: sparse: invalid assignment: |=
   drivers/pci/pci.c:1414:15: sparse:    left side has type unsigned short
   drivers/pci/pci.c:1414:15: sparse:    right side has type restricted pci_power_t
   drivers/pci/pci.c:1426:28: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted pci_power_t [usertype] current_state @@     got int @@
   drivers/pci/pci.c:1426:28: sparse:     expected restricted pci_power_t [usertype] current_state
   drivers/pci/pci.c:1426:28: sparse:     got int
   drivers/pci/pci.c:1457:13: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:1457:21: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:1459:18: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:1459:26: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:1482:13: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:1482:22: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:1840:38: sparse: sparse: array of flexible structures
   drivers/pci/pci.c:2416:44: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:2679:52: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:2680:22: sparse: sparse: restricted pci_power_t degrades to integer
>> drivers/pci/pci.c:2729:20: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted pci_power_t [usertype] constraint @@     got int @@
   drivers/pci/pci.c:2729:20: sparse:     expected restricted pci_power_t [usertype] constraint
   drivers/pci/pci.c:2729:20: sparse:     got int
   drivers/pci/pci.c:2730:13: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:2737:21: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:2737:33: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:2904:20: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:2904:38: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:2927:49: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:2927:67: sparse: sparse: restricted pci_power_t degrades to integer
   drivers/pci/pci.c:4894:13: sparse: sparse: invalid assignment: |=
   drivers/pci/pci.c:4894:13: sparse:    left side has type unsigned short
   drivers/pci/pci.c:4894:13: sparse:    right side has type restricted pci_power_t
   drivers/pci/pci.c:4899:13: sparse: sparse: invalid assignment: |=
   drivers/pci/pci.c:4899:13: sparse:    left side has type unsigned short
   drivers/pci/pci.c:4899:13: sparse:    right side has type restricted pci_power_t
   drivers/pci/pci.c:1064:24: sparse: sparse: incorrect type in return expression (different base types) @@     expected int @@     got restricted pci_power_t [usertype] @@
   drivers/pci/pci.c:1064:24: sparse:     expected int
   drivers/pci/pci.c:1064:24: sparse:     got restricted pci_power_t [usertype]
   drivers/pci/pci.c:1064:24: sparse: sparse: incorrect type in return expression (different base types) @@     expected int @@     got restricted pci_power_t [usertype] @@
   drivers/pci/pci.c:1064:24: sparse:     expected int
   drivers/pci/pci.c:1064:24: sparse:     got restricted pci_power_t [usertype]

vim +2729 drivers/pci/pci.c

  2684	
  2685	/**
  2686	 * pci_target_state - find an appropriate low power state for a given PCI dev
  2687	 * @dev: PCI device
  2688	 * @wakeup: Whether or not wakeup functionality will be enabled for the device.
  2689	 *
  2690	 * Use underlying platform code to find a supported low power state for @dev.
  2691	 * If the platform can't manage @dev, return the deepest state from which it
  2692	 * can generate wake events, based on any available PME info.
  2693	 */
  2694	static pci_power_t pci_target_state(struct pci_dev *dev, bool wakeup)
  2695	{
  2696		pci_power_t constraint;
  2697	
  2698		if (platform_pci_power_manageable(dev)) {
  2699			/*
  2700			 * Call the platform to find the target state for the device.
  2701			 */
  2702			pci_power_t state = platform_pci_choose_state(dev);
  2703	
  2704			switch (state) {
  2705			case PCI_POWER_ERROR:
  2706			case PCI_UNKNOWN:
  2707				return PCI_D3hot;
  2708	
  2709			case PCI_D1:
  2710			case PCI_D2:
  2711				if (pci_no_d1d2(dev))
  2712					return PCI_D3hot;
  2713			}
  2714	
  2715			return state;
  2716		}
  2717	
  2718		/*
  2719		 * If the device is in D3cold even though it's not power-manageable by
  2720		 * the platform, it may have been powered down by non-standard means.
  2721		 * Best to let it slumber.
  2722		 */
  2723		if (dev->current_state == PCI_D3cold)
  2724			return PCI_D3cold;
  2725		else if (!dev->pm_cap)
  2726			return PCI_D0;
  2727	
  2728		/* if platform indicates preferred state device constraint, use it */
> 2729		constraint = platform_get_constraint(dev);
  2730		if (constraint < 0)
  2731			constraint = PCI_D3hot;
  2732	
  2733		if (wakeup && dev->pme_support) {
  2734			pci_power_t pme_state = pci_get_wake_pme_state(dev);
  2735	
  2736			/* pick the lesser of any specified constraints */
  2737			if (pme_state < constraint)
  2738				constraint = pme_state;
  2739		}
  2740	
  2741		return constraint;
  2742	}
  2743	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki



[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]
  Powered by Linux