diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index c43e7d22e180ad92143e763fab9f6598fe7209b5..01869b1782e4c460affcd7d655a340f620e9e7a8 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -85,6 +85,8 @@ static void msi_set_mask_bit(unsigned int irq, int flag)
 			mask_bits &= ~(1);
 			mask_bits |= flag;
 			pci_write_config_dword(entry->dev, pos, mask_bits);
+		} else {
+			msi_set_enable(entry->dev, !flag);
 		}
 		break;
 	case PCI_CAP_ID_MSIX: