[PATCH v3 2/2] PCI/MSI: Implement irq_mask_noflush() for MSI-X

Thomas Gleixner tglx at kernel.org
Fri Nov 6 12:53:06 PST 2026


On Fri, Nov 06 2026 at 09:34, Keith Busch wrote:
> -static inline void pci_msix_mask(struct msi_desc *desc)
> +/* Posted write only: the device may still send an interrupt after return */
> +static inline void pci_msix_mask_noflush(struct msi_desc *desc)
>  {
>  	desc->pci.msix_ctrl |= PCI_MSIX_ENTRY_CTRL_MASKBIT;
> +	pci_msix_write_vector_ctrl(desc, desc->pci.msix_ctrl);
> +}
> +
> +static inline void pci_msix_mask(struct msi_desc *desc)
> +{
> +	pci_msix_mask_noflush(desc);

That's before the offline check now, which looks more than wrong.

>  	if (pci_channel_offline(msi_desc_to_pci_dev(desc)))
>  		return;
>  
> -	pci_msix_write_vector_ctrl(desc, desc->pci.msix_ctrl);
>  	/* Flush write to device */
>  	readl(desc->pci.mask_base);
>  }



More information about the Linux-nvme mailing list