mbox series

[v3,0/3] PCI/MSI: Clarify the IRQ sysfs ABI for PCI devices

Message ID 20210825102636.52757-1-21cnbao@gmail.com
Headers show
Series PCI/MSI: Clarify the IRQ sysfs ABI for PCI devices | expand

Message

Barry Song Aug. 25, 2021, 10:26 a.m. UTC
From: Barry Song <song.bao.hua@hisilicon.com>


/sys/bus/pci/devices/.../irq has been there for many years but it has never
been documented. This patchset is trying to clarify it.

-v3:
  - Don't attempt to modify the current behaviour of IRQ ABI for MSI-X
  - Make MSI IRQ ABI more explicit(return 1st IRQ of the IRQ vector)
  - Add Marc's patch of removing default_irq from the previous comment to
    the series.
  Note patch 3/3 indirectly changed the code of pci_restore_msi_state(),
  drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c is the only driver
  calling this API. I would appreciate testing done from this driver's
  maintainers.

-v2:
  - split into two patches according to Bjorn's comments;
  - Add Greg's Acked-by, thanks for reviewing!
  https://lore.kernel.org/lkml/20210820223744.8439-1-21cnbao@gmail.com/

-v1:
  https://lore.kernel.org/lkml/20210813122650.25764-1-21cnbao@gmail.com/#t

Barry Song (2):
  Documentation: ABI: sysfs-bus-pci: Add description for IRQ entry
  PCI/sysfs: Don't depend on pci_dev.irq for IRQ entry

Marc Zyngier (1):
  PCI/MSI: remove msi_attrib.default_irq in msi_desc

 Documentation/ABI/testing/sysfs-bus-pci | 10 ++++++++++
 drivers/pci/msi.c                       | 12 +++++-------
 drivers/pci/pci-sysfs.c                 | 23 ++++++++++++++++++++++-
 include/linux/msi.h                     |  2 --
 4 files changed, 37 insertions(+), 10 deletions(-)

Comments

Barry Song Oct. 16, 2021, 10:11 a.m. UTC | #1
On Wed, Aug 25, 2021 at 10:26 PM Barry Song <21cnbao@gmail.com> wrote:
>
> From: Barry Song <song.bao.hua@hisilicon.com>
>
>
> /sys/bus/pci/devices/.../irq has been there for many years but it has never
> been documented. This patchset is trying to clarify it.
>
> -v3:
>   - Don't attempt to modify the current behaviour of IRQ ABI for MSI-X
>   - Make MSI IRQ ABI more explicit(return 1st IRQ of the IRQ vector)
>   - Add Marc's patch of removing default_irq from the previous comment to
>     the series.
>   Note patch 3/3 indirectly changed the code of pci_restore_msi_state(),
>   drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c is the only driver
>   calling this API. I would appreciate testing done from this driver's
>   maintainers.
>
> -v2:
>   - split into two patches according to Bjorn's comments;
>   - Add Greg's Acked-by, thanks for reviewing!
>   https://lore.kernel.org/lkml/20210820223744.8439-1-21cnbao@gmail.com/
>
> -v1:
>   https://lore.kernel.org/lkml/20210813122650.25764-1-21cnbao@gmail.com/#t
>
> Barry Song (2):
>   Documentation: ABI: sysfs-bus-pci: Add description for IRQ entry

Hi Marc, Bjorn,
I found there are more than 700 drivers which are directly accessing
pci_dev->irq.
Do you want to just take the documentation patch 1/3 as anyway we need the ABI
document, or do you want to continue changing all of the 700 drivers to use
pci_irq_vector(pdev, 0) instead?

