diff options
Diffstat (limited to 'drivers/net/netxen/netxen_nic_init.c')
-rw-r--r-- | drivers/net/netxen/netxen_nic_init.c | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/drivers/net/netxen/netxen_nic_init.c b/drivers/net/netxen/netxen_nic_init.c index 01ab31b34a85..5bba675d0504 100644 --- a/drivers/net/netxen/netxen_nic_init.c +++ b/drivers/net/netxen/netxen_nic_init.c | |||
@@ -364,6 +364,11 @@ void netxen_initialize_adapter_ops(struct netxen_adapter *adapter) | |||
364 | default: | 364 | default: |
365 | break; | 365 | break; |
366 | } | 366 | } |
367 | |||
368 | if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { | ||
369 | adapter->set_mtu = nx_fw_cmd_set_mtu; | ||
370 | adapter->set_promisc = netxen_p3_nic_set_promisc; | ||
371 | } | ||
367 | } | 372 | } |
368 | 373 | ||
369 | /* | 374 | /* |
@@ -1074,10 +1079,12 @@ int netxen_initialize_adapter_offload(struct netxen_adapter *adapter) | |||
1074 | 1079 | ||
1075 | void netxen_free_adapter_offload(struct netxen_adapter *adapter) | 1080 | void netxen_free_adapter_offload(struct netxen_adapter *adapter) |
1076 | { | 1081 | { |
1077 | int i; | 1082 | int i = 100; |
1083 | |||
1084 | if (!adapter->dummy_dma.addr) | ||
1085 | return; | ||
1078 | 1086 | ||
1079 | if (adapter->dummy_dma.addr) { | 1087 | if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) { |
1080 | i = 100; | ||
1081 | do { | 1088 | do { |
1082 | if (dma_watchdog_shutdown_request(adapter) == 1) | 1089 | if (dma_watchdog_shutdown_request(adapter) == 1) |
1083 | break; | 1090 | break; |
@@ -1085,17 +1092,17 @@ void netxen_free_adapter_offload(struct netxen_adapter *adapter) | |||
1085 | if (dma_watchdog_shutdown_poll_result(adapter) == 1) | 1092 | if (dma_watchdog_shutdown_poll_result(adapter) == 1) |
1086 | break; | 1093 | break; |
1087 | } while (--i); | 1094 | } while (--i); |
1095 | } | ||
1088 | 1096 | ||
1089 | if (i) { | 1097 | if (i) { |
1090 | pci_free_consistent(adapter->pdev, | 1098 | pci_free_consistent(adapter->pdev, |
1091 | NETXEN_HOST_DUMMY_DMA_SIZE, | 1099 | NETXEN_HOST_DUMMY_DMA_SIZE, |
1092 | adapter->dummy_dma.addr, | 1100 | adapter->dummy_dma.addr, |
1093 | adapter->dummy_dma.phys_addr); | 1101 | adapter->dummy_dma.phys_addr); |
1094 | adapter->dummy_dma.addr = NULL; | 1102 | adapter->dummy_dma.addr = NULL; |
1095 | } else { | 1103 | } else { |
1096 | printk(KERN_ERR "%s: dma_watchdog_shutdown failed\n", | 1104 | printk(KERN_ERR "%s: dma_watchdog_shutdown failed\n", |
1097 | adapter->netdev->name); | 1105 | adapter->netdev->name); |
1098 | } | ||
1099 | } | 1106 | } |
1100 | } | 1107 | } |
1101 | 1108 | ||