Re: [PATCH 4/25] msi: Simplify msi enable and disable.

From: Eric W. Biederman
Date: Tue Jun 20 2006 - 21:19:13 EST


Rajesh Shah <rajesh.shah@xxxxxxxxx> writes:

> On Tue, Jun 20, 2006 at 04:28:17PM -0600, Eric W. Biederman wrote:
>>
>> @@ -937,27 +936,8 @@ int pci_enable_msi(struct pci_dev* dev)
>> if (!pos)
>> return -EINVAL;
>>
>> - if (!msi_lookup_vector(dev, PCI_CAP_ID_MSI)) {
>> - /* Lookup Sucess */
>> - unsigned long flags;
>> + BUG_ON(!msi_lookup_vector(dev, PCI_CAP_ID_MSI));
>>
> A driver that calls pci_enable_msi() while MSI is already enabled
> will hit this BUG_ON. This is different from the behavior of
> some other pci functions like pci_enable_device(), which
> silently return success if the requested operation is a nop.
> It's pretty easy to do the same here too (ditto for MSI-X).

With MSI-X we can't be a NOOP so it is clearly a bug.

With MSI it might happen, and I don't have a problem if it becomes
a noop. At the same time I'm not convinced it isn't a bug.

All I really care about is that we don't try and do the impossible and
enable the msi from a half initialized software state like we were doing
before.

That was really ugly and impossible to get right.

Eric
-
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/