diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c index 7c6a1604c13..5120db62a74 100644 --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -1649,15 +1649,11 @@ pci_mask_msix(device_t dev, u_int index) { struct pci_devinfo *dinfo = device_get_ivars(dev); struct pcicfg_msix *msix = &dinfo->cfg.msix; - uint32_t offset, val; + uint32_t offset; KASSERT(msix->msix_msgnum > index, ("bogus index")); offset = msix->msix_table_offset + index * 16 + 12; - val = bus_read_4(msix->msix_table_res, offset); - if (!(val & PCIM_MSIX_VCTRL_MASK)) { - val |= PCIM_MSIX_VCTRL_MASK; - bus_write_4(msix->msix_table_res, offset, val); - } + bus_write_4(msix->msix_table_res, offset, PCIM_MSIX_VCTRL_MASK); } void @@ -1665,15 +1661,11 @@ pci_unmask_msix(device_t dev, u_int index) { struct pci_devinfo *dinfo = device_get_ivars(dev); struct pcicfg_msix *msix = &dinfo->cfg.msix; - uint32_t offset, val; + uint32_t offset; KASSERT(msix->msix_table_len > index, ("bogus index")); offset = msix->msix_table_offset + index * 16 + 12; - val = bus_read_4(msix->msix_table_res, offset); - if (val & PCIM_MSIX_VCTRL_MASK) { - val &= ~PCIM_MSIX_VCTRL_MASK; - bus_write_4(msix->msix_table_res, offset, val); - } + bus_write_4(msix->msix_table_res, offset, 0); } int