the list of involved drivers:
./sound/pci/als300.c
./sound/pci/ymfpci/ymfpci_main.c
./sound/pci/ymfpci/ymfpci.c
./sound/pci/aw2/aw2-alsa.c
./sound/pci/trident/trident_main.c
./sound/pci/trident/trident.c
./sound/pci/fm801.c
./sound/pci/lola/lola.c
./sound/pci/ali5451/ali5451.c
./sound/pci/es1938.c
./sound/pci/lx6464es/lx6464es.c
./sound/pci/mixart/mixart.c
./sound/pci/au88x0/au88x0.c
./sound/pci/ad1889.c
./sound/pci/als4000.c
./sound/pci/cmipci.c
./sound/pci/sis7019.c
./sound/pci/ca0106/ca0106_main.c
./sound/pci/ctxfi/cthw20k2.c
./sound/pci/ctxfi/cthw20k1.c
./sound/pci/via82xx_modem.c
./sound/pci/ice1712/ice1712.c
./sound/pci/ice1712/ice1724.c
./sound/pci/pcxhr/pcxhr.c
./sound/pci/maestro3.c
./sound/pci/rme32.c
./sound/pci/sonicvibes.c
./sound/pci/via82xx.c
./sound/pci/intel8x0.c
./sound/pci/riptide/riptide.c
./sound/pci/cs46xx/cs46xx.c
./sound/pci/cs46xx/cs46xx_lib.c
./sound/pci/atiixp_modem.c
./sound/pci/korg1212/korg1212.c
./sound/pci/atiixp.c
./sound/pci/es1968.c
./sound/pci/hda/hda_intel.c
./sound/pci/intel8x0m.c
./sound/pci/rme96.c
./sound/pci/emu10k1/emu10k1.c
./sound/pci/emu10k1/emu10k1_main.c
./sound/pci/emu10k1/emu10k1x.c
./sound/pci/oxygen/oxygen_lib.c
./sound/pci/rme9652/hdsp.c
./sound/pci/rme9652/hdspm.c
./sound/pci/rme9652/rme9652.c
./sound/pci/cs5535audio/cs5535audio.c
./sound/pci/cs4281.c
./sound/pci/nm256/nm256.c
./sound/pci/bt87x.c
./sound/pci/asihpi/hpi6205.c
./sound/pci/asihpi/hpioctl.c
./sound/pci/ens1370.c
./sound/pci/azt3328.c
./sound/pci/echoaudio/echoaudio.c
./sound/pci/vx222/vx222.c
./sound/soc/intel/atom/sst/sst_pci.c
./sound/soc/intel/skylake/skl.c
./sound/soc/sof/intel/hda.c
./sound/soc/sof/intel/pci-tng.c
./sound/soc/sof/intel/hda-dsp.c
./sound/soc/amd/renoir/rn-pci-acp3x.c
./sound/soc/amd/vangogh/pci-acp5x.c
./sound/soc/amd/raven/pci-acp3x.c
./sound/ppc/pmac.c
./arch/ia64/kernel/msi_ia64.c
./arch/x86/pci/intel_mid_pci.c
./arch/x86/pci/fixup.c
./arch/x86/pci/xen.c
./arch/x86/pci/irq.c
./arch/x86/platform/intel-mid/pwr.c
./arch/x86/hyperv/irqdomain.c
./arch/x86/kernel/devicetree.c
./arch/x86/kernel/apic/msi.c
./arch/arm/mach-footbridge/cats-pci.c
./arch/arm/mach-cns3xxx/pcie.c
./arch/s390/pci/pci_irq.c
./arch/microblaze/pci/pci-common.c
./arch/um/drivers/virt-pci.c
./arch/sparc/kernel/leon_pci_grpci1.c
./arch/sparc/kernel/leon_pci_grpci2.c
./arch/sparc/kernel/pci.c
./arch/sparc/kernel/pcic.c
./arch/alpha/kernel/core_marvel.c
./arch/alpha/kernel/sys_jensen.c
./arch/alpha/kernel/sys_dp264.c
./arch/alpha/kernel/sys_sable.c
./arch/alpha/kernel/sys_titan.c
./arch/alpha/kernel/sys_marvel.c
./arch/alpha/kernel/sys_takara.c
./arch/alpha/kernel/sys_cabriolet.c
./arch/alpha/kernel/sys_rawhide.c
./arch/alpha/kernel/sys_rx164.c
./arch/alpha/kernel/sys_noritake.c
./arch/alpha/kernel/sys_wildfire.c
./arch/alpha/kernel/sys_sio.c
./arch/alpha/kernel/sys_alcor.c
./arch/alpha/kernel/sys_eiger.c
./arch/alpha/kernel/sys_mikasa.c
./arch/alpha/kernel/sys_eb64p.c
./arch/powerpc/platforms/embedded6xx/mvme5100.c
./arch/powerpc/platforms/maple/pci.c
./arch/powerpc/platforms/cell/axon_msi.c
./arch/powerpc/platforms/4xx/msi.c
./arch/powerpc/platforms/4xx/hsta_msi.c
./arch/powerpc/platforms/fsl_uli1575.c
./arch/powerpc/platforms/powermac/pci.c
./arch/powerpc/platforms/pasemi/msi.c
./arch/powerpc/platforms/pasemi/dma_lib.c
./arch/powerpc/platforms/pasemi/setup.c
./arch/powerpc/platforms/44x/ppc476.c
./arch/powerpc/platforms/85xx/mpc85xx_cds.c
./arch/powerpc/platforms/powernv/pci-ioda.c
./arch/powerpc/platforms/pseries/msi.c
./arch/powerpc/platforms/pseries/setup.c
./arch/powerpc/platforms/chrp/pci.c
./arch/powerpc/sysdev/mpic_u3msi.c
./arch/powerpc/sysdev/fsl_msi.c
./arch/powerpc/kernel/pci-common.c
./arch/powerpc/kernel/legacy_serial.c
./arch/powerpc/kernel/eeh_driver.c
./arch/powerpc/kernel/pci_of_scan.c
./arch/mips/pci/pci-bcm47xx.c
./arch/mips/pci/pci-ar2315.c
./arch/mips/pci/pci-sb1250.c
./arch/mips/pci/msi-octeon.c
./arch/mips/pci/pci-rt3883.c
./arch/mips/pci/msi-xlp.c
./arch/mips/pci/pci-xlr.c
./arch/mips/pci/fixup-lemote2f.c
./arch/mips/pci/pci-mt7620.c
./arch/mips/loongson64/hpet.c
./arch/mips/netlogic/xlp/usb-init.c
./arch/mips/netlogic/xlp/ahci-init-xlp2.c
./arch/mips/netlogic/xlp/ahci-init.c
./arch/mips/netlogic/xlp/usb-init-xlp2.c
./drivers/uio/uio_sercos3.c
./drivers/uio/uio_netx.c
./drivers/uio/uio_aec.c
./drivers/uio/uio_mf624.c
./drivers/uio/uio_cif.c
./drivers/uio/uio_pci_generic.c
./drivers/ntb/test/ntb_msi_test.c
./drivers/ntb/hw/intel/ntb_hw_gen1.c
./drivers/ntb/hw/amd/ntb_hw_amd.c
./drivers/bus/mhi/pci_generic.c
./drivers/net/fddi/defxx.c
./drivers/net/fddi/skfp/skfddi.c
./drivers/net/vmxnet3/vmxnet3_drv.c
./drivers/net/wwan/iosm/iosm_ipc_irq.c
./drivers/net/wwan/iosm/iosm_ipc_imem.c
./drivers/net/hippi/rrunner.c
./drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
./drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
./drivers/net/ethernet/chelsio/cxgb/cxgb2.c
./drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
./drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
./drivers/net/ethernet/8390/ne2k-pci.c
./drivers/net/ethernet/ti/tlan.c
./drivers/net/ethernet/silan/sc92031.c
./drivers/net/ethernet/jme.c
./drivers/net/ethernet/neterion/vxge/vxge-main.c
./drivers/net/ethernet/neterion/s2io.c
./drivers/net/ethernet/mellanox/mlx4/main.c
./drivers/net/ethernet/sun/niu.c
./drivers/net/ethernet/sun/sungem.c
./drivers/net/ethernet/sun/cassini.c
./drivers/net/ethernet/sun/sunhme.c
./drivers/net/ethernet/toshiba/tc35815.c
./drivers/net/ethernet/toshiba/spider_net.c
./drivers/net/ethernet/atheros/atl1e/atl1e_main.c
./drivers/net/ethernet/atheros/atl1c/atl1c_main.c
./drivers/net/ethernet/atheros/alx/main.c
./drivers/net/ethernet/atheros/atlx/atl2.c
./drivers/net/ethernet/atheros/atlx/atl1.c
./drivers/net/ethernet/microsoft/mana/gdma_main.c
./drivers/net/ethernet/emulex/benet/be_main.c
./drivers/net/ethernet/tehuti/tehuti.c
./drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
./drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
./drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
./drivers/net/ethernet/netronome/nfp/nfp_netvf_main.c
./drivers/net/ethernet/netronome/nfp/nfp_net_common.c
./drivers/net/ethernet/brocade/bna/bnad.c
./drivers/net/ethernet/microchip/lan743x_main.c
./drivers/net/ethernet/dlink/sundance.c
./drivers/net/ethernet/dlink/dl2k.c
./drivers/net/ethernet/sgi/ioc3-eth.c
./drivers/net/ethernet/broadcom/bnxt/bnxt.c
./drivers/net/ethernet/broadcom/b44.c
./drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
./drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
./drivers/net/ethernet/broadcom/cnic.c
./drivers/net/ethernet/broadcom/bnx2.c
./drivers/net/ethernet/broadcom/tg3.c
./drivers/net/ethernet/marvell/skge.c
./drivers/net/ethernet/marvell/sky2.c
./drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
./drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
./drivers/net/ethernet/marvell/octeontx2/af/rvu.c
./drivers/net/ethernet/marvell/octeontx2/af/cgx.c
./drivers/net/ethernet/intel/igbvf/netdev.c
./drivers/net/ethernet/intel/e1000/e1000_ethtool.c
./drivers/net/ethernet/intel/e1000/e1000_main.c
./drivers/net/ethernet/intel/igc/igc_main.c
./drivers/net/ethernet/intel/i40e/i40e_main.c
./drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
./drivers/net/ethernet/intel/igb/igb_main.c
./drivers/net/ethernet/intel/ixgb/ixgb_main.c
./drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c
./drivers/net/ethernet/intel/ice/ice_main.c
./drivers/net/ethernet/intel/e100.c
./drivers/net/ethernet/intel/e1000e/ethtool.c
./drivers/net/ethernet/intel/e1000e/netdev.c
./drivers/net/ethernet/sfc/efx_channels.c
./drivers/net/ethernet/sfc/nic.c
./drivers/net/ethernet/sfc/ef100_netdev.c
./drivers/net/ethernet/sfc/farch.c
./drivers/net/ethernet/sfc/efx.c
./drivers/net/ethernet/sfc/ptp.c
./drivers/net/ethernet/sfc/falcon/falcon.c
./drivers/net/ethernet/sfc/falcon/nic.c
./drivers/net/ethernet/sfc/falcon/farch.c
./drivers/net/ethernet/sfc/falcon/efx.c
./drivers/net/ethernet/sfc/ef10.c
./drivers/net/ethernet/sfc/ef100_nic.c
./drivers/net/ethernet/sfc/siena.c
./drivers/net/ethernet/huawei/hinic/hinic_rx.c
./drivers/net/ethernet/huawei/hinic/hinic_hw_eqs.c
./drivers/net/ethernet/huawei/hinic/hinic_tx.c
./drivers/net/ethernet/huawei/hinic/hinic_hw_qp.c
./drivers/net/ethernet/synopsys/dwc-xlgmac-pci.c
./drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
./drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
./drivers/net/ethernet/qlogic/qed/qed_main.c
./drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
./drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c
./drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
./drivers/net/ethernet/qlogic/qla3xxx.c
./drivers/net/ethernet/qlogic/qede/qede_main.c
./drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
./drivers/net/ethernet/cisco/enic/enic_main.c
./drivers/net/ethernet/dec/tulip/tulip_core.c
./drivers/net/ethernet/dec/tulip/xircom_cb.c
./drivers/net/ethernet/dec/tulip/dmfe.c
./drivers/net/ethernet/dec/tulip/winbond-840.c
./drivers/net/ethernet/dec/tulip/uli526x.c
./drivers/net/ethernet/dec/tulip/de2104x.c
./drivers/net/ethernet/dec/tulip/de4x5.c
./drivers/net/ethernet/alacritech/slicoss.c
./drivers/net/ethernet/agere/et131x.c
./drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
./drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
./drivers/net/ethernet/cavium/liquidio/lio_main.c
./drivers/net/ethernet/cavium/liquidio/lio_core.c
./drivers/net/ethernet/cavium/thunder/nic_main.c
./drivers/net/ethernet/cavium/thunder/nicvf_main.c
./drivers/net/ethernet/micrel/ksz884x.c
./drivers/net/ethernet/realtek/8139cp.c
./drivers/net/ethernet/realtek/r8169_main.c
./drivers/net/ethernet/realtek/8139too.c
./drivers/net/ethernet/adaptec/starfire.c
./drivers/net/ethernet/3com/typhoon.c
./drivers/net/ethernet/3com/3c59x.c
./drivers/net/ethernet/via/via-rhine.c
./drivers/net/ethernet/via/via-velocity.c
./drivers/net/ethernet/smsc/epic100.c
./drivers/net/ethernet/smsc/smsc9420.c
./drivers/net/ethernet/natsemi/ns83820.c
./drivers/net/ethernet/natsemi/natsemi.c
./drivers/net/ethernet/sis/sis900.c
./drivers/net/ethernet/sis/sis190.c
./drivers/net/ethernet/rdc/r6040.c
./drivers/net/ethernet/myricom/myri10ge/myri10ge.c
./drivers/net/ethernet/fealnx.c
./drivers/net/ethernet/nvidia/forcedeth.c
./drivers/net/ethernet/alteon/acenic.c
./drivers/net/ethernet/packetengines/yellowfin.c
./drivers/net/ethernet/packetengines/hamachi.c
./drivers/net/ethernet/freescale/enetc/enetc_ptp.c
./drivers/net/ethernet/amazon/ena/ena_netdev.c
./drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c
./drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
./drivers/net/ethernet/amd/xgbe/xgbe-pci.c
./drivers/net/ethernet/amd/amd8111e.c
./drivers/net/ethernet/amd/pcnet32.c
./drivers/net/dsa/ocelot/felix_vsc9959.c
./drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c
./drivers/net/wireless/quantenna/qtnfmac/pcie/topaz_pcie.c
./drivers/net/wireless/intersil/orinoco/orinoco_pci.c
./drivers/net/wireless/intersil/orinoco/orinoco_tmd.c
./drivers/net/wireless/intersil/orinoco/orinoco_nortel.c
./drivers/net/wireless/intersil/orinoco/orinoco_plx.c
./drivers/net/wireless/intersil/hostap/hostap_pci.c
./drivers/net/wireless/intersil/hostap/hostap_plx.c
./drivers/net/wireless/intersil/p54/p54pci.c
./drivers/net/wireless/broadcom/b43legacy/main.c
./drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
./drivers/net/wireless/broadcom/b43/main.c
./drivers/net/wireless/marvell/mwl8k.c
./drivers/net/wireless/marvell/mwifiex/pcie.c
./drivers/net/wireless/intel/ipw2x00/ipw2200.c
./drivers/net/wireless/intel/ipw2x00/ipw2100.c
./drivers/net/wireless/intel/iwlegacy/4965-mac.c
./drivers/net/wireless/intel/iwlegacy/common.c
./drivers/net/wireless/intel/iwlegacy/3945-mac.c
./drivers/net/wireless/intel/iwlwifi/pcie/trans.c
./drivers/net/wireless/atmel/atmel_pci.c
./drivers/net/wireless/mediatek/mt76/mt7603/pci.c
./drivers/net/wireless/mediatek/mt76/mt7615/pci.c
./drivers/net/wireless/mediatek/mt76/mt76x0/pci.c
./drivers/net/wireless/mediatek/mt76/mt7921/pci.c
./drivers/net/wireless/mediatek/mt76/mt76x2/pci.c
./drivers/net/wireless/mediatek/mt76/mt7915/pci.c
./drivers/net/wireless/cisco/airo.c
./drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
./drivers/net/wireless/realtek/rtw88/pci.c
./drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.c
./drivers/net/wireless/realtek/rtlwifi/rtl8188ee/sw.c
./drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c
./drivers/net/wireless/realtek/rtlwifi/rtl8192ce/sw.c
./drivers/net/wireless/realtek/rtlwifi/pci.c
./drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c
./drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c
./drivers/net/wireless/realtek/rtlwifi/rtl8723ae/sw.c
./drivers/net/wireless/realtek/rtlwifi/rtl8192ee/sw.c
./drivers/net/wireless/ath/ath5k/pci.c
./drivers/net/wireless/ath/ath11k/pci.c
./drivers/net/wireless/ath/wil6210/pcie_bus.c
./drivers/net/wireless/ath/ath9k/pci.c
./drivers/net/wireless/ath/ath10k/pci.c
./drivers/net/wireless/ralink/rt2x00/rt2x00pci.c
./drivers/net/wireless/ralink/rt2x00/rt2400pci.c
./drivers/net/wireless/ralink/rt2x00/rt61pci.c
./drivers/net/wireless/ralink/rt2x00/rt2500pci.c
./drivers/net/wireless/admtek/adm8211.c
./drivers/net/arcnet/com20020-pci.c
./drivers/net/wan/wanxl.c
./drivers/net/wan/lmc/lmc_main.c
./drivers/net/wan/farsync.c
./drivers/net/wan/pci200syn.c
./drivers/net/wan/pc300too.c
./drivers/net/can/c_can/c_can_pci.c
./drivers/net/can/kvaser_pciefd.c
./drivers/net/can/pch_can.c
./drivers/net/can/m_can/m_can_pci.c
./drivers/net/can/sja1000/f81601.c
./drivers/net/can/sja1000/ems_pci.c
./drivers/net/can/sja1000/peak_pci.c
./drivers/net/can/sja1000/plx_pci.c
./drivers/net/can/sja1000/kvaser_pci.c
./drivers/net/can/peak_canfd/peak_pciefd_main.c
./drivers/pnp/resource.c
./drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c
./drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci_legacy.c
./drivers/media/pci/smipcie/smipcie-main.c
./drivers/media/pci/mantis/mantis_pci.c
./drivers/media/pci/mantis/hopper_cards.c
./drivers/media/pci/mantis/mantis_cards.c
./drivers/media/pci/cx25821/cx25821-core.c
./drivers/media/pci/cx25821/cx25821-alsa.c
./drivers/media/pci/sta2x11/sta2x11_vip.c
./drivers/media/pci/saa7164/saa7164-core.c
./drivers/media/pci/cobalt/cobalt-v4l2.c
./drivers/media/pci/cobalt/cobalt-driver.c
./drivers/media/pci/tw5864/tw5864-core.c
./drivers/media/pci/intel/ipu3/ipu3-cio2-main.c
./drivers/media/pci/cx23885/cx23885-core.c
./drivers/media/pci/saa7134/saa7134-alsa.c
./drivers/media/pci/saa7134/saa7134-core.c
./drivers/media/pci/tw686x/tw686x-core.c
./drivers/media/pci/solo6x10/solo6x10-core.c
./drivers/media/pci/ngene/ngene-core.c
./drivers/media/pci/cx88/cx88-mpeg.c
./drivers/media/pci/cx88/cx88-alsa.c
./drivers/media/pci/cx88/cx88-video.c
./drivers/media/pci/dt3155/dt3155.c
./drivers/media/pci/ddbridge/ddbridge-core.c
./drivers/media/pci/dm1105/dm1105.c
./drivers/media/pci/b2c2/flexcop-pci.c
./drivers/media/pci/netup_unidvb/netup_unidvb_core.c
./drivers/media/pci/tw68/tw68-core.c
./drivers/media/pci/pluto2/pluto2.c
./drivers/media/pci/ivtv/ivtv-driver.c
./drivers/media/pci/meye/meye.c
./drivers/media/pci/bt8xx/dvb-bt8xx.c
./drivers/media/pci/bt8xx/bttv-driver.c
./drivers/media/pci/bt8xx/bt878.c
./drivers/media/pci/cx18/cx18-driver.c
./drivers/media/platform/marvell-ccic/cafe-driver.c
./drivers/media/common/saa7146/saa7146_core.c
./drivers/comedi/comedi_pci.c
./drivers/comedi/drivers/ni_pcimio.c
./drivers/comedi/drivers/amplc_dio200_pci.c
./drivers/comedi/drivers/rtd520.c
./drivers/comedi/drivers/gsc_hpdi.c
./drivers/comedi/drivers/ni_labpc_pci.c
./drivers/comedi/drivers/amplc_pci236.c
./drivers/comedi/drivers/me4000.c
./drivers/comedi/drivers/addi_apci_1500.c
./drivers/comedi/drivers/adl_pci9111.c
./drivers/comedi/drivers/ni_660x.c
./drivers/comedi/drivers/cb_pcidas.c
./drivers/comedi/drivers/adl_pci7x3x.c
./drivers/comedi/drivers/addi_apci_3xxx.c
./drivers/comedi/drivers/adl_pci9118.c
./drivers/comedi/drivers/addi_apci_1564.c
./drivers/comedi/drivers/ni_6527.c
./drivers/comedi/drivers/cb_pcidas64.c
./drivers/comedi/drivers/ni_65xx.c
./drivers/comedi/drivers/addi_apci_3120.c
./drivers/comedi/drivers/s626.c
./drivers/comedi/drivers/ni_pcidio.c
./drivers/comedi/drivers/adv_pci1710.c
./drivers/comedi/drivers/dt3000.c
./drivers/comedi/drivers/adv_pci_dio.c
./drivers/comedi/drivers/amplc_pci230.c
./drivers/comedi/drivers/addi_apci_1032.c
./drivers/comedi/drivers/addi_apci_2032.c
./drivers/comedi/drivers/amplc_pci224.c
./drivers/pci/quirks.c
./drivers/pci/controller/pci-hyperv.c
./drivers/pci/controller/pcie-mediatek.c
./drivers/pci/controller/vmd.c
./drivers/pci/controller/pci-tegra.c
./drivers/pci/controller/cadence/pcie-cadence-ep.c
./drivers/pci/controller/dwc/pcie-tegra194.c
./drivers/pci/controller/dwc/pcie-spear13xx.c
./drivers/pci/controller/dwc/pci-keystone.c
./drivers/pci/msi.c
./drivers/pci/proc.c
./drivers/pci/xen-pcifront.c
./drivers/pci/probe.c
./drivers/pci/hotplug/pnv_php.c
./drivers/pci/hotplug/ibmphp_core.c
./drivers/pci/hotplug/ibmphp_pci.c
./drivers/pci/hotplug/cpci_hotplug_core.c
./drivers/pci/hotplug/ibmphp_ebda.c
./drivers/pci/hotplug/pciehp_hpc.c
./drivers/pci/hotplug/shpchp_hpc.c
./drivers/pci/hotplug/cpqphp_core.c
./drivers/pci/hotplug/cpcihp_zt5550.c
./drivers/pci/hotplug/cpqphp_ctrl.c
./drivers/pci/pcie/aer_inject.c
./drivers/pci/pcie/aer.c
./drivers/pci/pcie/dpc.c
./drivers/pci/pcie/portdrv_core.c
./drivers/pci/pcie/pme.c
./drivers/pci/setup-irq.c
./drivers/infiniband/hw/mthca/mthca_main.c
./drivers/infiniband/hw/efa/efa_main.c
./drivers/infiniband/hw/hfi1/chip.c
./drivers/infiniband/hw/hfi1/init.c
./drivers/infiniband/hw/hfi1/affinity.c
./drivers/infiniband/hw/ocrdma/ocrdma_hw.c
./drivers/infiniband/hw/hns/hns_roce_qp.c
./drivers/infiniband/hw/hns/hns_roce_hw_v2.c
./drivers/iommu/apple-dart.c
./drivers/iommu/arm/arm-smmu/arm-smmu.c
./drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
./drivers/iommu/intel/dmar.c
./drivers/iommu/intel/irq_remapping.c
./drivers/iommu/amd/iommu.c
./drivers/iommu/amd/init.c
./drivers/dma/hsu/pci.c
./drivers/dma/idxd/device.c
./drivers/dma/idxd/init.c
./drivers/dma/ioat/init.c
./drivers/dma/ioat/dma.c
./drivers/dma/dw/pci.c
./drivers/dma/dw-edma/dw-edma-pcie.c
./drivers/dma/pch_dma.c
./drivers/mmc/host/sdhci-pci-gli.c
./drivers/mmc/host/sdhci-pci-o2micro.c
./drivers/mmc/host/dw_mmc-pci.c
./drivers/mmc/host/sdhci-pci-core.c
./drivers/mmc/host/cavium-thunderx.c
./drivers/mmc/host/via-sdmmc.c
./drivers/mmc/host/toshsd.c
./drivers/mmc/host/cb710-mmc.c
./drivers/mmc/host/sdhci-acpi.c
./drivers/acpi/apei/ghes.c
./drivers/acpi/pci_irq.c
./drivers/ssb/main.c
./drivers/ssb/driver_gige.c
./drivers/ssb/driver_pcicore.c
./drivers/thunderbolt/nhi.c
./drivers/tty/serial/icom.c
./drivers/tty/serial/8250/8250_mid.c
./drivers/tty/serial/8250/8250_pci.c
./drivers/tty/serial/8250/8250_lpss.c
./drivers/tty/serial/jsm/jsm_tty.c
./drivers/tty/serial/jsm/jsm_driver.c
./drivers/tty/serial/pch_uart.c
./drivers/tty/serial/serial_txx9.c
./drivers/tty/serial/rp2.c
./drivers/tty/mxser.c
./drivers/tty/nozomi.c
./drivers/tty/synclink_gt.c
./drivers/crypto/hifn_795x.c
./drivers/crypto/qat/qat_common/adf_transport.c
./drivers/crypto/qat/qat_common/adf_vf_isr.c
./drivers/crypto/ccp/sp-pci.c
./drivers/usb/isp1760/isp1760-if.c
./drivers/usb/cdns3/cdns3-pci-wrap.c
./drivers/usb/cdns3/cdnsp-pci.c
./drivers/usb/host/xhci-pci.c
./drivers/usb/host/uhci-pci.c
./drivers/usb/host/xhci.c
./drivers/usb/chipidea/ci_hdrc_pci.c
./drivers/usb/dwc2/pci.c
./drivers/usb/gadget/udc/net2272.c
./drivers/usb/gadget/udc/pch_udc.c
./drivers/usb/gadget/udc/net2280.c
./drivers/usb/gadget/udc/goku_udc.c
./drivers/usb/gadget/udc/amd5536udc_pci.c
./drivers/usb/dwc3/dwc3-haps.c
./drivers/usb/dwc3/dwc3-pci.c
./drivers/usb/core/hcd-pci.c
./drivers/ata/pata_sil680.c
./drivers/ata/sata_promise.c
./drivers/ata/pata_atp867x.c
./drivers/ata/ahci.c
./drivers/ata/sata_svw.c
./drivers/ata/acard-ahci.c
./drivers/ata/sata_mv.c
./drivers/ata/libata-sff.c
./drivers/ata/sata_uli.c
./drivers/ata/pata_macio.c
./drivers/ata/pata_legacy.c
./drivers/ata/pdc_adma.c
./drivers/ata/pata_ninja32.c
./drivers/ata/sata_sil24.c
./drivers/ata/sata_sil.c
./drivers/ata/sata_inic162x.c
./drivers/ata/pata_hpt3x3.c
./drivers/ata/pata_pdc2027x.c
./drivers/ata/sata_nv.c
./drivers/ata/sata_sx4.c
./drivers/ata/sata_sis.c
./drivers/ata/sata_qstor.c
./drivers/ata/sata_via.c
./drivers/ata/sata_vsc.c
./drivers/scsi/megaraid/megaraid_sas_base.c
./drivers/scsi/megaraid/megaraid_mm.c
./drivers/scsi/megaraid/megaraid_mbox.c
./drivers/scsi/megaraid/megaraid_sas_fusion.c
./drivers/scsi/megaraid.c
./drivers/scsi/dpt_i2o.c
./drivers/scsi/initio.c
./drivers/scsi/pm8001/pm8001_init.c
./drivers/scsi/wd719x.c
./drivers/scsi/ufs/ufshcd-pci.c
./drivers/scsi/ufs/tc-dwc-g210-pci.c
./drivers/scsi/am53c974.c
./drivers/scsi/nsp32.c
./drivers/scsi/mvumi.c
./drivers/scsi/be2iscsi/be_main.c
./drivers/scsi/fdomain_pci.c
./drivers/scsi/cxlflash/ocxl_hw.c
./drivers/scsi/cxlflash/main.c
./drivers/scsi/smartpqi/smartpqi_init.c
./drivers/scsi/lpfc/lpfc_sli.c
./drivers/scsi/lpfc/lpfc_init.c
./drivers/scsi/lpfc/lpfc_scsi.c
./drivers/scsi/lpfc/lpfc_attr.c
./drivers/scsi/a100u2w.c
./drivers/scsi/mvsas/mv_init.c
./drivers/scsi/3w-xxxx.c
./drivers/scsi/stex.c
./drivers/scsi/dmx3191d.c
./drivers/scsi/mpt3sas/mpt3sas_base.c
./drivers/scsi/esas2r/esas2r_main.c
./drivers/scsi/esas2r/esas2r_ioctl.c
./drivers/scsi/esas2r/esas2r_init.c
./drivers/scsi/hptiop.c
./drivers/scsi/bfa/bfad.c
./drivers/scsi/qla2xxx/qla_os.c
./drivers/scsi/ips.c
./drivers/scsi/mesh.c
./drivers/scsi/3w-sas.c
./drivers/scsi/myrb.c
./drivers/scsi/aacraid/linit.c
./drivers/scsi/aic94xx/aic94xx_init.c
./drivers/scsi/qla1280.c
./drivers/scsi/3w-9xxx.c
./drivers/scsi/sym53c8xx_2/sym_glue.c
./drivers/scsi/atp870u.c
./drivers/scsi/mpi3mr/mpi3mr_fw.c
./drivers/scsi/dc395x.c
./drivers/scsi/myrs.c
./drivers/scsi/ipr.c
./drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
./drivers/scsi/qedi/qedi_main.c
./drivers/scsi/advansys.c
./drivers/scsi/qla4xxx/ql4_os.c
./drivers/scsi/BusLogic.c
./drivers/scsi/aic7xxx/aic79xx_osm_pci.c
./drivers/scsi/aic7xxx/aic7xxx_osm_pci.c
./drivers/scsi/hpsa.c
./drivers/spi/spi-pxa2xx.c
./drivers/spi/spi-dw-pci.c
./drivers/spi/spi-topcliff-pch.c
./drivers/spi/spi-pxa2xx-pci.c
./drivers/platform/chrome/chromeos_laptop.c
./drivers/platform/x86/intel_scu_pcidrv.c
./drivers/platform/x86/intel_ips.c
./drivers/platform/x86/sony-laptop.c
./drivers/block/rsxx/dma.c
./drivers/block/rsxx/core.c
./drivers/block/sx8.c
./drivers/block/mtip32xx/mtip32xx.c
./drivers/mtd/nand/raw/denali_pci.c
./drivers/mtd/nand/raw/cafe_nand.c
./drivers/mtd/nand/raw/r852.c
./drivers/parisc/superio.c
./drivers/parisc/dino.c
./drivers/parisc/iosapic.c
./drivers/firewire/ohci.c
./drivers/firewire/nosy.c
./drivers/hid/intel-ish-hid/ipc/pci-ish.c
./drivers/macintosh/rack-meter.c
./drivers/atm/nicstar.c
./drivers/atm/ambassador.c
./drivers/atm/iphase.c
./drivers/atm/horizon.c
./drivers/atm/firestream.c
./drivers/atm/zatm.c
./drivers/atm/lanai.c
./drivers/atm/eni.c
./drivers/atm/solos-pci.c
./drivers/atm/he.c
./drivers/atm/fore200e.c
./drivers/atm/idt77252.c
./drivers/parport/parport_pc.c
./drivers/pcmcia/cardbus.c
./drivers/pcmcia/i82092.c
./drivers/pcmcia/yenta_socket.c
./drivers/pcmcia/pd6729.c
./drivers/watchdog/wdt_pci.c
./drivers/vme/bridges/vme_ca91cx42.c
./drivers/vme/bridges/vme_tsi148.c
./drivers/input/serio/pcips2.c
./drivers/vfio/pci/vfio_pci_core.c
./drivers/vfio/pci/vfio_pci_intrs.c
./drivers/gpio/gpio-sodaville.c
./drivers/gpio/gpio-sta2x11.c
./drivers/gpio/gpio-pci-idio-16.c
./drivers/gpio/gpio-pch.c
./drivers/gpio/gpio-ml-ioh.c
./drivers/gpio/gpio-thunderx.c
./drivers/gpio/gpio-merrifield.c
./drivers/gpio/gpio-pcie-idio-24.c
./drivers/gpio/gpio-sch.c
./drivers/ipack/carriers/tpci200.c
./drivers/rapidio/devices/tsi721.c
./drivers/char/ipmi/ipmi_si_pci.c
./drivers/char/sonypi.c
./drivers/char/applicom.c
./drivers/char/xillybus/xillybus_pcie.c
./drivers/message/fusion/mptspi.c
./drivers/message/fusion/mptbase.c
./drivers/message/fusion/mptfc.c
./drivers/message/fusion/mptsas.c
./drivers/mfd/intel-lpss-pci.c
./drivers/mfd/intel_quark_i2c_gpio.c
./drivers/mfd/janz-cmodio.c
./drivers/mfd/sm501.c
./drivers/mfd/ioc3.c
./drivers/gpu/drm/drm_irq.c
./drivers/gpu/drm/vboxvideo/vbox_irq.c
./drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
./drivers/gpu/drm/r128/r128_state.c
./drivers/gpu/drm/radeon/radeon_irq_kms.c
./drivers/gpu/drm/radeon/si_dpm.c
./drivers/gpu/drm/radeon/ci_dpm.c
./drivers/gpu/drm/radeon/si.c
./drivers/gpu/drm/radeon/cik.c
./drivers/gpu/drm/radeon/radeon_device.c
./drivers/gpu/drm/radeon/radeon_kms.c
./drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c
./drivers/gpu/drm/i915/i915_drv.c
./drivers/gpu/drm/i915/i915_irq.c
./drivers/gpu/drm/i915/i915_pmu.c
./drivers/gpu/drm/i915/display/intel_display_power.c
./drivers/gpu/drm/drm_pci.c
./drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
./drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
./drivers/gpu/drm/qxl/qxl_irq.c
./drivers/gpu/drm/i810/i810_dma.c
./drivers/gpu/drm/gma500/psb_drv.c
./drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c
./drivers/gpu/drm/gma500/psb_irq.c
./drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
./drivers/gpu/drm/mga/mga_dma.c
./drivers/gpu/drm/mga/mga_state.c
./drivers/isdn/hardware/mISDN/netjet.c
./drivers/isdn/hardware/mISDN/mISDNinfineon.c
./drivers/isdn/hardware/mISDN/speedfax.c
./drivers/isdn/hardware/mISDN/hfcmulti.c
./drivers/isdn/hardware/mISDN/w6692.c
./drivers/isdn/hardware/mISDN/hfcpci.c
./drivers/isdn/hardware/mISDN/avmfritz.c
./drivers/video/fbdev/matrox/matroxfb_base.c
./drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
./drivers/video/fbdev/cyber2000fb.c
./drivers/video/fbdev/via/via-core.c
./drivers/video/fbdev/aty/atyfb_base.c
./drivers/video/fbdev/intelfb/intelfbdrv.c
./drivers/video/fbdev/intelfb/intelfbhw.c
./drivers/virt/vboxguest/vboxguest_linux.c
./drivers/i2c/busses/i2c-pxa-pci.c
./drivers/i2c/busses/i2c-amd-mp2-pci.c
./drivers/i2c/busses/i2c-eg20t.c
./drivers/i2c/busses/i2c-designware-pcidrv.c
./drivers/i2c/busses/i2c-i801.c
./drivers/i2c/busses/i2c-ismt.c
./drivers/i2c/busses/i2c-nvidia-gpu.c
./drivers/xen/platform-pci.c
./drivers/xen/events/events_base.c
./drivers/xen/xen-pciback/pciback_ops.c
./drivers/xen/xen-pciback/conf_space_header.c
./drivers/xen/xen-pciback/pci_stub.c
./drivers/staging/rts5208/rtsx.c
./drivers/staging/media/ipu3/ipu3.c
./drivers/staging/media/atomisp/pci/atomisp_ioctl.c
./drivers/staging/media/atomisp/pci/atomisp_v4l2.c
./drivers/staging/media/atomisp/pci/atomisp_cmd.c
./drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c
./drivers/staging/media/zoran/zoran_device.c
./drivers/staging/media/zoran/zoran_card.c
./drivers/staging/vt6655/device_main.c
./drivers/staging/rtl8192e/rtl8192e/rtl_core.c
./drivers/staging/qlge/qlge_main.c
./drivers/misc/pci_endpoint_test.c
./drivers/misc/phantom.c
./drivers/misc/cardreader/rtsx_pcr.c
./drivers/misc/cardreader/alcor_pci.c
./drivers/misc/habanalabs/goya/goya.c
./drivers/misc/cxl/guest.c
./drivers/misc/cxl/api.c
./drivers/misc/cxl/of.c
./drivers/misc/cxl/sysfs.c
./drivers/misc/genwqe/card_ddcb.c
./drivers/misc/genwqe/card_debugfs.c
./drivers/misc/tifm_7xx1.c
./drivers/misc/mei/hw-me.c
./drivers/misc/mei/pci-txe.c
./drivers/misc/mei/pci-me.c
./drivers/misc/mei/hw-txe.c
./drivers/misc/cb710/core.c
./drivers/misc/vmw_vmci/vmci_guest.c
./drivers/misc/bcm-vk/bcm_vk_dev.c
./drivers/misc/ocxl/context.c
./drivers/misc/ocxl/core.c
./drivers/misc/ocxl/link.c
./drivers/misc/ibmasm/module.c
./drivers/misc/hpilo.c
./drivers/mcb/mcb-pci.c
./drivers/ptp/ptp_pch.c
./drivers/ptp/ptp_ocp.c
./drivers/virtio/virtio_pci_common.c
./drivers/memstick/host/r592.c
./drivers/memstick/host/jmb38x_ms.c
./drivers/bcma/driver_pci_host.c
./samples/v4l/v4l2-pci-skeleton.c

