Revert "PCI/MSI: Protect msi_desc::masked for multi-MSI"
This reverts commit ec25d05e18
which is
commit 77e89afc25f30abd56e76a809ee2884d7c1b63ce upstream.
It breaks the Android KABI and is not needed for any current Android
hardware devices, so can be safely reverted.
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: If4d9769c8cbfca6872c9a745fec8ab28bc39199e
This commit is contained in:
parent
5395faca89
commit
f5f155f4d6
@ -2386,7 +2386,6 @@ void device_initialize(struct device *dev)
|
|||||||
device_pm_init(dev);
|
device_pm_init(dev);
|
||||||
set_dev_node(dev, -1);
|
set_dev_node(dev, -1);
|
||||||
#ifdef CONFIG_GENERIC_MSI_IRQ
|
#ifdef CONFIG_GENERIC_MSI_IRQ
|
||||||
raw_spin_lock_init(&dev->msi_lock);
|
|
||||||
INIT_LIST_HEAD(&dev->msi_list);
|
INIT_LIST_HEAD(&dev->msi_list);
|
||||||
#endif
|
#endif
|
||||||
INIT_LIST_HEAD(&dev->links.consumers);
|
INIT_LIST_HEAD(&dev->links.consumers);
|
||||||
|
@ -170,25 +170,24 @@ static inline __attribute_const__ u32 msi_mask(unsigned x)
|
|||||||
* reliably as devices without an INTx disable bit will then generate a
|
* reliably as devices without an INTx disable bit will then generate a
|
||||||
* level IRQ which will never be cleared.
|
* level IRQ which will never be cleared.
|
||||||
*/
|
*/
|
||||||
void __pci_msi_desc_mask_irq(struct msi_desc *desc, u32 mask, u32 flag)
|
u32 __pci_msi_desc_mask_irq(struct msi_desc *desc, u32 mask, u32 flag)
|
||||||
{
|
{
|
||||||
raw_spinlock_t *lock = &desc->dev->msi_lock;
|
u32 mask_bits = desc->masked;
|
||||||
unsigned long flags;
|
|
||||||
|
|
||||||
if (pci_msi_ignore_mask || !desc->msi_attrib.maskbit)
|
if (pci_msi_ignore_mask || !desc->msi_attrib.maskbit)
|
||||||
return;
|
return 0;
|
||||||
|
|
||||||
raw_spin_lock_irqsave(lock, flags);
|
mask_bits &= ~mask;
|
||||||
desc->masked &= ~mask;
|
mask_bits |= flag;
|
||||||
desc->masked |= flag;
|
|
||||||
pci_write_config_dword(msi_desc_to_pci_dev(desc), desc->mask_pos,
|
pci_write_config_dword(msi_desc_to_pci_dev(desc), desc->mask_pos,
|
||||||
desc->masked);
|
mask_bits);
|
||||||
raw_spin_unlock_irqrestore(lock, flags);
|
|
||||||
|
return mask_bits;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag)
|
static void msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag)
|
||||||
{
|
{
|
||||||
__pci_msi_desc_mask_irq(desc, mask, flag);
|
desc->masked = __pci_msi_desc_mask_irq(desc, mask, flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __iomem *pci_msix_desc_addr(struct msi_desc *desc)
|
static void __iomem *pci_msix_desc_addr(struct msi_desc *desc)
|
||||||
|
@ -1282,7 +1282,6 @@ struct device {
|
|||||||
struct dev_pin_info *pins;
|
struct dev_pin_info *pins;
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_GENERIC_MSI_IRQ
|
#ifdef CONFIG_GENERIC_MSI_IRQ
|
||||||
raw_spinlock_t msi_lock;
|
|
||||||
struct list_head msi_list;
|
struct list_head msi_list;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -194,7 +194,7 @@ void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
|
|||||||
void __pci_write_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
|
void __pci_write_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
|
||||||
|
|
||||||
u32 __pci_msix_desc_mask_irq(struct msi_desc *desc, u32 flag);
|
u32 __pci_msix_desc_mask_irq(struct msi_desc *desc, u32 flag);
|
||||||
void __pci_msi_desc_mask_irq(struct msi_desc *desc, u32 mask, u32 flag);
|
u32 __pci_msi_desc_mask_irq(struct msi_desc *desc, u32 mask, u32 flag);
|
||||||
void pci_msi_mask_irq(struct irq_data *data);
|
void pci_msi_mask_irq(struct irq_data *data);
|
||||||
void pci_msi_unmask_irq(struct irq_data *data);
|
void pci_msi_unmask_irq(struct irq_data *data);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user