Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

treewide: Drop pci_save_state() after pci_restore_state()

In 2009, commit c82f63e411f1 ("PCI: check saved state before restore")
changed the behavior of pci_restore_state() such that it became necessary
to call pci_save_state() afterwards, lest recovery from subsequent PCI
errors fails.

The commit has just been reverted and so all the pci_save_state() after
pci_restore_state() calls that have accumulated in the tree are now
superfluous. Drop them.

Two drivers chose a different approach to achieve the same result:
drivers/scsi/ipr.c and drivers/net/ethernet/intel/e1000e/netdev.c set the
pci_dev's "state_saved" flag to true before calling pci_restore_state().
Drop this as well.

Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Dave Jiang <dave.jiang@intel.com>
Acked-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com> # qat
Link: https://patch.msgid.link/c2b28cc4defa1b743cf1dedee23c455be98b397a.1760274044.git.lukas@wunner.de

authored by

Lukas Wunner and committed by
Bjorn Helgaas
383d8969 a2f1e223

-57
-2
drivers/crypto/intel/qat/qat_common/adf_aer.c
··· 105 105 accel_dev->accel_id); 106 106 hw_device->reset_device(accel_dev); 107 107 pci_restore_state(pdev); 108 - pci_save_state(pdev); 109 108 } 110 109 } 111 110 ··· 203 204 if (!pdev->is_busmaster) 204 205 pci_set_master(pdev); 205 206 pci_restore_state(pdev); 206 - pci_save_state(pdev); 207 207 res = adf_dev_up(accel_dev, false); 208 208 if (res && res != -EALREADY) 209 209 return PCI_ERS_RESULT_DISCONNECT;
-1
drivers/dma/ioat/init.c
··· 1286 1286 } else { 1287 1287 pci_set_master(pdev); 1288 1288 pci_restore_state(pdev); 1289 - pci_save_state(pdev); 1290 1289 pci_wake_from_d3(pdev, false); 1291 1290 } 1292 1291
-2
drivers/net/ethernet/broadcom/bnx2.c
··· 6444 6444 if (!(pcicmd & PCI_COMMAND_MEMORY)) { 6445 6445 /* in case PCI block has reset */ 6446 6446 pci_restore_state(bp->pdev); 6447 - pci_save_state(bp->pdev); 6448 6447 } 6449 6448 rc = bnx2_init_nic(bp, 1); 6450 6449 if (rc) { ··· 8717 8718 } else { 8718 8719 pci_set_master(pdev); 8719 8720 pci_restore_state(pdev); 8720 - pci_save_state(pdev); 8721 8721 8722 8722 if (netif_running(dev)) 8723 8723 err = bnx2_init_nic(bp, 1);
-1
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
··· 14216 14216 14217 14217 pci_set_master(pdev); 14218 14218 pci_restore_state(pdev); 14219 - pci_save_state(pdev); 14220 14219 14221 14220 if (netif_running(dev)) 14222 14221 bnx2x_set_power_state(bp, PCI_D0);
-1
drivers/net/ethernet/broadcom/tg3.c
··· 18352 18352 18353 18353 pci_set_master(pdev); 18354 18354 pci_restore_state(pdev); 18355 - pci_save_state(pdev); 18356 18355 18357 18356 if (!netdev || !netif_running(netdev)) { 18358 18357 rc = PCI_ERS_RESULT_RECOVERED;
-1
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
··· 2933 2933 } 2934 2934 pci_set_master(adapter->pdev); 2935 2935 pci_restore_state(adapter->pdev); 2936 - pci_save_state(adapter->pdev); 2937 2936 2938 2937 /* Free sge resources */ 2939 2938 t3_free_sge_resources(adapter);
-2
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
··· 5456 5456 5457 5457 if (!adap) { 5458 5458 pci_restore_state(pdev); 5459 - pci_save_state(pdev); 5460 5459 return PCI_ERS_RESULT_RECOVERED; 5461 5460 } 5462 5461 ··· 5470 5471 5471 5472 pci_set_master(pdev); 5472 5473 pci_restore_state(pdev); 5473 - pci_save_state(pdev); 5474 5474 5475 5475 if (t4_wait_dev_ready(adap->regs) < 0) 5476 5476 return PCI_ERS_RESULT_DISCONNECT;
-1
drivers/net/ethernet/hisilicon/hibmcge/hbg_err.c
··· 158 158 159 159 pci_set_master(pdev); 160 160 pci_restore_state(pdev); 161 - pci_save_state(pdev); 162 161 163 162 hbg_err_reset(priv); 164 163 return PCI_ERS_RESULT_RECOVERED;
-1
drivers/net/ethernet/intel/e1000e/netdev.c
··· 7195 7195 "Cannot re-enable PCI device after reset.\n"); 7196 7196 result = PCI_ERS_RESULT_DISCONNECT; 7197 7197 } else { 7198 - pdev->state_saved = true; 7199 7198 pci_restore_state(pdev); 7200 7199 pci_set_master(pdev); 7201 7200
-6
drivers/net/ethernet/intel/fm10k/fm10k_pci.c
··· 2423 2423 } else { 2424 2424 pci_set_master(pdev); 2425 2425 pci_restore_state(pdev); 2426 - 2427 - /* After second error pci->state_saved is false, this 2428 - * resets it so EEH doesn't break. 2429 - */ 2430 - pci_save_state(pdev); 2431 - 2432 2426 pci_wake_from_d3(pdev, false); 2433 2427 2434 2428 result = PCI_ERS_RESULT_RECOVERED;
-1
drivers/net/ethernet/intel/i40e/i40e_main.c
··· 16455 16455 } else { 16456 16456 pci_set_master(pdev); 16457 16457 pci_restore_state(pdev); 16458 - pci_save_state(pdev); 16459 16458 pci_wake_from_d3(pdev, false); 16460 16459 16461 16460 reg = rd32(&pf->hw, I40E_GLGEN_RTRIG);
-2
drivers/net/ethernet/intel/ice/ice_main.c
··· 5663 5663 5664 5664 pci_set_power_state(pdev, PCI_D0); 5665 5665 pci_restore_state(pdev); 5666 - pci_save_state(pdev); 5667 5666 5668 5667 if (!pci_device_is_present(pdev)) 5669 5668 return -ENODEV; ··· 5762 5763 } else { 5763 5764 pci_set_master(pdev); 5764 5765 pci_restore_state(pdev); 5765 - pci_save_state(pdev); 5766 5766 pci_wake_from_d3(pdev, false); 5767 5767 5768 5768 /* Check for life */
-2
drivers/net/ethernet/intel/igb/igb_main.c
··· 9599 9599 9600 9600 pci_set_power_state(pdev, PCI_D0); 9601 9601 pci_restore_state(pdev); 9602 - pci_save_state(pdev); 9603 9602 9604 9603 if (!pci_device_is_present(pdev)) 9605 9604 return -ENODEV; ··· 9753 9754 } else { 9754 9755 pci_set_master(pdev); 9755 9756 pci_restore_state(pdev); 9756 - pci_save_state(pdev); 9757 9757 9758 9758 pci_enable_wake(pdev, PCI_D3hot, 0); 9759 9759 pci_enable_wake(pdev, PCI_D3cold, 0);
-2
drivers/net/ethernet/intel/igc/igc_main.c
··· 7530 7530 7531 7531 pci_set_power_state(pdev, PCI_D0); 7532 7532 pci_restore_state(pdev); 7533 - pci_save_state(pdev); 7534 7533 7535 7534 if (!pci_device_is_present(pdev)) 7536 7535 return -ENODEV; ··· 7666 7667 } else { 7667 7668 pci_set_master(pdev); 7668 7669 pci_restore_state(pdev); 7669 - pci_save_state(pdev); 7670 7670 7671 7671 pci_enable_wake(pdev, PCI_D3hot, 0); 7672 7672 pci_enable_wake(pdev, PCI_D3cold, 0);
-1
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
··· 12297 12297 adapter->hw.hw_addr = adapter->io_addr; 12298 12298 pci_set_master(pdev); 12299 12299 pci_restore_state(pdev); 12300 - pci_save_state(pdev); 12301 12300 12302 12301 pci_wake_from_d3(pdev, false); 12303 12302
-1
drivers/net/ethernet/mellanox/mlx4/main.c
··· 4366 4366 4367 4367 pci_set_master(pdev); 4368 4368 pci_restore_state(pdev); 4369 - pci_save_state(pdev); 4370 4369 return PCI_ERS_RESULT_RECOVERED; 4371 4370 } 4372 4371
-1
drivers/net/ethernet/mellanox/mlx5/core/main.c
··· 2095 2095 2096 2096 pci_set_master(pdev); 2097 2097 pci_restore_state(pdev); 2098 - pci_save_state(pdev); 2099 2098 2100 2099 err = wait_vital(pdev); 2101 2100 if (err) {
-1
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
··· 574 574 575 575 pci_set_power_state(pdev, PCI_D0); 576 576 pci_restore_state(pdev); 577 - pci_save_state(pdev); 578 577 579 578 if (pci_enable_device_mem(pdev)) { 580 579 dev_err(&pdev->dev,
-1
drivers/net/ethernet/microchip/lan743x_main.c
··· 3915 3915 3916 3916 pci_set_power_state(pdev, PCI_D0); 3917 3917 pci_restore_state(pdev); 3918 - pci_save_state(pdev); 3919 3918 3920 3919 /* Restore HW_CFG that was saved during pm suspend */ 3921 3920 if (adapter->is_pci11x1x)
-4
drivers/net/ethernet/myricom/myri10ge/myri10ge.c
··· 3416 3416 * nic was resumed from power saving mode. 3417 3417 */ 3418 3418 pci_restore_state(mgp->pdev); 3419 - 3420 - /* save state again for accounting reasons */ 3421 - pci_save_state(mgp->pdev); 3422 - 3423 3419 } else { 3424 3420 /* if we get back -1's from our slot, perhaps somebody 3425 3421 * powered off our card. Don't try to reset it in
-1
drivers/net/ethernet/neterion/s2io.c
··· 3425 3425 3426 3426 /* Restore the PCI state saved during initialization. */ 3427 3427 pci_restore_state(sp->pdev); 3428 - pci_save_state(sp->pdev); 3429 3428 pci_read_config_word(sp->pdev, 0x2, &val16); 3430 3429 if (check_pci_device_id(val16) != (u16)PCI_ANY_ID) 3431 3430 break;
-1
drivers/pci/pcie/portdrv.c
··· 760 760 device_for_each_child(&dev->dev, &off, pcie_port_device_iter); 761 761 762 762 pci_restore_state(dev); 763 - pci_save_state(dev); 764 763 return PCI_ERS_RESULT_RECOVERED; 765 764 } 766 765
-1
drivers/scsi/bfa/bfad.c
··· 1528 1528 goto out_disable_device; 1529 1529 } 1530 1530 1531 - pci_save_state(pdev); 1532 1531 pci_set_master(pdev); 1533 1532 1534 1533 rc = dma_set_mask_and_coherent(&bfad->pcidev->dev, DMA_BIT_MASK(64));
-1
drivers/scsi/csiostor/csio_init.c
··· 1093 1093 1094 1094 pci_set_master(pdev); 1095 1095 pci_restore_state(pdev); 1096 - pci_save_state(pdev); 1097 1096 1098 1097 /* Bring HW s/m to ready state. 1099 1098 * but don't resume IOs.
-1
drivers/scsi/ipr.c
··· 7859 7859 struct ipr_ioa_cfg *ioa_cfg = ipr_cmd->ioa_cfg; 7860 7860 7861 7861 ENTER; 7862 - ioa_cfg->pdev->state_saved = true; 7863 7862 pci_restore_state(ioa_cfg->pdev); 7864 7863 7865 7864 if (ipr_set_pcix_cmd_reg(ioa_cfg)) {
-6
drivers/scsi/lpfc/lpfc_init.c
··· 14434 14434 14435 14435 pci_restore_state(pdev); 14436 14436 14437 - /* 14438 - * As the new kernel behavior of pci_restore_state() API call clears 14439 - * device saved_state flag, need to save the restored state again. 14440 - */ 14441 - pci_save_state(pdev); 14442 - 14443 14437 if (pdev->is_busmaster) 14444 14438 pci_set_master(pdev); 14445 14439
-5
drivers/scsi/qla2xxx/qla_os.c
··· 7886 7886 7887 7887 pci_restore_state(pdev); 7888 7888 7889 - /* pci_restore_state() clears the saved_state flag of the device 7890 - * save restored state which resets saved_state flag 7891 - */ 7892 - pci_save_state(pdev); 7893 - 7894 7889 if (ha->mem_only) 7895 7890 rc = pci_enable_device_mem(pdev); 7896 7891 else
-5
drivers/scsi/qla4xxx/ql4_os.c
··· 9796 9796 */ 9797 9797 pci_restore_state(pdev); 9798 9798 9799 - /* pci_restore_state() clears the saved_state flag of the device 9800 - * save restored state which resets saved_state flag 9801 - */ 9802 - pci_save_state(pdev); 9803 - 9804 9799 /* Initialize device or resume if in suspended state */ 9805 9800 rc = pci_enable_device(pdev); 9806 9801 if (rc) {
-1
drivers/tty/serial/8250/8250_pci.c
··· 6178 6178 return PCI_ERS_RESULT_DISCONNECT; 6179 6179 6180 6180 pci_restore_state(dev); 6181 - pci_save_state(dev); 6182 6181 6183 6182 return PCI_ERS_RESULT_RECOVERED; 6184 6183 }
-1
drivers/tty/serial/jsm/jsm_driver.c
··· 355 355 struct jsm_board *brd = pci_get_drvdata(pdev); 356 356 357 357 pci_restore_state(pdev); 358 - pci_save_state(pdev); 359 358 360 359 jsm_uart_port_init(brd); 361 360 }