>   PCI/sysfs: Don't depend on pci_dev.irq for IRQ entry
>
> Marc Zyngier (1):
>   PCI/MSI: remove msi_attrib.default_irq in msi_desc
>
>  Documentation/ABI/testing/sysfs-bus-pci | 10 ++++++++++
>  drivers/pci/msi.c                       | 12 +++++-------
>  drivers/pci/pci-sysfs.c                 | 23 ++++++++++++++++++++++-
>  include/linux/msi.h                     |  2 --
>  4 files changed, 37 insertions(+), 10 deletions(-)
>
> --
> 1.8.3.1
>

Thanks
barry
Bjorn Helgaas Oct. 18, 2021, 9:50 p.m. UTC | #2
On Wed, Aug 25, 2021 at 06:26:33PM +0800, Barry Song wrote:
> From: Barry Song <song.bao.hua@hisilicon.com>
> 
> 
> /sys/bus/pci/devices/.../irq has been there for many years but it has never
> been documented. This patchset is trying to clarify it.
> 
> -v3:
>   - Don't attempt to modify the current behaviour of IRQ ABI for MSI-X
>   - Make MSI IRQ ABI more explicit(return 1st IRQ of the IRQ vector)
>   - Add Marc's patch of removing default_irq from the previous comment to
>     the series.
>   Note patch 3/3 indirectly changed the code of pci_restore_msi_state(),
>   drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c is the only driver
>   calling this API. I would appreciate testing done from this driver's
>   maintainers.
> 
> -v2:
>   - split into two patches according to Bjorn's comments;
>   - Add Greg's Acked-by, thanks for reviewing!
>   https://lore.kernel.org/lkml/20210820223744.8439-1-21cnbao@gmail.com/
> 
> -v1:
>   https://lore.kernel.org/lkml/20210813122650.25764-1-21cnbao@gmail.com/#t
> 
> Barry Song (2):
>   Documentation: ABI: sysfs-bus-pci: Add description for IRQ entry
>   PCI/sysfs: Don't depend on pci_dev.irq for IRQ entry

