aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/s2io-regs.h2
-rw-r--r--drivers/net/s2io.c55
-rw-r--r--drivers/net/s2io.h8
3 files changed, 29 insertions, 36 deletions
diff --git a/drivers/net/s2io-regs.h b/drivers/net/s2io-regs.h
index 33fb7f3b7041..4cb710bbe729 100644
--- a/drivers/net/s2io-regs.h
+++ b/drivers/net/s2io-regs.h
@@ -1,6 +1,6 @@
1/************************************************************************ 1/************************************************************************
2 * regs.h: A Linux PCI-X Ethernet driver for Neterion 10GbE Server NIC 2 * regs.h: A Linux PCI-X Ethernet driver for Neterion 10GbE Server NIC
3 * Copyright(c) 2002-2005 Neterion Inc. 3 * Copyright(c) 2002-2007 Neterion Inc.
4 4
5 * This software may be used and distributed according to the terms of 5 * This software may be used and distributed according to the terms of
6 * the GNU General Public License (GPL), incorporated herein by reference. 6 * the GNU General Public License (GPL), incorporated herein by reference.
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index 049060cb6a05..983f38313d87 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -1,6 +1,6 @@
1/************************************************************************ 1/************************************************************************
2 * s2io.c: A Linux PCI-X Ethernet driver for Neterion 10GbE Server NIC 2 * s2io.c: A Linux PCI-X Ethernet driver for Neterion 10GbE Server NIC
3 * Copyright(c) 2002-2005 Neterion Inc. 3 * Copyright(c) 2002-2007 Neterion Inc.
4 4
5 * This software may be used and distributed according to the terms of 5 * This software may be used and distributed according to the terms of
6 * the GNU General Public License (GPL), incorporated herein by reference. 6 * the GNU General Public License (GPL), incorporated herein by reference.
@@ -516,7 +516,7 @@ static int init_shared_mem(struct s2io_nic *nic)
516 mac_control->fifos[i].list_info = kmalloc(list_holder_size, 516 mac_control->fifos[i].list_info = kmalloc(list_holder_size,
517 GFP_KERNEL); 517 GFP_KERNEL);
518 if (!mac_control->fifos[i].list_info) { 518 if (!mac_control->fifos[i].list_info) {
519 DBG_PRINT(ERR_DBG, 519 DBG_PRINT(INFO_DBG,
520 "Malloc failed for list_info\n"); 520 "Malloc failed for list_info\n");
521 return -ENOMEM; 521 return -ENOMEM;
522 } 522 }
@@ -542,9 +542,9 @@ static int init_shared_mem(struct s2io_nic *nic)
542 tmp_v = pci_alloc_consistent(nic->pdev, 542 tmp_v = pci_alloc_consistent(nic->pdev,
543 PAGE_SIZE, &tmp_p); 543 PAGE_SIZE, &tmp_p);
544 if (!tmp_v) { 544 if (!tmp_v) {
545 DBG_PRINT(ERR_DBG, 545 DBG_PRINT(INFO_DBG,
546 "pci_alloc_consistent "); 546 "pci_alloc_consistent ");
547 DBG_PRINT(ERR_DBG, "failed for TxDL\n"); 547 DBG_PRINT(INFO_DBG, "failed for TxDL\n");
548 return -ENOMEM; 548 return -ENOMEM;
549 } 549 }
550 /* If we got a zero DMA address(can happen on 550 /* If we got a zero DMA address(can happen on
@@ -561,9 +561,9 @@ static int init_shared_mem(struct s2io_nic *nic)
561 tmp_v = pci_alloc_consistent(nic->pdev, 561 tmp_v = pci_alloc_consistent(nic->pdev,
562 PAGE_SIZE, &tmp_p); 562 PAGE_SIZE, &tmp_p);
563 if (!tmp_v) { 563 if (!tmp_v) {
564 DBG_PRINT(ERR_DBG, 564 DBG_PRINT(INFO_DBG,
565 "pci_alloc_consistent "); 565 "pci_alloc_consistent ");
566 DBG_PRINT(ERR_DBG, "failed for TxDL\n"); 566 DBG_PRINT(INFO_DBG, "failed for TxDL\n");
567 return -ENOMEM; 567 return -ENOMEM;
568 } 568 }
569 } 569 }
@@ -2187,7 +2187,7 @@ static int fill_rxd_3buf(struct s2io_nic *nic, struct RxD_t *rxdp, struct \
2187 /* skb_shinfo(skb)->frag_list will have L4 data payload */ 2187 /* skb_shinfo(skb)->frag_list will have L4 data payload */
2188 skb_shinfo(skb)->frag_list = dev_alloc_skb(dev->mtu + ALIGN_SIZE); 2188 skb_shinfo(skb)->frag_list = dev_alloc_skb(dev->mtu + ALIGN_SIZE);
2189 if (skb_shinfo(skb)->frag_list == NULL) { 2189 if (skb_shinfo(skb)->frag_list == NULL) {
2190 DBG_PRINT(ERR_DBG, "%s: dev_alloc_skb failed\n ", dev->name); 2190 DBG_PRINT(INFO_DBG, "%s: dev_alloc_skb failed\n ", dev->name);
2191 return -ENOMEM ; 2191 return -ENOMEM ;
2192 } 2192 }
2193 frag_list = skb_shinfo(skb)->frag_list; 2193 frag_list = skb_shinfo(skb)->frag_list;
@@ -2314,8 +2314,8 @@ static int fill_rx_buffers(struct s2io_nic *nic, int ring_no)
2314 /* allocate skb */ 2314 /* allocate skb */
2315 skb = dev_alloc_skb(size); 2315 skb = dev_alloc_skb(size);
2316 if(!skb) { 2316 if(!skb) {
2317 DBG_PRINT(ERR_DBG, "%s: Out of ", dev->name); 2317 DBG_PRINT(INFO_DBG, "%s: Out of ", dev->name);
2318 DBG_PRINT(ERR_DBG, "memory to allocate SKBs\n"); 2318 DBG_PRINT(INFO_DBG, "memory to allocate SKBs\n");
2319 if (first_rxdp) { 2319 if (first_rxdp) {
2320 wmb(); 2320 wmb();
2321 first_rxdp->Control_1 |= RXD_OWN_XENA; 2321 first_rxdp->Control_1 |= RXD_OWN_XENA;
@@ -2581,8 +2581,8 @@ static int s2io_poll(struct net_device *dev, int *budget)
2581 2581
2582 for (i = 0; i < config->rx_ring_num; i++) { 2582 for (i = 0; i < config->rx_ring_num; i++) {
2583 if (fill_rx_buffers(nic, i) == -ENOMEM) { 2583 if (fill_rx_buffers(nic, i) == -ENOMEM) {
2584 DBG_PRINT(ERR_DBG, "%s:Out of memory", dev->name); 2584 DBG_PRINT(INFO_DBG, "%s:Out of memory", dev->name);
2585 DBG_PRINT(ERR_DBG, " in Rx Poll!!\n"); 2585 DBG_PRINT(INFO_DBG, " in Rx Poll!!\n");
2586 break; 2586 break;
2587 } 2587 }
2588 } 2588 }
@@ -2598,8 +2598,8 @@ no_rx:
2598 2598
2599 for (i = 0; i < config->rx_ring_num; i++) { 2599 for (i = 0; i < config->rx_ring_num; i++) {
2600 if (fill_rx_buffers(nic, i) == -ENOMEM) { 2600 if (fill_rx_buffers(nic, i) == -ENOMEM) {
2601 DBG_PRINT(ERR_DBG, "%s:Out of memory", dev->name); 2601 DBG_PRINT(INFO_DBG, "%s:Out of memory", dev->name);
2602 DBG_PRINT(ERR_DBG, " in Rx Poll!!\n"); 2602 DBG_PRINT(INFO_DBG, " in Rx Poll!!\n");
2603 break; 2603 break;
2604 } 2604 }
2605 } 2605 }
@@ -2648,8 +2648,8 @@ static void s2io_netpoll(struct net_device *dev)
2648 2648
2649 for (i = 0; i < config->rx_ring_num; i++) { 2649 for (i = 0; i < config->rx_ring_num; i++) {
2650 if (fill_rx_buffers(nic, i) == -ENOMEM) { 2650 if (fill_rx_buffers(nic, i) == -ENOMEM) {
2651 DBG_PRINT(ERR_DBG, "%s:Out of memory", dev->name); 2651 DBG_PRINT(INFO_DBG, "%s:Out of memory", dev->name);
2652 DBG_PRINT(ERR_DBG, " in Rx Netpoll!!\n"); 2652 DBG_PRINT(INFO_DBG, " in Rx Netpoll!!\n");
2653 break; 2653 break;
2654 } 2654 }
2655 } 2655 }
@@ -3673,7 +3673,7 @@ static int s2io_enable_msi_x(struct s2io_nic *nic)
3673 nic->entries = kmalloc(MAX_REQUESTED_MSI_X * sizeof(struct msix_entry), 3673 nic->entries = kmalloc(MAX_REQUESTED_MSI_X * sizeof(struct msix_entry),
3674 GFP_KERNEL); 3674 GFP_KERNEL);
3675 if (nic->entries == NULL) { 3675 if (nic->entries == NULL) {
3676 DBG_PRINT(ERR_DBG, "%s: Memory allocation failed\n", __FUNCTION__); 3676 DBG_PRINT(INFO_DBG, "%s: Memory allocation failed\n", __FUNCTION__);
3677 return -ENOMEM; 3677 return -ENOMEM;
3678 } 3678 }
3679 memset(nic->entries, 0, MAX_REQUESTED_MSI_X * sizeof(struct msix_entry)); 3679 memset(nic->entries, 0, MAX_REQUESTED_MSI_X * sizeof(struct msix_entry));
@@ -3682,7 +3682,7 @@ static int s2io_enable_msi_x(struct s2io_nic *nic)
3682 kmalloc(MAX_REQUESTED_MSI_X * sizeof(struct s2io_msix_entry), 3682 kmalloc(MAX_REQUESTED_MSI_X * sizeof(struct s2io_msix_entry),
3683 GFP_KERNEL); 3683 GFP_KERNEL);
3684 if (nic->s2io_entries == NULL) { 3684 if (nic->s2io_entries == NULL) {
3685 DBG_PRINT(ERR_DBG, "%s: Memory allocation failed\n", __FUNCTION__); 3685 DBG_PRINT(INFO_DBG, "%s: Memory allocation failed\n", __FUNCTION__);
3686 kfree(nic->entries); 3686 kfree(nic->entries);
3687 return -ENOMEM; 3687 return -ENOMEM;
3688 } 3688 }
@@ -4033,7 +4033,7 @@ static int s2io_chk_rx_buffers(struct s2io_nic *sp, int rng_n)
4033 DBG_PRINT(INTR_DBG, "%s: Rx BD hit ", __FUNCTION__); 4033 DBG_PRINT(INTR_DBG, "%s: Rx BD hit ", __FUNCTION__);
4034 DBG_PRINT(INTR_DBG, "PANIC levels\n"); 4034 DBG_PRINT(INTR_DBG, "PANIC levels\n");
4035 if ((ret = fill_rx_buffers(sp, rng_n)) == -ENOMEM) { 4035 if ((ret = fill_rx_buffers(sp, rng_n)) == -ENOMEM) {
4036 DBG_PRINT(ERR_DBG, "Out of memory in %s", 4036 DBG_PRINT(INFO_DBG, "Out of memory in %s",
4037 __FUNCTION__); 4037 __FUNCTION__);
4038 clear_bit(0, (&sp->tasklet_status)); 4038 clear_bit(0, (&sp->tasklet_status));
4039 return -1; 4039 return -1;
@@ -4043,8 +4043,8 @@ static int s2io_chk_rx_buffers(struct s2io_nic *sp, int rng_n)
4043 tasklet_schedule(&sp->task); 4043 tasklet_schedule(&sp->task);
4044 4044
4045 } else if (fill_rx_buffers(sp, rng_n) == -ENOMEM) { 4045 } else if (fill_rx_buffers(sp, rng_n) == -ENOMEM) {
4046 DBG_PRINT(ERR_DBG, "%s:Out of memory", sp->dev->name); 4046 DBG_PRINT(INFO_DBG, "%s:Out of memory", sp->dev->name);
4047 DBG_PRINT(ERR_DBG, " in Rx Intr!!\n"); 4047 DBG_PRINT(INFO_DBG, " in Rx Intr!!\n");
4048 } 4048 }
4049 return 0; 4049 return 0;
4050} 4050}
@@ -5961,12 +5961,12 @@ static void s2io_tasklet(unsigned long dev_addr)
5961 for (i = 0; i < config->rx_ring_num; i++) { 5961 for (i = 0; i < config->rx_ring_num; i++) {
5962 ret = fill_rx_buffers(sp, i); 5962 ret = fill_rx_buffers(sp, i);
5963 if (ret == -ENOMEM) { 5963 if (ret == -ENOMEM) {
5964 DBG_PRINT(ERR_DBG, "%s: Out of ", 5964 DBG_PRINT(INFO_DBG, "%s: Out of ",
5965 dev->name); 5965 dev->name);
5966 DBG_PRINT(ERR_DBG, "memory in tasklet\n"); 5966 DBG_PRINT(ERR_DBG, "memory in tasklet\n");
5967 break; 5967 break;
5968 } else if (ret == -EFILL) { 5968 } else if (ret == -EFILL) {
5969 DBG_PRINT(ERR_DBG, 5969 DBG_PRINT(INFO_DBG,
5970 "%s: Rx Ring %d is full\n", 5970 "%s: Rx Ring %d is full\n",
5971 dev->name, i); 5971 dev->name, i);
5972 break; 5972 break;
@@ -6077,8 +6077,8 @@ static int set_rxd_buffer_pointer(struct s2io_nic *sp, struct RxD_t *rxdp,
6077 } else { 6077 } else {
6078 *skb = dev_alloc_skb(size); 6078 *skb = dev_alloc_skb(size);
6079 if (!(*skb)) { 6079 if (!(*skb)) {
6080 DBG_PRINT(ERR_DBG, "%s: Out of ", dev->name); 6080 DBG_PRINT(INFO_DBG, "%s: Out of ", dev->name);
6081 DBG_PRINT(ERR_DBG, "memory to allocate SKBs\n"); 6081 DBG_PRINT(INFO_DBG, "memory to allocate SKBs\n");
6082 return -ENOMEM ; 6082 return -ENOMEM ;
6083 } 6083 }
6084 /* storing the mapped addr in a temp variable 6084 /* storing the mapped addr in a temp variable
@@ -6100,7 +6100,7 @@ static int set_rxd_buffer_pointer(struct s2io_nic *sp, struct RxD_t *rxdp,
6100 } else { 6100 } else {
6101 *skb = dev_alloc_skb(size); 6101 *skb = dev_alloc_skb(size);
6102 if (!(*skb)) { 6102 if (!(*skb)) {
6103 DBG_PRINT(ERR_DBG, "%s: dev_alloc_skb failed\n", 6103 DBG_PRINT(INFO_DBG, "%s: dev_alloc_skb failed\n",
6104 dev->name); 6104 dev->name);
6105 return -ENOMEM; 6105 return -ENOMEM;
6106 } 6106 }
@@ -6127,7 +6127,7 @@ static int set_rxd_buffer_pointer(struct s2io_nic *sp, struct RxD_t *rxdp,
6127 } else { 6127 } else {
6128 *skb = dev_alloc_skb(size); 6128 *skb = dev_alloc_skb(size);
6129 if (!(*skb)) { 6129 if (!(*skb)) {
6130 DBG_PRINT(ERR_DBG, "%s: dev_alloc_skb failed\n", 6130 DBG_PRINT(INFO_DBG, "%s: dev_alloc_skb failed\n",
6131 dev->name); 6131 dev->name);
6132 return -ENOMEM; 6132 return -ENOMEM;
6133 } 6133 }
@@ -6628,7 +6628,6 @@ static int rx_osm_handler(struct ring_info *ring_data, struct RxD_t * rxdp)
6628 6628
6629 /* Updating statistics */ 6629 /* Updating statistics */
6630 rxdp->Host_Control = 0; 6630 rxdp->Host_Control = 0;
6631 sp->rx_pkt_count++;
6632 sp->stats.rx_packets++; 6631 sp->stats.rx_packets++;
6633 if (sp->rxd_mode == RXD_MODE_1) { 6632 if (sp->rxd_mode == RXD_MODE_1) {
6634 int len = RXD_GET_BUFFER0_SIZE_1(rxdp->Control_2); 6633 int len = RXD_GET_BUFFER0_SIZE_1(rxdp->Control_2);
@@ -7264,7 +7263,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
7264 goto register_failed; 7263 goto register_failed;
7265 } 7264 }
7266 s2io_vpd_read(sp); 7265 s2io_vpd_read(sp);
7267 DBG_PRINT(ERR_DBG, "Copyright(c) 2002-2005 Neterion Inc.\n"); 7266 DBG_PRINT(ERR_DBG, "Copyright(c) 2002-2007 Neterion Inc.\n");
7268 DBG_PRINT(ERR_DBG, "%s: Neterion %s (rev %d)\n",dev->name, 7267 DBG_PRINT(ERR_DBG, "%s: Neterion %s (rev %d)\n",dev->name,
7269 sp->product_name, get_xena_rev_id(sp->pdev)); 7268 sp->product_name, get_xena_rev_id(sp->pdev));
7270 DBG_PRINT(ERR_DBG, "%s: Driver version %s\n", dev->name, 7269 DBG_PRINT(ERR_DBG, "%s: Driver version %s\n", dev->name,
diff --git a/drivers/net/s2io.h b/drivers/net/s2io.h
index 803137ca4b6c..a656d18b33df 100644
--- a/drivers/net/s2io.h
+++ b/drivers/net/s2io.h
@@ -1,6 +1,6 @@
1/************************************************************************ 1/************************************************************************
2 * s2io.h: A Linux PCI-X Ethernet driver for Neterion 10GbE Server NIC 2 * s2io.h: A Linux PCI-X Ethernet driver for Neterion 10GbE Server NIC
3 * Copyright(c) 2002-2005 Neterion Inc. 3 * Copyright(c) 2002-2007 Neterion Inc.
4 4
5 * This software may be used and distributed according to the terms of 5 * This software may be used and distributed according to the terms of
6 * the GNU General Public License (GPL), incorporated herein by reference. 6 * the GNU General Public License (GPL), incorporated herein by reference.
@@ -760,7 +760,6 @@ struct s2io_nic {
760#define MAX_SUPPORTED_MULTICASTS MAX_MAC_SUPPORTED 760#define MAX_SUPPORTED_MULTICASTS MAX_MAC_SUPPORTED
761 761
762 struct mac_addr def_mac_addr[MAX_MAC_SUPPORTED]; 762 struct mac_addr def_mac_addr[MAX_MAC_SUPPORTED];
763 struct mac_addr pre_mac_addr[MAX_MAC_SUPPORTED];
764 763
765 struct net_device_stats stats; 764 struct net_device_stats stats;
766 int high_dma_flag; 765 int high_dma_flag;
@@ -794,11 +793,6 @@ struct s2io_nic {
794 u16 all_multi_pos; 793 u16 all_multi_pos;
795 u16 promisc_flg; 794 u16 promisc_flg;
796 795
797 u16 tx_pkt_count;
798 u16 rx_pkt_count;
799 u16 tx_err_count;
800 u16 rx_err_count;
801
802 /* Id timer, used to blink NIC to physically identify NIC. */ 796 /* Id timer, used to blink NIC to physically identify NIC. */
803 struct timer_list id_timer; 797 struct timer_list id_timer;
804 798