|
@@ -1249,6 +1249,28 @@ netxen_setup_netdev(struct netxen_adapter *adapter,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+#ifdef CONFIG_PCIEAER
|
|
|
+static void netxen_mask_aer_correctable(struct netxen_adapter *adapter)
|
|
|
+{
|
|
|
+ struct pci_dev *pdev = adapter->pdev;
|
|
|
+ struct pci_dev *root = pdev->bus->self;
|
|
|
+ u32 aer_pos;
|
|
|
+
|
|
|
+ if (adapter->ahw.board_type != NETXEN_BRDTYPE_P3_4_GB_MM &&
|
|
|
+ adapter->ahw.board_type != NETXEN_BRDTYPE_P3_10G_TP)
|
|
|
+ return;
|
|
|
+
|
|
|
+ if (root->pcie_type != PCI_EXP_TYPE_ROOT_PORT)
|
|
|
+ return;
|
|
|
+
|
|
|
+ aer_pos = pci_find_ext_capability(root, PCI_EXT_CAP_ID_ERR);
|
|
|
+ if (!aer_pos)
|
|
|
+ return;
|
|
|
+
|
|
|
+ pci_write_config_dword(root, aer_pos + PCI_ERR_COR_MASK, 0xffff);
|
|
|
+}
|
|
|
+#endif
|
|
|
+
|
|
|
static int __devinit
|
|
|
netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
|
{
|
|
@@ -1317,6 +1339,10 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
|
goto err_out_iounmap;
|
|
|
}
|
|
|
|
|
|
+#ifdef CONFIG_PCIEAER
|
|
|
+ netxen_mask_aer_correctable(adapter);
|
|
|
+#endif
|
|
|
+
|
|
|
/* Mezz cards have PCI function 0,2,3 enabled */
|
|
|
switch (adapter->ahw.board_type) {
|
|
|
case NETXEN_BRDTYPE_P2_SB31_10G_IMEZ:
|