From d456f534c983eddc56536bfa98951df19ab04edf Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Mon, 22 Jun 2009 20:08:06 +0000 Subject: Enable MSI in the MSI capability registers any time that the first message in an MSI group is enabled, not just if the address/data pair are not initialized. Reported by: rnoland MFC after: 1 week --- sys/dev/pci/pci.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'sys/dev') diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c index 667072fe30a9..a473ad26898a 100644 --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -2883,8 +2883,10 @@ pci_setup_intr(device_t dev, device_t child, struct resource *irq, int flags, goto bad; dinfo->cfg.msi.msi_addr = addr; dinfo->cfg.msi.msi_data = data; - pci_enable_msi(child, addr, data); } + if (dinfo->cfg.msi.msi_handlers == 0) + pci_enable_msi(child, dinfo->cfg.msi.msi_addr, + dinfo->cfg.msi.msi_data); dinfo->cfg.msi.msi_handlers++; } else { KASSERT(dinfo->cfg.msix.msix_alloc > 0, -- cgit v1.3