/* This internal function does not flush PCI writes to the device. All users must ensure that they read from the device before either assuming that the device state is up to date, or returning out of this file. This saves a few milliseconds when initialising devices with lots of MSI-X interrupts.  */
static u32 __msix_mask_irq(struct msi_desc *desc, u32 flag)
/* This internal function does not flush PCI writes to the device. All users must ensure that they read from the device before either assuming that the device state is up to date, or returning out of this file. This saves a few milliseconds when initialising devices with lots of MSI-X interrupts.  */
static u32 __msix_mask_irq(struct msi_desc *desc, u32 flag)
{
	u32 mask_bits = desc->masked;
	unsigned offset = desc->msi_attrib.entry_nr * PCI_MSIX_ENTRY_SIZE +
						PCI_MSIX_ENTRY_VECTOR_CTRL;
	mask_bits &= ~1;
	mask_bits |= flag;
	writel(mask_bits, desc->mask_base + offset);
	return mask_bits;
}