forked from luck/tmp_suning_uos_patched
PCI: Set ->mask_pos correctly
The "+" operation has higher precedence than "?:" and ->msi_cap is
always non-zero here so the original statement is equivalent to:
entry->mask_pos = PCI_MSI_MASK_64;
Which wasn't the intent.
[bhelgaas: my fault from 78b5a310ce
]
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
This commit is contained in:
parent
ab86e974f0
commit
e5f66eafe5
|
@ -563,8 +563,10 @@ static int msi_capability_init(struct pci_dev *dev, int nvec)
|
|||
entry->msi_attrib.default_irq = dev->irq; /* Save IOAPIC IRQ */
|
||||
entry->msi_attrib.pos = dev->msi_cap;
|
||||
|
||||
entry->mask_pos = dev->msi_cap + (control & PCI_MSI_FLAGS_64BIT) ?
|
||||
PCI_MSI_MASK_64 : PCI_MSI_MASK_32;
|
||||
if (control & PCI_MSI_FLAGS_64BIT)
|
||||
entry->mask_pos = dev->msi_cap + PCI_MSI_MASK_64;
|
||||
else
|
||||
entry->mask_pos = dev->msi_cap + PCI_MSI_MASK_32;
|
||||
/* All MSIs are unmasked by default, Mask them all */
|
||||
if (entry->msi_attrib.maskbit)
|
||||
pci_read_config_dword(dev, entry->mask_pos, &entry->masked);
|
||||
|
|
Loading…
Reference in New Issue
Block a user