drivers/pci/pcie/../pci.h:325:17: sparse: sparse: cast from restricted pci_channel_state_t

From: kernel test robot
Date: Thu Nov 30 2023 - 14:46:49 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 3b47bc037bd44f142ac09848e8d3ecccc726be99
commit: 74ff8864cc842be994853095dba6db48e716400a PCI: hotplug: Allow marking devices as disconnected during bind/unbind
date: 10 months ago
config: alpha-randconfig-r034-20230903 (https://download.01.org/0day-ci/archive/20231201/202312010320.jjetWPe9-lkp@xxxxxxxxx/config)
compiler: alpha-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20231201/202312010320.jjetWPe9-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/202312010320.jjetWPe9-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
drivers/pci/pcie/err.c: note: in included file:
>> drivers/pci/pcie/../pci.h:325:17: sparse: sparse: cast from restricted pci_channel_state_t
>> drivers/pci/pcie/../pci.h:325:17: sparse: sparse: cast to restricted pci_channel_state_t
drivers/pci/pcie/../pci.h:328:23: sparse: sparse: cast from restricted pci_channel_state_t
drivers/pci/pcie/../pci.h:328:23: sparse: sparse: cast from restricted pci_channel_state_t
drivers/pci/pcie/../pci.h:328:23: sparse: sparse: cast to restricted pci_channel_state_t
drivers/pci/pcie/../pci.h:332:23: sparse: sparse: cast from restricted pci_channel_state_t
drivers/pci/pcie/../pci.h:332:23: sparse: sparse: cast from restricted pci_channel_state_t
drivers/pci/pcie/../pci.h:332:23: sparse: sparse: cast to restricted pci_channel_state_t
>> drivers/pci/pcie/../pci.h:325:17: sparse: sparse: cast from restricted pci_channel_state_t
>> drivers/pci/pcie/../pci.h:325:17: sparse: sparse: cast to restricted pci_channel_state_t
drivers/pci/pcie/../pci.h:328:23: sparse: sparse: cast from restricted pci_channel_state_t
drivers/pci/pcie/../pci.h:328:23: sparse: sparse: cast from restricted pci_channel_state_t
drivers/pci/pcie/../pci.h:328:23: sparse: sparse: cast to restricted pci_channel_state_t
drivers/pci/pcie/../pci.h:332:23: sparse: sparse: cast from restricted pci_channel_state_t
drivers/pci/pcie/../pci.h:332:23: sparse: sparse: cast from restricted pci_channel_state_t
drivers/pci/pcie/../pci.h:332:23: sparse: sparse: cast to restricted pci_channel_state_t

vim +325 drivers/pci/pcie/../pci.h

306
307 /**
308 * pci_dev_set_io_state - Set the new error state if possible.
309 *
310 * @dev: PCI device to set new error_state
311 * @new: the state we want dev to be in
312 *
313 * If the device is experiencing perm_failure, it has to remain in that state.
314 * Any other transition is allowed.
315 *
316 * Returns true if state has been changed to the requested state.
317 */
318 static inline bool pci_dev_set_io_state(struct pci_dev *dev,
319 pci_channel_state_t new)
320 {
321 pci_channel_state_t old;
322
323 switch (new) {
324 case pci_channel_io_perm_failure:
> 325 xchg(&dev->error_state, pci_channel_io_perm_failure);
326 return true;
327 case pci_channel_io_frozen:
328 old = cmpxchg(&dev->error_state, pci_channel_io_normal,
329 pci_channel_io_frozen);
330 return old != pci_channel_io_perm_failure;
331 case pci_channel_io_normal:
332 old = cmpxchg(&dev->error_state, pci_channel_io_frozen,
333 pci_channel_io_normal);
334 return old != pci_channel_io_perm_failure;
335 default:
336 return false;
337 }
338 }
339

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