Re: [PATCH] PCI/MSI: bugfix/utilize for msi_capability_init()

From: Hidetoshi Seto
Date: Thu Dec 25 2008 - 01:18:21 EST


Jike Song wrote:
> On Wed, Dec 24, 2008 at 4:27 PM, Hidetoshi Seto
> <seto.hidetoshi@xxxxxxxxxxxxxx> wrote:
>> This patch fix a following bug and does a cleanup.
>>
>> bug:
>> commit 5993760f7fc75b77e4701f1e56dc84c0d6cf18d5
>> had a wrong change (since is_64 is boolean[0|1]):
>>
>> - pci_write_config_dword(dev,
>> - msi_mask_bits_reg(pos, is_64bit_address(control)),
>> - maskbits);
>> + pci_write_config_dword(dev, entry->msi_attrib.is_64, maskbits);
>>
> Yes, really a nasty bug. I'm feeling guilty...
> Should this fix hit 2.6.28 release? I CCed Jesse for his point.

Unfortunately we failed to take this fix into Santa's bag...

Note that this bug affects mask condition after calling pci_enable_msi()
for devices with MSI capability with (optional) per-vector masking support.
Devices with MSI-X or MSI without masking support are safe.
Once unmask/mask_msi_irq() is called, the condition should be fixed.

And the wrong pci_write_config_dword() will have no effects because
target registers (fields in header, such as Vendor ID) are read-only.

Thanks,
H.Seto

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/