I applied the first two (above) to pci/msi for v5.16, thanks!

As far as I can tell from the discussion so far, they should be safe
and should preserve all existing behavior.  The second patch should
remove the sysfs dependency on the PCI core to swap the INTx and first
MSI IRQ values in dev->irq.

Marc's patch below is certainly desirable but my understanding is that
it requires some driver updates first.

> Marc Zyngier (1):
>   PCI/MSI: remove msi_attrib.default_irq in msi_desc
> 
>  Documentation/ABI/testing/sysfs-bus-pci | 10 ++++++++++
>  drivers/pci/msi.c                       | 12 +++++-------
>  drivers/pci/pci-sysfs.c                 | 23 ++++++++++++++++++++++-
>  include/linux/msi.h                     |  2 --
>  4 files changed, 37 insertions(+), 10 deletions(-)
> 
> -- 
> 1.8.3.1
>
Marc Zyngier Oct. 19, 2021, 7:39 a.m. UTC | #3
On Mon, 18 Oct 2021 22:50:47 +0100,
Bjorn Helgaas <helgaas@kernel.org> wrote:
> 
> On Wed, Aug 25, 2021 at 06:26:33PM +0800, Barry Song wrote:
> > From: Barry Song <song.bao.hua@hisilicon.com>
> > 
> > 
> > /sys/bus/pci/devices/.../irq has been there for many years but it has never
> > been documented. This patchset is trying to clarify it.
> > 
> > -v3:
> >   - Don't attempt to modify the current behaviour of IRQ ABI for MSI-X
> >   - Make MSI IRQ ABI more explicit(return 1st IRQ of the IRQ vector)
> >   - Add Marc's patch of removing default_irq from the previous comment to
> >     the series.
> >   Note patch 3/3 indirectly changed the code of pci_restore_msi_state(),
> >   drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c is the only driver
> >   calling this API. I would appreciate testing done from this driver's
> >   maintainers.
> > 
> > -v2:
> >   - split into two patches according to Bjorn's comments;
> >   - Add Greg's Acked-by, thanks for reviewing!
> >   https://lore.kernel.org/lkml/20210820223744.8439-1-21cnbao@gmail.com/
> > 
> > -v1:
> >   https://lore.kernel.org/lkml/20210813122650.25764-1-21cnbao@gmail.com/#t
> > 
> > Barry Song (2):
> >   Documentation: ABI: sysfs-bus-pci: Add description for IRQ entry
> >   PCI/sysfs: Don't depend on pci_dev.irq for IRQ entry
> 
> I applied the first two (above) to pci/msi for v5.16, thanks!
> 
> As far as I can tell from the discussion so far, they should be safe
> and should preserve all existing behavior.  The second patch should
> remove the sysfs dependency on the PCI core to swap the INTx and first
> MSI IRQ values in dev->irq.
> 
> Marc's patch below is certainly desirable but my understanding is that
> it requires some driver updates first.

Indeed. It means that there will be an uphill battle to remove the
INTx/MSI confusion in a lot of drivers (Barry says about 700 of them,
and I can't say I'm surprised).

We can probably tackle that as a background task for the next few
releases (I need to relearn Coccinelle for the 27th time...).

Thanks,

	M.