val64 = RTI_DATA2_MEM_RX_UFC_A(0x1) |
                    RTI_DATA2_MEM_RX_UFC_B(0x2) ;
-               if (nic->intr_type == MSI_X)
+               if (nic->config.intr_type == MSI_X)
                    val64 |= (RTI_DATA2_MEM_RX_UFC_C(0x20) | \
                                RTI_DATA2_MEM_RX_UFC_D(0x40));
                else
 
 static int s2io_link_fault_indication(struct s2io_nic *nic)
 {
-       if (nic->intr_type != INTA)
+       if (nic->config.intr_type != INTA)
                return MAC_RMAC_ERR_TIMER;
        if (nic->device_type == XFRAME_II_DEVICE)
                return LINK_UP_DOWN_INTERRUPT;
                 SWAPPER_CTRL_RXF_W_FE |
                 SWAPPER_CTRL_XMSI_FE |
                 SWAPPER_CTRL_STATS_FE | SWAPPER_CTRL_STATS_SE);
-       if (sp->intr_type == INTA)
+       if (sp->config.intr_type == INTA)
                val64 |= SWAPPER_CTRL_XMSI_SE;
        writeq(val64, &bar0->swapper_ctrl);
 #else
                 SWAPPER_CTRL_RXF_W_FE |
                 SWAPPER_CTRL_XMSI_FE |
                 SWAPPER_CTRL_STATS_FE | SWAPPER_CTRL_STATS_SE);
-       if (sp->intr_type == INTA)
+       if (sp->config.intr_type == INTA)
                val64 |= SWAPPER_CTRL_XMSI_SE;
        writeq(val64, &bar0->swapper_ctrl);
 #endif
 
        napi_enable(&sp->napi);
 
-       if (sp->intr_type == MSI_X) {
+       if (sp->config.intr_type == MSI_X) {
                int ret = s2io_enable_msi_x(sp);
 
                if (!ret) {
                        DBG_PRINT(ERR_DBG,
                          "%s: MSI-X requested but failed to enable\n",
                          dev->name);
-                       sp->intr_type = INTA;
+                       sp->config.intr_type = INTA;
                }
        }
 
        /* NAPI doesn't work well with MSI(X) */
-        if (sp->intr_type != INTA) {
+        if (sp->config.intr_type != INTA) {
                if(sp->config.napi)
                        sp->config.napi = 0;
        }
 
 hw_init_failed:
        napi_disable(&sp->napi);
-       if (sp->intr_type == MSI_X) {
+       if (sp->config.intr_type == MSI_X) {
                if (sp->entries) {
                        kfree(sp->entries);
                        sp->mac_control.stats_info->sw_stat.mem_freed 
        struct net_device *dev = sp->dev;
        int err = 0;
 
-       if (sp->intr_type == MSI_X)
+       if (sp->config.intr_type == MSI_X)
                ret = s2io_enable_msi_x(sp);
        if (ret) {
                DBG_PRINT(ERR_DBG, "%s: Defaulting to INTA\n", dev->name);
-               sp->intr_type = INTA;
+               sp->config.intr_type = INTA;
        }
 
        /* Store the values of the MSIX table in the struct s2io_nic structure */
        store_xmsi_data(sp);
 
        /* After proper initialization of H/W, register ISR */
-       if (sp->intr_type == MSI_X) {
+       if (sp->config.intr_type == MSI_X) {
                int i, msix_tx_cnt=0,msix_rx_cnt=0;
 
                for (i=1; (sp->s2io_entries[i].in_use == MSIX_FLG); i++) {
                printk("MSI-X-TX %d entries enabled\n",msix_tx_cnt);
                printk("MSI-X-RX %d entries enabled\n",msix_rx_cnt);
        }
-       if (sp->intr_type == INTA) {
+       if (sp->config.intr_type == INTA) {
                err = request_irq((int) sp->pdev->irq, s2io_isr, IRQF_SHARED,
                                sp->name, dev);
                if (err) {
        struct net_device *dev = sp->dev;
        struct swStat *stats = &sp->mac_control.stats_info->sw_stat;
 
-       if (sp->intr_type == MSI_X) {
+       if (sp->config.intr_type == MSI_X) {
                int i;
                u16 msi_control;
 
 
        /* Add interrupt service routine */
        if (s2io_add_isr(sp) != 0) {
-               if (sp->intr_type == MSI_X)
+               if (sp->config.intr_type == MSI_X)
                        s2io_rem_isr(sp);
                s2io_reset(sp);
                free_rx_buffers(sp);
 
        /*  Enable select interrupts */
        en_dis_err_alarms(sp, ENA_ALL_INTRS, ENABLE_INTRS);
-       if (sp->intr_type != INTA)
+       if (sp->config.intr_type != INTA)
                en_dis_able_nic_intrs(sp, ENA_ALL_INTRS, DISABLE_INTRS);
        else {
                interruptible = TX_TRAFFIC_INTR | RX_TRAFFIC_INTR;
        if (rx_ring_mode == 2)
                sp->rxd_mode = RXD_MODE_3B;
 
-       sp->intr_type = dev_intr_type;
+       sp->config.intr_type = dev_intr_type;
 
        if ((pdev->device == PCI_DEVICE_ID_HERC_WIN) ||
                (pdev->device == PCI_DEVICE_ID_HERC_UNI))
 
        if (napi)
                DBG_PRINT(ERR_DBG, "%s: NAPI enabled\n", dev->name);
-       switch(sp->intr_type) {
+       switch(sp->config.intr_type) {
                case INTA:
                    DBG_PRINT(ERR_DBG, "%s: Interrupt type INTA\n", dev->name);
                    break;