if (netxen_rom_fast_read(adapter, offset, &board_type))
                return -EIO;
 
-       adapter->ahw.board_type = board_type;
-
        if (board_type == NETXEN_BRDTYPE_P3_4_GB_MM) {
                u32 gpio = NXRD32(adapter, NETXEN_ROMUSB_GLB_PAD_GPIO_I);
                if ((gpio & 0x8000) == 0)
                        board_type = NETXEN_BRDTYPE_P3_10G_TP;
        }
 
+       adapter->ahw.board_type = board_type;
+
        switch (board_type) {
        case NETXEN_BRDTYPE_P2_SB35_4G:
                adapter->ahw.port_type = NETXEN_NIC_GBE;
 
        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)
 {
                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: