diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/s2io-regs.h | 6 | ||||
-rw-r--r-- | drivers/net/s2io.c | 505 | ||||
-rw-r--r-- | drivers/net/s2io.h | 202 |
3 files changed, 362 insertions, 351 deletions
diff --git a/drivers/net/s2io-regs.h b/drivers/net/s2io-regs.h index 518e96d75371..0e345cbc2bf9 100644 --- a/drivers/net/s2io-regs.h +++ b/drivers/net/s2io-regs.h | |||
@@ -15,7 +15,7 @@ | |||
15 | 15 | ||
16 | #define TBD 0 | 16 | #define TBD 0 |
17 | 17 | ||
18 | typedef struct _XENA_dev_config { | 18 | struct XENA_dev_config { |
19 | /* Convention: mHAL_XXX is mask, vHAL_XXX is value */ | 19 | /* Convention: mHAL_XXX is mask, vHAL_XXX is value */ |
20 | 20 | ||
21 | /* General Control-Status Registers */ | 21 | /* General Control-Status Registers */ |
@@ -852,9 +852,9 @@ typedef struct _XENA_dev_config { | |||
852 | #define SPI_CONTROL_DONE BIT(6) | 852 | #define SPI_CONTROL_DONE BIT(6) |
853 | u64 spi_data; | 853 | u64 spi_data; |
854 | #define SPI_DATA_WRITE(data,len) vBIT(data,0,len) | 854 | #define SPI_DATA_WRITE(data,len) vBIT(data,0,len) |
855 | } XENA_dev_config_t; | 855 | }; |
856 | 856 | ||
857 | #define XENA_REG_SPACE sizeof(XENA_dev_config_t) | 857 | #define XENA_REG_SPACE sizeof(struct XENA_dev_config) |
858 | #define XENA_EEPROM_SPACE (0x01 << 11) | 858 | #define XENA_EEPROM_SPACE (0x01 << 11) |
859 | 859 | ||
860 | #endif /* _REGS_H */ | 860 | #endif /* _REGS_H */ |
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c index b4c4cf467dc6..639fbc0f16f3 100644 --- a/drivers/net/s2io.c +++ b/drivers/net/s2io.c | |||
@@ -77,7 +77,7 @@ | |||
77 | #include "s2io.h" | 77 | #include "s2io.h" |
78 | #include "s2io-regs.h" | 78 | #include "s2io-regs.h" |
79 | 79 | ||
80 | #define DRV_VERSION "2.0.15.2" | 80 | #define DRV_VERSION "2.0.16.1" |
81 | 81 | ||
82 | /* S2io Driver name & version. */ | 82 | /* S2io Driver name & version. */ |
83 | static char s2io_driver_name[] = "Neterion"; | 83 | static char s2io_driver_name[] = "Neterion"; |
@@ -86,7 +86,7 @@ static char s2io_driver_version[] = DRV_VERSION; | |||
86 | static int rxd_size[4] = {32,48,48,64}; | 86 | static int rxd_size[4] = {32,48,48,64}; |
87 | static int rxd_count[4] = {127,85,85,63}; | 87 | static int rxd_count[4] = {127,85,85,63}; |
88 | 88 | ||
89 | static inline int RXD_IS_UP2DT(RxD_t *rxdp) | 89 | static inline int RXD_IS_UP2DT(struct RxD_t *rxdp) |
90 | { | 90 | { |
91 | int ret; | 91 | int ret; |
92 | 92 | ||
@@ -111,9 +111,9 @@ static inline int RXD_IS_UP2DT(RxD_t *rxdp) | |||
111 | #define TASKLET_IN_USE test_and_set_bit(0, (&sp->tasklet_status)) | 111 | #define TASKLET_IN_USE test_and_set_bit(0, (&sp->tasklet_status)) |
112 | #define PANIC 1 | 112 | #define PANIC 1 |
113 | #define LOW 2 | 113 | #define LOW 2 |
114 | static inline int rx_buffer_level(nic_t * sp, int rxb_size, int ring) | 114 | static inline int rx_buffer_level(struct s2io_nic * sp, int rxb_size, int ring) |
115 | { | 115 | { |
116 | mac_info_t *mac_control; | 116 | struct mac_info *mac_control; |
117 | 117 | ||
118 | mac_control = &sp->mac_control; | 118 | mac_control = &sp->mac_control; |
119 | if (rxb_size <= rxd_count[sp->rxd_mode]) | 119 | if (rxb_size <= rxd_count[sp->rxd_mode]) |
@@ -286,7 +286,7 @@ static char ethtool_stats_keys[][ETH_GSTRING_LEN] = { | |||
286 | static void s2io_vlan_rx_register(struct net_device *dev, | 286 | static void s2io_vlan_rx_register(struct net_device *dev, |
287 | struct vlan_group *grp) | 287 | struct vlan_group *grp) |
288 | { | 288 | { |
289 | nic_t *nic = dev->priv; | 289 | struct s2io_nic *nic = dev->priv; |
290 | unsigned long flags; | 290 | unsigned long flags; |
291 | 291 | ||
292 | spin_lock_irqsave(&nic->tx_lock, flags); | 292 | spin_lock_irqsave(&nic->tx_lock, flags); |
@@ -297,7 +297,7 @@ static void s2io_vlan_rx_register(struct net_device *dev, | |||
297 | /* Unregister the vlan */ | 297 | /* Unregister the vlan */ |
298 | static void s2io_vlan_rx_kill_vid(struct net_device *dev, unsigned long vid) | 298 | static void s2io_vlan_rx_kill_vid(struct net_device *dev, unsigned long vid) |
299 | { | 299 | { |
300 | nic_t *nic = dev->priv; | 300 | struct s2io_nic *nic = dev->priv; |
301 | unsigned long flags; | 301 | unsigned long flags; |
302 | 302 | ||
303 | spin_lock_irqsave(&nic->tx_lock, flags); | 303 | spin_lock_irqsave(&nic->tx_lock, flags); |
@@ -458,14 +458,14 @@ static int init_shared_mem(struct s2io_nic *nic) | |||
458 | u32 size; | 458 | u32 size; |
459 | void *tmp_v_addr, *tmp_v_addr_next; | 459 | void *tmp_v_addr, *tmp_v_addr_next; |
460 | dma_addr_t tmp_p_addr, tmp_p_addr_next; | 460 | dma_addr_t tmp_p_addr, tmp_p_addr_next; |
461 | RxD_block_t *pre_rxd_blk = NULL; | 461 | struct RxD_block *pre_rxd_blk = NULL; |
462 | int i, j, blk_cnt; | 462 | int i, j, blk_cnt; |
463 | int lst_size, lst_per_page; | 463 | int lst_size, lst_per_page; |
464 | struct net_device *dev = nic->dev; | 464 | struct net_device *dev = nic->dev; |
465 | unsigned long tmp; | 465 | unsigned long tmp; |
466 | buffAdd_t *ba; | 466 | struct buffAdd *ba; |
467 | 467 | ||
468 | mac_info_t *mac_control; | 468 | struct mac_info *mac_control; |
469 | struct config_param *config; | 469 | struct config_param *config; |
470 | 470 | ||
471 | mac_control = &nic->mac_control; | 471 | mac_control = &nic->mac_control; |
@@ -483,12 +483,12 @@ static int init_shared_mem(struct s2io_nic *nic) | |||
483 | return -EINVAL; | 483 | return -EINVAL; |
484 | } | 484 | } |
485 | 485 | ||
486 | lst_size = (sizeof(TxD_t) * config->max_txds); | 486 | lst_size = (sizeof(struct TxD) * config->max_txds); |
487 | lst_per_page = PAGE_SIZE / lst_size; | 487 | lst_per_page = PAGE_SIZE / lst_size; |
488 | 488 | ||
489 | for (i = 0; i < config->tx_fifo_num; i++) { | 489 | for (i = 0; i < config->tx_fifo_num; i++) { |
490 | int fifo_len = config->tx_cfg[i].fifo_len; | 490 | int fifo_len = config->tx_cfg[i].fifo_len; |
491 | int list_holder_size = fifo_len * sizeof(list_info_hold_t); | 491 | int list_holder_size = fifo_len * sizeof(struct list_info_hold); |
492 | mac_control->fifos[i].list_info = kmalloc(list_holder_size, | 492 | mac_control->fifos[i].list_info = kmalloc(list_holder_size, |
493 | GFP_KERNEL); | 493 | GFP_KERNEL); |
494 | if (!mac_control->fifos[i].list_info) { | 494 | if (!mac_control->fifos[i].list_info) { |
@@ -579,9 +579,9 @@ static int init_shared_mem(struct s2io_nic *nic) | |||
579 | mac_control->rings[i].block_count; | 579 | mac_control->rings[i].block_count; |
580 | } | 580 | } |
581 | if (nic->rxd_mode == RXD_MODE_1) | 581 | if (nic->rxd_mode == RXD_MODE_1) |
582 | size = (size * (sizeof(RxD1_t))); | 582 | size = (size * (sizeof(struct RxD1))); |
583 | else | 583 | else |
584 | size = (size * (sizeof(RxD3_t))); | 584 | size = (size * (sizeof(struct RxD3))); |
585 | 585 | ||
586 | for (i = 0; i < config->rx_ring_num; i++) { | 586 | for (i = 0; i < config->rx_ring_num; i++) { |
587 | mac_control->rings[i].rx_curr_get_info.block_index = 0; | 587 | mac_control->rings[i].rx_curr_get_info.block_index = 0; |
@@ -599,7 +599,7 @@ static int init_shared_mem(struct s2io_nic *nic) | |||
599 | (rxd_count[nic->rxd_mode] + 1); | 599 | (rxd_count[nic->rxd_mode] + 1); |
600 | /* Allocating all the Rx blocks */ | 600 | /* Allocating all the Rx blocks */ |
601 | for (j = 0; j < blk_cnt; j++) { | 601 | for (j = 0; j < blk_cnt; j++) { |
602 | rx_block_info_t *rx_blocks; | 602 | struct rx_block_info *rx_blocks; |
603 | int l; | 603 | int l; |
604 | 604 | ||
605 | rx_blocks = &mac_control->rings[i].rx_blocks[j]; | 605 | rx_blocks = &mac_control->rings[i].rx_blocks[j]; |
@@ -619,7 +619,7 @@ static int init_shared_mem(struct s2io_nic *nic) | |||
619 | memset(tmp_v_addr, 0, size); | 619 | memset(tmp_v_addr, 0, size); |
620 | rx_blocks->block_virt_addr = tmp_v_addr; | 620 | rx_blocks->block_virt_addr = tmp_v_addr; |
621 | rx_blocks->block_dma_addr = tmp_p_addr; | 621 | rx_blocks->block_dma_addr = tmp_p_addr; |
622 | rx_blocks->rxds = kmalloc(sizeof(rxd_info_t)* | 622 | rx_blocks->rxds = kmalloc(sizeof(struct rxd_info)* |
623 | rxd_count[nic->rxd_mode], | 623 | rxd_count[nic->rxd_mode], |
624 | GFP_KERNEL); | 624 | GFP_KERNEL); |
625 | if (!rx_blocks->rxds) | 625 | if (!rx_blocks->rxds) |
@@ -646,7 +646,7 @@ static int init_shared_mem(struct s2io_nic *nic) | |||
646 | mac_control->rings[i].rx_blocks[(j + 1) % | 646 | mac_control->rings[i].rx_blocks[(j + 1) % |
647 | blk_cnt].block_dma_addr; | 647 | blk_cnt].block_dma_addr; |
648 | 648 | ||
649 | pre_rxd_blk = (RxD_block_t *) tmp_v_addr; | 649 | pre_rxd_blk = (struct RxD_block *) tmp_v_addr; |
650 | pre_rxd_blk->reserved_2_pNext_RxD_block = | 650 | pre_rxd_blk->reserved_2_pNext_RxD_block = |
651 | (unsigned long) tmp_v_addr_next; | 651 | (unsigned long) tmp_v_addr_next; |
652 | pre_rxd_blk->pNext_RxD_Blk_physical = | 652 | pre_rxd_blk->pNext_RxD_Blk_physical = |
@@ -662,14 +662,14 @@ static int init_shared_mem(struct s2io_nic *nic) | |||
662 | blk_cnt = config->rx_cfg[i].num_rxd / | 662 | blk_cnt = config->rx_cfg[i].num_rxd / |
663 | (rxd_count[nic->rxd_mode]+ 1); | 663 | (rxd_count[nic->rxd_mode]+ 1); |
664 | mac_control->rings[i].ba = | 664 | mac_control->rings[i].ba = |
665 | kmalloc((sizeof(buffAdd_t *) * blk_cnt), | 665 | kmalloc((sizeof(struct buffAdd *) * blk_cnt), |
666 | GFP_KERNEL); | 666 | GFP_KERNEL); |
667 | if (!mac_control->rings[i].ba) | 667 | if (!mac_control->rings[i].ba) |
668 | return -ENOMEM; | 668 | return -ENOMEM; |
669 | for (j = 0; j < blk_cnt; j++) { | 669 | for (j = 0; j < blk_cnt; j++) { |
670 | int k = 0; | 670 | int k = 0; |
671 | mac_control->rings[i].ba[j] = | 671 | mac_control->rings[i].ba[j] = |
672 | kmalloc((sizeof(buffAdd_t) * | 672 | kmalloc((sizeof(struct buffAdd) * |
673 | (rxd_count[nic->rxd_mode] + 1)), | 673 | (rxd_count[nic->rxd_mode] + 1)), |
674 | GFP_KERNEL); | 674 | GFP_KERNEL); |
675 | if (!mac_control->rings[i].ba[j]) | 675 | if (!mac_control->rings[i].ba[j]) |
@@ -701,7 +701,7 @@ static int init_shared_mem(struct s2io_nic *nic) | |||
701 | } | 701 | } |
702 | 702 | ||
703 | /* Allocation and initialization of Statistics block */ | 703 | /* Allocation and initialization of Statistics block */ |
704 | size = sizeof(StatInfo_t); | 704 | size = sizeof(struct stat_block); |
705 | mac_control->stats_mem = pci_alloc_consistent | 705 | mac_control->stats_mem = pci_alloc_consistent |
706 | (nic->pdev, size, &mac_control->stats_mem_phy); | 706 | (nic->pdev, size, &mac_control->stats_mem_phy); |
707 | 707 | ||
@@ -716,7 +716,7 @@ static int init_shared_mem(struct s2io_nic *nic) | |||
716 | mac_control->stats_mem_sz = size; | 716 | mac_control->stats_mem_sz = size; |
717 | 717 | ||
718 | tmp_v_addr = mac_control->stats_mem; | 718 | tmp_v_addr = mac_control->stats_mem; |
719 | mac_control->stats_info = (StatInfo_t *) tmp_v_addr; | 719 | mac_control->stats_info = (struct stat_block *) tmp_v_addr; |
720 | memset(tmp_v_addr, 0, size); | 720 | memset(tmp_v_addr, 0, size); |
721 | DBG_PRINT(INIT_DBG, "%s:Ring Mem PHY: 0x%llx\n", dev->name, | 721 | DBG_PRINT(INIT_DBG, "%s:Ring Mem PHY: 0x%llx\n", dev->name, |
722 | (unsigned long long) tmp_p_addr); | 722 | (unsigned long long) tmp_p_addr); |
@@ -736,7 +736,7 @@ static void free_shared_mem(struct s2io_nic *nic) | |||
736 | int i, j, blk_cnt, size; | 736 | int i, j, blk_cnt, size; |
737 | void *tmp_v_addr; | 737 | void *tmp_v_addr; |
738 | dma_addr_t tmp_p_addr; | 738 | dma_addr_t tmp_p_addr; |
739 | mac_info_t *mac_control; | 739 | struct mac_info *mac_control; |
740 | struct config_param *config; | 740 | struct config_param *config; |
741 | int lst_size, lst_per_page; | 741 | int lst_size, lst_per_page; |
742 | struct net_device *dev = nic->dev; | 742 | struct net_device *dev = nic->dev; |
@@ -747,7 +747,7 @@ static void free_shared_mem(struct s2io_nic *nic) | |||
747 | mac_control = &nic->mac_control; | 747 | mac_control = &nic->mac_control; |
748 | config = &nic->config; | 748 | config = &nic->config; |
749 | 749 | ||
750 | lst_size = (sizeof(TxD_t) * config->max_txds); | 750 | lst_size = (sizeof(struct TxD) * config->max_txds); |
751 | lst_per_page = PAGE_SIZE / lst_size; | 751 | lst_per_page = PAGE_SIZE / lst_size; |
752 | 752 | ||
753 | for (i = 0; i < config->tx_fifo_num; i++) { | 753 | for (i = 0; i < config->tx_fifo_num; i++) { |
@@ -810,7 +810,7 @@ static void free_shared_mem(struct s2io_nic *nic) | |||
810 | if (!mac_control->rings[i].ba[j]) | 810 | if (!mac_control->rings[i].ba[j]) |
811 | continue; | 811 | continue; |
812 | while (k != rxd_count[nic->rxd_mode]) { | 812 | while (k != rxd_count[nic->rxd_mode]) { |
813 | buffAdd_t *ba = | 813 | struct buffAdd *ba = |
814 | &mac_control->rings[i].ba[j][k]; | 814 | &mac_control->rings[i].ba[j][k]; |
815 | kfree(ba->ba_0_org); | 815 | kfree(ba->ba_0_org); |
816 | kfree(ba->ba_1_org); | 816 | kfree(ba->ba_1_org); |
@@ -836,9 +836,9 @@ static void free_shared_mem(struct s2io_nic *nic) | |||
836 | * s2io_verify_pci_mode - | 836 | * s2io_verify_pci_mode - |
837 | */ | 837 | */ |
838 | 838 | ||
839 | static int s2io_verify_pci_mode(nic_t *nic) | 839 | static int s2io_verify_pci_mode(struct s2io_nic *nic) |
840 | { | 840 | { |
841 | XENA_dev_config_t __iomem *bar0 = nic->bar0; | 841 | struct XENA_dev_config __iomem *bar0 = nic->bar0; |
842 | register u64 val64 = 0; | 842 | register u64 val64 = 0; |
843 | int mode; | 843 | int mode; |
844 | 844 | ||
@@ -869,9 +869,9 @@ static int bus_speed[8] = {33, 133, 133, 200, 266, 133, 200, 266}; | |||
869 | /** | 869 | /** |
870 | * s2io_print_pci_mode - | 870 | * s2io_print_pci_mode - |
871 | */ | 871 | */ |
872 | static int s2io_print_pci_mode(nic_t *nic) | 872 | static int s2io_print_pci_mode(struct s2io_nic *nic) |
873 | { | 873 | { |
874 | XENA_dev_config_t __iomem *bar0 = nic->bar0; | 874 | struct XENA_dev_config __iomem *bar0 = nic->bar0; |
875 | register u64 val64 = 0; | 875 | register u64 val64 = 0; |
876 | int mode; | 876 | int mode; |
877 | struct config_param *config = &nic->config; | 877 | struct config_param *config = &nic->config; |
@@ -939,13 +939,13 @@ static int s2io_print_pci_mode(nic_t *nic) | |||
939 | 939 | ||
940 | static int init_nic(struct s2io_nic *nic) | 940 | static int init_nic(struct s2io_nic *nic) |
941 | { | 941 | { |
942 | XENA_dev_config_t __iomem *bar0 = nic->bar0; | 942 | struct XENA_dev_config __iomem *bar0 = nic->bar0; |
943 | struct net_device *dev = nic->dev; | 943 | struct net_device *dev = nic->dev; |
944 | register u64 val64 = 0; | 944 | register u64 val64 = 0; |
945 | void __iomem *add; | 945 | void __iomem *add; |
946 | u32 time; | 946 | u32 time; |
947 | int i, j; | 947 | int i, j; |
948 | mac_info_t *mac_control; | 948 | struct mac_info *mac_control; |
949 | struct config_param *config; | 949 | struct config_param *config; |
950 | int dtx_cnt = 0; | 950 | int dtx_cnt = 0; |
951 | unsigned long long mem_share; | 951 | unsigned long long mem_share; |
@@ -1628,7 +1628,7 @@ static int init_nic(struct s2io_nic *nic) | |||
1628 | #define LINK_UP_DOWN_INTERRUPT 1 | 1628 | #define LINK_UP_DOWN_INTERRUPT 1 |
1629 | #define MAC_RMAC_ERR_TIMER 2 | 1629 | #define MAC_RMAC_ERR_TIMER 2 |
1630 | 1630 | ||
1631 | static int s2io_link_fault_indication(nic_t *nic) | 1631 | static int s2io_link_fault_indication(struct s2io_nic *nic) |
1632 | { | 1632 | { |
1633 | if (nic->intr_type != INTA) | 1633 | if (nic->intr_type != INTA) |
1634 | return MAC_RMAC_ERR_TIMER; | 1634 | return MAC_RMAC_ERR_TIMER; |
@@ -1651,7 +1651,7 @@ static int s2io_link_fault_indication(nic_t *nic) | |||
1651 | 1651 | ||
1652 | static void en_dis_able_nic_intrs(struct s2io_nic *nic, u16 mask, int flag) | 1652 | static void en_dis_able_nic_intrs(struct s2io_nic *nic, u16 mask, int flag) |
1653 | { | 1653 | { |
1654 | XENA_dev_config_t __iomem *bar0 = nic->bar0; | 1654 | struct XENA_dev_config __iomem *bar0 = nic->bar0; |
1655 | register u64 val64 = 0, temp64 = 0; | 1655 | register u64 val64 = 0, temp64 = 0; |
1656 | 1656 | ||
1657 | /* Top level interrupt classification */ | 1657 | /* Top level interrupt classification */ |
@@ -1773,10 +1773,10 @@ static void en_dis_able_nic_intrs(struct s2io_nic *nic, u16 mask, int flag) | |||
1773 | * Return: 1 If PCC is quiescence | 1773 | * Return: 1 If PCC is quiescence |
1774 | * 0 If PCC is not quiescence | 1774 | * 0 If PCC is not quiescence |
1775 | */ | 1775 | */ |
1776 | static int verify_pcc_quiescent(nic_t *sp, int flag) | 1776 | static int verify_pcc_quiescent(struct s2io_nic *sp, int flag) |
1777 | { | 1777 | { |
1778 | int ret = 0, herc; | 1778 | int ret = 0, herc; |
1779 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 1779 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
1780 | u64 val64 = readq(&bar0->adapter_status); | 1780 | u64 val64 = readq(&bar0->adapter_status); |
1781 | 1781 | ||
1782 | herc = (sp->device_type == XFRAME_II_DEVICE); | 1782 | herc = (sp->device_type == XFRAME_II_DEVICE); |
@@ -1813,10 +1813,10 @@ static int verify_pcc_quiescent(nic_t *sp, int flag) | |||
1813 | * 0 If Xena is not quiescence | 1813 | * 0 If Xena is not quiescence |
1814 | */ | 1814 | */ |
1815 | 1815 | ||
1816 | static int verify_xena_quiescence(nic_t *sp) | 1816 | static int verify_xena_quiescence(struct s2io_nic *sp) |
1817 | { | 1817 | { |
1818 | int mode; | 1818 | int mode; |
1819 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 1819 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
1820 | u64 val64 = readq(&bar0->adapter_status); | 1820 | u64 val64 = readq(&bar0->adapter_status); |
1821 | mode = s2io_verify_pci_mode(sp); | 1821 | mode = s2io_verify_pci_mode(sp); |
1822 | 1822 | ||
@@ -1880,9 +1880,9 @@ static int verify_xena_quiescence(nic_t *sp) | |||
1880 | * | 1880 | * |
1881 | */ | 1881 | */ |
1882 | 1882 | ||
1883 | static void fix_mac_address(nic_t * sp) | 1883 | static void fix_mac_address(struct s2io_nic * sp) |
1884 | { | 1884 | { |
1885 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 1885 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
1886 | u64 val64; | 1886 | u64 val64; |
1887 | int i = 0; | 1887 | int i = 0; |
1888 | 1888 | ||
@@ -1908,11 +1908,11 @@ static void fix_mac_address(nic_t * sp) | |||
1908 | 1908 | ||
1909 | static int start_nic(struct s2io_nic *nic) | 1909 | static int start_nic(struct s2io_nic *nic) |
1910 | { | 1910 | { |
1911 | XENA_dev_config_t __iomem *bar0 = nic->bar0; | 1911 | struct XENA_dev_config __iomem *bar0 = nic->bar0; |
1912 | struct net_device *dev = nic->dev; | 1912 | struct net_device *dev = nic->dev; |
1913 | register u64 val64 = 0; | 1913 | register u64 val64 = 0; |
1914 | u16 subid, i; | 1914 | u16 subid, i; |
1915 | mac_info_t *mac_control; | 1915 | struct mac_info *mac_control; |
1916 | struct config_param *config; | 1916 | struct config_param *config; |
1917 | 1917 | ||
1918 | mac_control = &nic->mac_control; | 1918 | mac_control = &nic->mac_control; |
@@ -2017,11 +2017,12 @@ static int start_nic(struct s2io_nic *nic) | |||
2017 | /** | 2017 | /** |
2018 | * s2io_txdl_getskb - Get the skb from txdl, unmap and return skb | 2018 | * s2io_txdl_getskb - Get the skb from txdl, unmap and return skb |
2019 | */ | 2019 | */ |
2020 | static struct sk_buff *s2io_txdl_getskb(fifo_info_t *fifo_data, TxD_t *txdlp, int get_off) | 2020 | static struct sk_buff *s2io_txdl_getskb(struct fifo_info *fifo_data, struct \ |
2021 | TxD *txdlp, int get_off) | ||
2021 | { | 2022 | { |
2022 | nic_t *nic = fifo_data->nic; | 2023 | struct s2io_nic *nic = fifo_data->nic; |
2023 | struct sk_buff *skb; | 2024 | struct sk_buff *skb; |
2024 | TxD_t *txds; | 2025 | struct TxD *txds; |
2025 | u16 j, frg_cnt; | 2026 | u16 j, frg_cnt; |
2026 | 2027 | ||
2027 | txds = txdlp; | 2028 | txds = txdlp; |
@@ -2035,7 +2036,7 @@ static struct sk_buff *s2io_txdl_getskb(fifo_info_t *fifo_data, TxD_t *txdlp, in | |||
2035 | skb = (struct sk_buff *) ((unsigned long) | 2036 | skb = (struct sk_buff *) ((unsigned long) |
2036 | txds->Host_Control); | 2037 | txds->Host_Control); |
2037 | if (!skb) { | 2038 | if (!skb) { |
2038 | memset(txdlp, 0, (sizeof(TxD_t) * fifo_data->max_txds)); | 2039 | memset(txdlp, 0, (sizeof(struct TxD) * fifo_data->max_txds)); |
2039 | return NULL; | 2040 | return NULL; |
2040 | } | 2041 | } |
2041 | pci_unmap_single(nic->pdev, (dma_addr_t) | 2042 | pci_unmap_single(nic->pdev, (dma_addr_t) |
@@ -2054,7 +2055,7 @@ static struct sk_buff *s2io_txdl_getskb(fifo_info_t *fifo_data, TxD_t *txdlp, in | |||
2054 | frag->size, PCI_DMA_TODEVICE); | 2055 | frag->size, PCI_DMA_TODEVICE); |
2055 | } | 2056 | } |
2056 | } | 2057 | } |
2057 | memset(txdlp,0, (sizeof(TxD_t) * fifo_data->max_txds)); | 2058 | memset(txdlp,0, (sizeof(struct TxD) * fifo_data->max_txds)); |
2058 | return(skb); | 2059 | return(skb); |
2059 | } | 2060 | } |
2060 | 2061 | ||
@@ -2070,9 +2071,9 @@ static void free_tx_buffers(struct s2io_nic *nic) | |||
2070 | { | 2071 | { |
2071 | struct net_device *dev = nic->dev; | 2072 | struct net_device *dev = nic->dev; |
2072 | struct sk_buff *skb; | 2073 | struct sk_buff *skb; |
2073 | TxD_t *txdp; | 2074 | struct TxD *txdp; |
2074 | int i, j; | 2075 | int i, j; |
2075 | mac_info_t *mac_control; | 2076 | struct mac_info *mac_control; |
2076 | struct config_param *config; | 2077 | struct config_param *config; |
2077 | int cnt = 0; | 2078 | int cnt = 0; |
2078 | 2079 | ||
@@ -2081,7 +2082,7 @@ static void free_tx_buffers(struct s2io_nic *nic) | |||
2081 | 2082 | ||
2082 | for (i = 0; i < config->tx_fifo_num; i++) { | 2083 | for (i = 0; i < config->tx_fifo_num; i++) { |
2083 | for (j = 0; j < config->tx_cfg[i].fifo_len - 1; j++) { | 2084 | for (j = 0; j < config->tx_cfg[i].fifo_len - 1; j++) { |
2084 | txdp = (TxD_t *) mac_control->fifos[i].list_info[j]. | 2085 | txdp = (struct TxD *) mac_control->fifos[i].list_info[j]. |
2085 | list_virt_addr; | 2086 | list_virt_addr; |
2086 | skb = s2io_txdl_getskb(&mac_control->fifos[i], txdp, j); | 2087 | skb = s2io_txdl_getskb(&mac_control->fifos[i], txdp, j); |
2087 | if (skb) { | 2088 | if (skb) { |
@@ -2109,10 +2110,10 @@ static void free_tx_buffers(struct s2io_nic *nic) | |||
2109 | 2110 | ||
2110 | static void stop_nic(struct s2io_nic *nic) | 2111 | static void stop_nic(struct s2io_nic *nic) |
2111 | { | 2112 | { |
2112 | XENA_dev_config_t __iomem *bar0 = nic->bar0; | 2113 | struct XENA_dev_config __iomem *bar0 = nic->bar0; |
2113 | register u64 val64 = 0; | 2114 | register u64 val64 = 0; |
2114 | u16 interruptible; | 2115 | u16 interruptible; |
2115 | mac_info_t *mac_control; | 2116 | struct mac_info *mac_control; |
2116 | struct config_param *config; | 2117 | struct config_param *config; |
2117 | 2118 | ||
2118 | mac_control = &nic->mac_control; | 2119 | mac_control = &nic->mac_control; |
@@ -2130,14 +2131,15 @@ static void stop_nic(struct s2io_nic *nic) | |||
2130 | writeq(val64, &bar0->adapter_control); | 2131 | writeq(val64, &bar0->adapter_control); |
2131 | } | 2132 | } |
2132 | 2133 | ||
2133 | static int fill_rxd_3buf(nic_t *nic, RxD_t *rxdp, struct sk_buff *skb) | 2134 | static int fill_rxd_3buf(struct s2io_nic *nic, struct RxD_t *rxdp, struct \ |
2135 | sk_buff *skb) | ||
2134 | { | 2136 | { |
2135 | struct net_device *dev = nic->dev; | 2137 | struct net_device *dev = nic->dev; |
2136 | struct sk_buff *frag_list; | 2138 | struct sk_buff *frag_list; |
2137 | void *tmp; | 2139 | void *tmp; |
2138 | 2140 | ||
2139 | /* Buffer-1 receives L3/L4 headers */ | 2141 | /* Buffer-1 receives L3/L4 headers */ |
2140 | ((RxD3_t*)rxdp)->Buffer1_ptr = pci_map_single | 2142 | ((struct RxD3*)rxdp)->Buffer1_ptr = pci_map_single |
2141 | (nic->pdev, skb->data, l3l4hdr_size + 4, | 2143 | (nic->pdev, skb->data, l3l4hdr_size + 4, |
2142 | PCI_DMA_FROMDEVICE); | 2144 | PCI_DMA_FROMDEVICE); |
2143 | 2145 | ||
@@ -2155,7 +2157,7 @@ static int fill_rxd_3buf(nic_t *nic, RxD_t *rxdp, struct sk_buff *skb) | |||
2155 | frag_list->tail = tmp; | 2157 | frag_list->tail = tmp; |
2156 | 2158 | ||
2157 | /* Buffer-2 receives L4 data payload */ | 2159 | /* Buffer-2 receives L4 data payload */ |
2158 | ((RxD3_t*)rxdp)->Buffer2_ptr = pci_map_single(nic->pdev, | 2160 | ((struct RxD3*)rxdp)->Buffer2_ptr = pci_map_single(nic->pdev, |
2159 | frag_list->data, dev->mtu, | 2161 | frag_list->data, dev->mtu, |
2160 | PCI_DMA_FROMDEVICE); | 2162 | PCI_DMA_FROMDEVICE); |
2161 | rxdp->Control_2 |= SET_BUFFER1_SIZE_3(l3l4hdr_size + 4); | 2163 | rxdp->Control_2 |= SET_BUFFER1_SIZE_3(l3l4hdr_size + 4); |
@@ -2189,16 +2191,16 @@ static int fill_rx_buffers(struct s2io_nic *nic, int ring_no) | |||
2189 | { | 2191 | { |
2190 | struct net_device *dev = nic->dev; | 2192 | struct net_device *dev = nic->dev; |
2191 | struct sk_buff *skb; | 2193 | struct sk_buff *skb; |
2192 | RxD_t *rxdp; | 2194 | struct RxD_t *rxdp; |
2193 | int off, off1, size, block_no, block_no1; | 2195 | int off, off1, size, block_no, block_no1; |
2194 | u32 alloc_tab = 0; | 2196 | u32 alloc_tab = 0; |
2195 | u32 alloc_cnt; | 2197 | u32 alloc_cnt; |
2196 | mac_info_t *mac_control; | 2198 | struct mac_info *mac_control; |
2197 | struct config_param *config; | 2199 | struct config_param *config; |
2198 | u64 tmp; | 2200 | u64 tmp; |
2199 | buffAdd_t *ba; | 2201 | struct buffAdd *ba; |
2200 | unsigned long flags; | 2202 | unsigned long flags; |
2201 | RxD_t *first_rxdp = NULL; | 2203 | struct RxD_t *first_rxdp = NULL; |
2202 | 2204 | ||
2203 | mac_control = &nic->mac_control; | 2205 | mac_control = &nic->mac_control; |
2204 | config = &nic->config; | 2206 | config = &nic->config; |
@@ -2280,9 +2282,9 @@ static int fill_rx_buffers(struct s2io_nic *nic, int ring_no) | |||
2280 | } | 2282 | } |
2281 | if (nic->rxd_mode == RXD_MODE_1) { | 2283 | if (nic->rxd_mode == RXD_MODE_1) { |
2282 | /* 1 buffer mode - normal operation mode */ | 2284 | /* 1 buffer mode - normal operation mode */ |
2283 | memset(rxdp, 0, sizeof(RxD1_t)); | 2285 | memset(rxdp, 0, sizeof(struct RxD1)); |
2284 | skb_reserve(skb, NET_IP_ALIGN); | 2286 | skb_reserve(skb, NET_IP_ALIGN); |
2285 | ((RxD1_t*)rxdp)->Buffer0_ptr = pci_map_single | 2287 | ((struct RxD1*)rxdp)->Buffer0_ptr = pci_map_single |
2286 | (nic->pdev, skb->data, size - NET_IP_ALIGN, | 2288 | (nic->pdev, skb->data, size - NET_IP_ALIGN, |
2287 | PCI_DMA_FROMDEVICE); | 2289 | PCI_DMA_FROMDEVICE); |
2288 | rxdp->Control_2 = SET_BUFFER0_SIZE_1(size - NET_IP_ALIGN); | 2290 | rxdp->Control_2 = SET_BUFFER0_SIZE_1(size - NET_IP_ALIGN); |
@@ -2299,7 +2301,7 @@ static int fill_rx_buffers(struct s2io_nic *nic, int ring_no) | |||
2299 | * payload | 2301 | * payload |
2300 | */ | 2302 | */ |
2301 | 2303 | ||
2302 | memset(rxdp, 0, sizeof(RxD3_t)); | 2304 | memset(rxdp, 0, sizeof(struct RxD3)); |
2303 | ba = &mac_control->rings[ring_no].ba[block_no][off]; | 2305 | ba = &mac_control->rings[ring_no].ba[block_no][off]; |
2304 | skb_reserve(skb, BUF0_LEN); | 2306 | skb_reserve(skb, BUF0_LEN); |
2305 | tmp = (u64)(unsigned long) skb->data; | 2307 | tmp = (u64)(unsigned long) skb->data; |
@@ -2308,13 +2310,13 @@ static int fill_rx_buffers(struct s2io_nic *nic, int ring_no) | |||
2308 | skb->data = (void *) (unsigned long)tmp; | 2310 | skb->data = (void *) (unsigned long)tmp; |
2309 | skb->tail = (void *) (unsigned long)tmp; | 2311 | skb->tail = (void *) (unsigned long)tmp; |
2310 | 2312 | ||
2311 | if (!(((RxD3_t*)rxdp)->Buffer0_ptr)) | 2313 | if (!(((struct RxD3*)rxdp)->Buffer0_ptr)) |
2312 | ((RxD3_t*)rxdp)->Buffer0_ptr = | 2314 | ((struct RxD3*)rxdp)->Buffer0_ptr = |
2313 | pci_map_single(nic->pdev, ba->ba_0, BUF0_LEN, | 2315 | pci_map_single(nic->pdev, ba->ba_0, BUF0_LEN, |
2314 | PCI_DMA_FROMDEVICE); | 2316 | PCI_DMA_FROMDEVICE); |
2315 | else | 2317 | else |
2316 | pci_dma_sync_single_for_device(nic->pdev, | 2318 | pci_dma_sync_single_for_device(nic->pdev, |
2317 | (dma_addr_t) ((RxD3_t*)rxdp)->Buffer0_ptr, | 2319 | (dma_addr_t) ((struct RxD3*)rxdp)->Buffer0_ptr, |
2318 | BUF0_LEN, PCI_DMA_FROMDEVICE); | 2320 | BUF0_LEN, PCI_DMA_FROMDEVICE); |
2319 | rxdp->Control_2 = SET_BUFFER0_SIZE_3(BUF0_LEN); | 2321 | rxdp->Control_2 = SET_BUFFER0_SIZE_3(BUF0_LEN); |
2320 | if (nic->rxd_mode == RXD_MODE_3B) { | 2322 | if (nic->rxd_mode == RXD_MODE_3B) { |
@@ -2324,13 +2326,13 @@ static int fill_rx_buffers(struct s2io_nic *nic, int ring_no) | |||
2324 | * Buffer2 will have L3/L4 header plus | 2326 | * Buffer2 will have L3/L4 header plus |
2325 | * L4 payload | 2327 | * L4 payload |
2326 | */ | 2328 | */ |
2327 | ((RxD3_t*)rxdp)->Buffer2_ptr = pci_map_single | 2329 | ((struct RxD3*)rxdp)->Buffer2_ptr = pci_map_single |
2328 | (nic->pdev, skb->data, dev->mtu + 4, | 2330 | (nic->pdev, skb->data, dev->mtu + 4, |
2329 | PCI_DMA_FROMDEVICE); | 2331 | PCI_DMA_FROMDEVICE); |
2330 | 2332 | ||
2331 | /* Buffer-1 will be dummy buffer. Not used */ | 2333 | /* Buffer-1 will be dummy buffer. Not used */ |
2332 | if (!(((RxD3_t*)rxdp)->Buffer1_ptr)) { | 2334 | if (!(((struct RxD3*)rxdp)->Buffer1_ptr)) { |
2333 | ((RxD3_t*)rxdp)->Buffer1_ptr = | 2335 | ((struct RxD3*)rxdp)->Buffer1_ptr = |
2334 | pci_map_single(nic->pdev, | 2336 | pci_map_single(nic->pdev, |
2335 | ba->ba_1, BUF1_LEN, | 2337 | ba->ba_1, BUF1_LEN, |
2336 | PCI_DMA_FROMDEVICE); | 2338 | PCI_DMA_FROMDEVICE); |
@@ -2390,9 +2392,9 @@ static void free_rxd_blk(struct s2io_nic *sp, int ring_no, int blk) | |||
2390 | struct net_device *dev = sp->dev; | 2392 | struct net_device *dev = sp->dev; |
2391 | int j; | 2393 | int j; |
2392 | struct sk_buff *skb; | 2394 | struct sk_buff *skb; |
2393 | RxD_t *rxdp; | 2395 | struct RxD_t *rxdp; |
2394 | mac_info_t *mac_control; | 2396 | struct mac_info *mac_control; |
2395 | buffAdd_t *ba; | 2397 | struct buffAdd *ba; |
2396 | 2398 | ||
2397 | mac_control = &sp->mac_control; | 2399 | mac_control = &sp->mac_control; |
2398 | for (j = 0 ; j < rxd_count[sp->rxd_mode]; j++) { | 2400 | for (j = 0 ; j < rxd_count[sp->rxd_mode]; j++) { |
@@ -2405,41 +2407,41 @@ static void free_rxd_blk(struct s2io_nic *sp, int ring_no, int blk) | |||
2405 | } | 2407 | } |
2406 | if (sp->rxd_mode == RXD_MODE_1) { | 2408 | if (sp->rxd_mode == RXD_MODE_1) { |
2407 | pci_unmap_single(sp->pdev, (dma_addr_t) | 2409 | pci_unmap_single(sp->pdev, (dma_addr_t) |
2408 | ((RxD1_t*)rxdp)->Buffer0_ptr, | 2410 | ((struct RxD1*)rxdp)->Buffer0_ptr, |
2409 | dev->mtu + | 2411 | dev->mtu + |
2410 | HEADER_ETHERNET_II_802_3_SIZE | 2412 | HEADER_ETHERNET_II_802_3_SIZE |
2411 | + HEADER_802_2_SIZE + | 2413 | + HEADER_802_2_SIZE + |
2412 | HEADER_SNAP_SIZE, | 2414 | HEADER_SNAP_SIZE, |
2413 | PCI_DMA_FROMDEVICE); | 2415 | PCI_DMA_FROMDEVICE); |
2414 | memset(rxdp, 0, sizeof(RxD1_t)); | 2416 | memset(rxdp, 0, sizeof(struct RxD1)); |
2415 | } else if(sp->rxd_mode == RXD_MODE_3B) { | 2417 | } else if(sp->rxd_mode == RXD_MODE_3B) { |
2416 | ba = &mac_control->rings[ring_no]. | 2418 | ba = &mac_control->rings[ring_no]. |
2417 | ba[blk][j]; | 2419 | ba[blk][j]; |
2418 | pci_unmap_single(sp->pdev, (dma_addr_t) | 2420 | pci_unmap_single(sp->pdev, (dma_addr_t) |
2419 | ((RxD3_t*)rxdp)->Buffer0_ptr, | 2421 | ((struct RxD3*)rxdp)->Buffer0_ptr, |
2420 | BUF0_LEN, | 2422 | BUF0_LEN, |
2421 | PCI_DMA_FROMDEVICE); | 2423 | PCI_DMA_FROMDEVICE); |
2422 | pci_unmap_single(sp->pdev, (dma_addr_t) | 2424 | pci_unmap_single(sp->pdev, (dma_addr_t) |
2423 | ((RxD3_t*)rxdp)->Buffer1_ptr, | 2425 | ((struct RxD3*)rxdp)->Buffer1_ptr, |
2424 | BUF1_LEN, | 2426 | BUF1_LEN, |
2425 | PCI_DMA_FROMDEVICE); | 2427 | PCI_DMA_FROMDEVICE); |
2426 | pci_unmap_single(sp->pdev, (dma_addr_t) | 2428 | pci_unmap_single(sp->pdev, (dma_addr_t) |
2427 | ((RxD3_t*)rxdp)->Buffer2_ptr, | 2429 | ((struct RxD3*)rxdp)->Buffer2_ptr, |
2428 | dev->mtu + 4, | 2430 | dev->mtu + 4, |
2429 | PCI_DMA_FROMDEVICE); | 2431 | PCI_DMA_FROMDEVICE); |
2430 | memset(rxdp, 0, sizeof(RxD3_t)); | 2432 | memset(rxdp, 0, sizeof(struct RxD3)); |
2431 | } else { | 2433 | } else { |
2432 | pci_unmap_single(sp->pdev, (dma_addr_t) | 2434 | pci_unmap_single(sp->pdev, (dma_addr_t) |
2433 | ((RxD3_t*)rxdp)->Buffer0_ptr, BUF0_LEN, | 2435 | ((struct RxD3*)rxdp)->Buffer0_ptr, BUF0_LEN, |
2434 | PCI_DMA_FROMDEVICE); | 2436 | PCI_DMA_FROMDEVICE); |
2435 | pci_unmap_single(sp->pdev, (dma_addr_t) | 2437 | pci_unmap_single(sp->pdev, (dma_addr_t) |
2436 | ((RxD3_t*)rxdp)->Buffer1_ptr, | 2438 | ((struct RxD3*)rxdp)->Buffer1_ptr, |
2437 | l3l4hdr_size + 4, | 2439 | l3l4hdr_size + 4, |
2438 | PCI_DMA_FROMDEVICE); | 2440 | PCI_DMA_FROMDEVICE); |
2439 | pci_unmap_single(sp->pdev, (dma_addr_t) | 2441 | pci_unmap_single(sp->pdev, (dma_addr_t) |
2440 | ((RxD3_t*)rxdp)->Buffer2_ptr, dev->mtu, | 2442 | ((struct RxD3*)rxdp)->Buffer2_ptr, dev->mtu, |
2441 | PCI_DMA_FROMDEVICE); | 2443 | PCI_DMA_FROMDEVICE); |
2442 | memset(rxdp, 0, sizeof(RxD3_t)); | 2444 | memset(rxdp, 0, sizeof(struct RxD3)); |
2443 | } | 2445 | } |
2444 | dev_kfree_skb(skb); | 2446 | dev_kfree_skb(skb); |
2445 | atomic_dec(&sp->rx_bufs_left[ring_no]); | 2447 | atomic_dec(&sp->rx_bufs_left[ring_no]); |
@@ -2459,7 +2461,7 @@ static void free_rx_buffers(struct s2io_nic *sp) | |||
2459 | { | 2461 | { |
2460 | struct net_device *dev = sp->dev; | 2462 | struct net_device *dev = sp->dev; |
2461 | int i, blk = 0, buf_cnt = 0; | 2463 | int i, blk = 0, buf_cnt = 0; |
2462 | mac_info_t *mac_control; | 2464 | struct mac_info *mac_control; |
2463 | struct config_param *config; | 2465 | struct config_param *config; |
2464 | 2466 | ||
2465 | mac_control = &sp->mac_control; | 2467 | mac_control = &sp->mac_control; |
@@ -2494,11 +2496,11 @@ static void free_rx_buffers(struct s2io_nic *sp) | |||
2494 | 2496 | ||
2495 | static int s2io_poll(struct net_device *dev, int *budget) | 2497 | static int s2io_poll(struct net_device *dev, int *budget) |
2496 | { | 2498 | { |
2497 | nic_t *nic = dev->priv; | 2499 | struct s2io_nic *nic = dev->priv; |
2498 | int pkt_cnt = 0, org_pkts_to_process; | 2500 | int pkt_cnt = 0, org_pkts_to_process; |
2499 | mac_info_t *mac_control; | 2501 | struct mac_info *mac_control; |
2500 | struct config_param *config; | 2502 | struct config_param *config; |
2501 | XENA_dev_config_t __iomem *bar0 = nic->bar0; | 2503 | struct XENA_dev_config __iomem *bar0 = nic->bar0; |
2502 | int i; | 2504 | int i; |
2503 | 2505 | ||
2504 | atomic_inc(&nic->isr_cnt); | 2506 | atomic_inc(&nic->isr_cnt); |
@@ -2568,10 +2570,10 @@ no_rx: | |||
2568 | */ | 2570 | */ |
2569 | static void s2io_netpoll(struct net_device *dev) | 2571 | static void s2io_netpoll(struct net_device *dev) |
2570 | { | 2572 | { |
2571 | nic_t *nic = dev->priv; | 2573 | struct s2io_nic *nic = dev->priv; |
2572 | mac_info_t *mac_control; | 2574 | struct mac_info *mac_control; |
2573 | struct config_param *config; | 2575 | struct config_param *config; |
2574 | XENA_dev_config_t __iomem *bar0 = nic->bar0; | 2576 | struct XENA_dev_config __iomem *bar0 = nic->bar0; |
2575 | u64 val64 = 0xFFFFFFFFFFFFFFFFULL; | 2577 | u64 val64 = 0xFFFFFFFFFFFFFFFFULL; |
2576 | int i; | 2578 | int i; |
2577 | 2579 | ||
@@ -2620,13 +2622,13 @@ static void s2io_netpoll(struct net_device *dev) | |||
2620 | * Return Value: | 2622 | * Return Value: |
2621 | * NONE. | 2623 | * NONE. |
2622 | */ | 2624 | */ |
2623 | static void rx_intr_handler(ring_info_t *ring_data) | 2625 | static void rx_intr_handler(struct ring_info *ring_data) |
2624 | { | 2626 | { |
2625 | nic_t *nic = ring_data->nic; | 2627 | struct s2io_nic *nic = ring_data->nic; |
2626 | struct net_device *dev = (struct net_device *) nic->dev; | 2628 | struct net_device *dev = (struct net_device *) nic->dev; |
2627 | int get_block, put_block, put_offset; | 2629 | int get_block, put_block, put_offset; |
2628 | rx_curr_get_info_t get_info, put_info; | 2630 | struct rx_curr_get_info get_info, put_info; |
2629 | RxD_t *rxdp; | 2631 | struct RxD_t *rxdp; |
2630 | struct sk_buff *skb; | 2632 | struct sk_buff *skb; |
2631 | int pkt_cnt = 0; | 2633 | int pkt_cnt = 0; |
2632 | int i; | 2634 | int i; |
@@ -2641,7 +2643,7 @@ static void rx_intr_handler(ring_info_t *ring_data) | |||
2641 | 2643 | ||
2642 | get_info = ring_data->rx_curr_get_info; | 2644 | get_info = ring_data->rx_curr_get_info; |
2643 | get_block = get_info.block_index; | 2645 | get_block = get_info.block_index; |
2644 | put_info = ring_data->rx_curr_put_info; | 2646 | memcpy(&put_info, &ring_data->rx_curr_put_info, sizeof(put_info)); |
2645 | put_block = put_info.block_index; | 2647 | put_block = put_info.block_index; |
2646 | rxdp = ring_data->rx_blocks[get_block].rxds[get_info.offset].virt_addr; | 2648 | rxdp = ring_data->rx_blocks[get_block].rxds[get_info.offset].virt_addr; |
2647 | if (!napi) { | 2649 | if (!napi) { |
@@ -2671,7 +2673,7 @@ static void rx_intr_handler(ring_info_t *ring_data) | |||
2671 | } | 2673 | } |
2672 | if (nic->rxd_mode == RXD_MODE_1) { | 2674 | if (nic->rxd_mode == RXD_MODE_1) { |
2673 | pci_unmap_single(nic->pdev, (dma_addr_t) | 2675 | pci_unmap_single(nic->pdev, (dma_addr_t) |
2674 | ((RxD1_t*)rxdp)->Buffer0_ptr, | 2676 | ((struct RxD1*)rxdp)->Buffer0_ptr, |
2675 | dev->mtu + | 2677 | dev->mtu + |
2676 | HEADER_ETHERNET_II_802_3_SIZE + | 2678 | HEADER_ETHERNET_II_802_3_SIZE + |
2677 | HEADER_802_2_SIZE + | 2679 | HEADER_802_2_SIZE + |
@@ -2679,22 +2681,22 @@ static void rx_intr_handler(ring_info_t *ring_data) | |||
2679 | PCI_DMA_FROMDEVICE); | 2681 | PCI_DMA_FROMDEVICE); |
2680 | } else if (nic->rxd_mode == RXD_MODE_3B) { | 2682 | } else if (nic->rxd_mode == RXD_MODE_3B) { |
2681 | pci_dma_sync_single_for_cpu(nic->pdev, (dma_addr_t) | 2683 | pci_dma_sync_single_for_cpu(nic->pdev, (dma_addr_t) |
2682 | ((RxD3_t*)rxdp)->Buffer0_ptr, | 2684 | ((struct RxD3*)rxdp)->Buffer0_ptr, |
2683 | BUF0_LEN, PCI_DMA_FROMDEVICE); | 2685 | BUF0_LEN, PCI_DMA_FROMDEVICE); |
2684 | pci_unmap_single(nic->pdev, (dma_addr_t) | 2686 | pci_unmap_single(nic->pdev, (dma_addr_t) |
2685 | ((RxD3_t*)rxdp)->Buffer2_ptr, | 2687 | ((struct RxD3*)rxdp)->Buffer2_ptr, |
2686 | dev->mtu + 4, | 2688 | dev->mtu + 4, |
2687 | PCI_DMA_FROMDEVICE); | 2689 | PCI_DMA_FROMDEVICE); |
2688 | } else { | 2690 | } else { |
2689 | pci_dma_sync_single_for_cpu(nic->pdev, (dma_addr_t) | 2691 | pci_dma_sync_single_for_cpu(nic->pdev, (dma_addr_t) |
2690 | ((RxD3_t*)rxdp)->Buffer0_ptr, BUF0_LEN, | 2692 | ((struct RxD3*)rxdp)->Buffer0_ptr, BUF0_LEN, |
2691 | PCI_DMA_FROMDEVICE); | 2693 | PCI_DMA_FROMDEVICE); |
2692 | pci_unmap_single(nic->pdev, (dma_addr_t) | 2694 | pci_unmap_single(nic->pdev, (dma_addr_t) |
2693 | ((RxD3_t*)rxdp)->Buffer1_ptr, | 2695 | ((struct RxD3*)rxdp)->Buffer1_ptr, |
2694 | l3l4hdr_size + 4, | 2696 | l3l4hdr_size + 4, |
2695 | PCI_DMA_FROMDEVICE); | 2697 | PCI_DMA_FROMDEVICE); |
2696 | pci_unmap_single(nic->pdev, (dma_addr_t) | 2698 | pci_unmap_single(nic->pdev, (dma_addr_t) |
2697 | ((RxD3_t*)rxdp)->Buffer2_ptr, | 2699 | ((struct RxD3*)rxdp)->Buffer2_ptr, |
2698 | dev->mtu, PCI_DMA_FROMDEVICE); | 2700 | dev->mtu, PCI_DMA_FROMDEVICE); |
2699 | } | 2701 | } |
2700 | prefetch(skb->data); | 2702 | prefetch(skb->data); |
@@ -2723,7 +2725,7 @@ static void rx_intr_handler(ring_info_t *ring_data) | |||
2723 | if (nic->lro) { | 2725 | if (nic->lro) { |
2724 | /* Clear all LRO sessions before exiting */ | 2726 | /* Clear all LRO sessions before exiting */ |
2725 | for (i=0; i<MAX_LRO_SESSIONS; i++) { | 2727 | for (i=0; i<MAX_LRO_SESSIONS; i++) { |
2726 | lro_t *lro = &nic->lro0_n[i]; | 2728 | struct lro *lro = &nic->lro0_n[i]; |
2727 | if (lro->in_use) { | 2729 | if (lro->in_use) { |
2728 | update_L3L4_header(nic, lro); | 2730 | update_L3L4_header(nic, lro); |
2729 | queue_rx_frame(lro->parent); | 2731 | queue_rx_frame(lro->parent); |
@@ -2747,17 +2749,17 @@ static void rx_intr_handler(ring_info_t *ring_data) | |||
2747 | * NONE | 2749 | * NONE |
2748 | */ | 2750 | */ |
2749 | 2751 | ||
2750 | static void tx_intr_handler(fifo_info_t *fifo_data) | 2752 | static void tx_intr_handler(struct fifo_info *fifo_data) |
2751 | { | 2753 | { |
2752 | nic_t *nic = fifo_data->nic; | 2754 | struct s2io_nic *nic = fifo_data->nic; |
2753 | struct net_device *dev = (struct net_device *) nic->dev; | 2755 | struct net_device *dev = (struct net_device *) nic->dev; |
2754 | tx_curr_get_info_t get_info, put_info; | 2756 | struct tx_curr_get_info get_info, put_info; |
2755 | struct sk_buff *skb; | 2757 | struct sk_buff *skb; |
2756 | TxD_t *txdlp; | 2758 | struct TxD *txdlp; |
2757 | 2759 | ||
2758 | get_info = fifo_data->tx_curr_get_info; | 2760 | get_info = fifo_data->tx_curr_get_info; |
2759 | put_info = fifo_data->tx_curr_put_info; | 2761 | memcpy(&put_info, &fifo_data->tx_curr_put_info, sizeof(put_info)); |
2760 | txdlp = (TxD_t *) fifo_data->list_info[get_info.offset]. | 2762 | txdlp = (struct TxD *) fifo_data->list_info[get_info.offset]. |
2761 | list_virt_addr; | 2763 | list_virt_addr; |
2762 | while ((!(txdlp->Control_1 & TXD_LIST_OWN_XENA)) && | 2764 | while ((!(txdlp->Control_1 & TXD_LIST_OWN_XENA)) && |
2763 | (get_info.offset != put_info.offset) && | 2765 | (get_info.offset != put_info.offset) && |
@@ -2794,7 +2796,7 @@ static void tx_intr_handler(fifo_info_t *fifo_data) | |||
2794 | get_info.offset++; | 2796 | get_info.offset++; |
2795 | if (get_info.offset == get_info.fifo_len + 1) | 2797 | if (get_info.offset == get_info.fifo_len + 1) |
2796 | get_info.offset = 0; | 2798 | get_info.offset = 0; |
2797 | txdlp = (TxD_t *) fifo_data->list_info | 2799 | txdlp = (struct TxD *) fifo_data->list_info |
2798 | [get_info.offset].list_virt_addr; | 2800 | [get_info.offset].list_virt_addr; |
2799 | fifo_data->tx_curr_get_info.offset = | 2801 | fifo_data->tx_curr_get_info.offset = |
2800 | get_info.offset; | 2802 | get_info.offset; |
@@ -2819,8 +2821,8 @@ static void tx_intr_handler(fifo_info_t *fifo_data) | |||
2819 | static void s2io_mdio_write(u32 mmd_type, u64 addr, u16 value, struct net_device *dev) | 2821 | static void s2io_mdio_write(u32 mmd_type, u64 addr, u16 value, struct net_device *dev) |
2820 | { | 2822 | { |
2821 | u64 val64 = 0x0; | 2823 | u64 val64 = 0x0; |
2822 | nic_t *sp = dev->priv; | 2824 | struct s2io_nic *sp = dev->priv; |
2823 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 2825 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
2824 | 2826 | ||
2825 | //address transaction | 2827 | //address transaction |
2826 | val64 = val64 | MDIO_MMD_INDX_ADDR(addr) | 2828 | val64 = val64 | MDIO_MMD_INDX_ADDR(addr) |
@@ -2868,8 +2870,8 @@ static u64 s2io_mdio_read(u32 mmd_type, u64 addr, struct net_device *dev) | |||
2868 | { | 2870 | { |
2869 | u64 val64 = 0x0; | 2871 | u64 val64 = 0x0; |
2870 | u64 rval64 = 0x0; | 2872 | u64 rval64 = 0x0; |
2871 | nic_t *sp = dev->priv; | 2873 | struct s2io_nic *sp = dev->priv; |
2872 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 2874 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
2873 | 2875 | ||
2874 | /* address transaction */ | 2876 | /* address transaction */ |
2875 | val64 = val64 | MDIO_MMD_INDX_ADDR(addr) | 2877 | val64 = val64 | MDIO_MMD_INDX_ADDR(addr) |
@@ -2972,8 +2974,8 @@ static void s2io_updt_xpak_counter(struct net_device *dev) | |||
2972 | u64 val64 = 0x0; | 2974 | u64 val64 = 0x0; |
2973 | u64 addr = 0x0; | 2975 | u64 addr = 0x0; |
2974 | 2976 | ||
2975 | nic_t *sp = dev->priv; | 2977 | struct s2io_nic *sp = dev->priv; |
2976 | StatInfo_t *stat_info = sp->mac_control.stats_info; | 2978 | struct stat_block *stat_info = sp->mac_control.stats_info; |
2977 | 2979 | ||
2978 | /* Check the communication with the MDIO slave */ | 2980 | /* Check the communication with the MDIO slave */ |
2979 | addr = 0x0000; | 2981 | addr = 0x0000; |
@@ -3071,7 +3073,7 @@ static void s2io_updt_xpak_counter(struct net_device *dev) | |||
3071 | static void alarm_intr_handler(struct s2io_nic *nic) | 3073 | static void alarm_intr_handler(struct s2io_nic *nic) |
3072 | { | 3074 | { |
3073 | struct net_device *dev = (struct net_device *) nic->dev; | 3075 | struct net_device *dev = (struct net_device *) nic->dev; |
3074 | XENA_dev_config_t __iomem *bar0 = nic->bar0; | 3076 | struct XENA_dev_config __iomem *bar0 = nic->bar0; |
3075 | register u64 val64 = 0, err_reg = 0; | 3077 | register u64 val64 = 0, err_reg = 0; |
3076 | u64 cnt; | 3078 | u64 cnt; |
3077 | int i; | 3079 | int i; |
@@ -3246,9 +3248,9 @@ static u16 check_pci_device_id(u16 id) | |||
3246 | * void. | 3248 | * void. |
3247 | */ | 3249 | */ |
3248 | 3250 | ||
3249 | static void s2io_reset(nic_t * sp) | 3251 | static void s2io_reset(struct s2io_nic * sp) |
3250 | { | 3252 | { |
3251 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 3253 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
3252 | u64 val64; | 3254 | u64 val64; |
3253 | u16 subid, pci_cmd; | 3255 | u16 subid, pci_cmd; |
3254 | int i; | 3256 | int i; |
@@ -3352,10 +3354,10 @@ new_way: | |||
3352 | * SUCCESS on success and FAILURE on failure. | 3354 | * SUCCESS on success and FAILURE on failure. |
3353 | */ | 3355 | */ |
3354 | 3356 | ||
3355 | static int s2io_set_swapper(nic_t * sp) | 3357 | static int s2io_set_swapper(struct s2io_nic * sp) |
3356 | { | 3358 | { |
3357 | struct net_device *dev = sp->dev; | 3359 | struct net_device *dev = sp->dev; |
3358 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 3360 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
3359 | u64 val64, valt, valr; | 3361 | u64 val64, valt, valr; |
3360 | 3362 | ||
3361 | /* | 3363 | /* |
@@ -3480,9 +3482,9 @@ static int s2io_set_swapper(nic_t * sp) | |||
3480 | return SUCCESS; | 3482 | return SUCCESS; |
3481 | } | 3483 | } |
3482 | 3484 | ||
3483 | static int wait_for_msix_trans(nic_t *nic, int i) | 3485 | static int wait_for_msix_trans(struct s2io_nic *nic, int i) |
3484 | { | 3486 | { |
3485 | XENA_dev_config_t __iomem *bar0 = nic->bar0; | 3487 | struct XENA_dev_config __iomem *bar0 = nic->bar0; |
3486 | u64 val64; | 3488 | u64 val64; |
3487 | int ret = 0, cnt = 0; | 3489 | int ret = 0, cnt = 0; |
3488 | 3490 | ||
@@ -3501,9 +3503,9 @@ static int wait_for_msix_trans(nic_t *nic, int i) | |||
3501 | return ret; | 3503 | return ret; |
3502 | } | 3504 | } |
3503 | 3505 | ||
3504 | static void restore_xmsi_data(nic_t *nic) | 3506 | static void restore_xmsi_data(struct s2io_nic *nic) |
3505 | { | 3507 | { |
3506 | XENA_dev_config_t __iomem *bar0 = nic->bar0; | 3508 | struct XENA_dev_config __iomem *bar0 = nic->bar0; |
3507 | u64 val64; | 3509 | u64 val64; |
3508 | int i; | 3510 | int i; |
3509 | 3511 | ||
@@ -3519,9 +3521,9 @@ static void restore_xmsi_data(nic_t *nic) | |||
3519 | } | 3521 | } |
3520 | } | 3522 | } |
3521 | 3523 | ||
3522 | static void store_xmsi_data(nic_t *nic) | 3524 | static void store_xmsi_data(struct s2io_nic *nic) |
3523 | { | 3525 | { |
3524 | XENA_dev_config_t __iomem *bar0 = nic->bar0; | 3526 | struct XENA_dev_config __iomem *bar0 = nic->bar0; |
3525 | u64 val64, addr, data; | 3527 | u64 val64, addr, data; |
3526 | int i; | 3528 | int i; |
3527 | 3529 | ||
@@ -3542,9 +3544,9 @@ static void store_xmsi_data(nic_t *nic) | |||
3542 | } | 3544 | } |
3543 | } | 3545 | } |
3544 | 3546 | ||
3545 | int s2io_enable_msi(nic_t *nic) | 3547 | int s2io_enable_msi(struct s2io_nic *nic) |
3546 | { | 3548 | { |
3547 | XENA_dev_config_t __iomem *bar0 = nic->bar0; | 3549 | struct XENA_dev_config __iomem *bar0 = nic->bar0; |
3548 | u16 msi_ctrl, msg_val; | 3550 | u16 msi_ctrl, msg_val; |
3549 | struct config_param *config = &nic->config; | 3551 | struct config_param *config = &nic->config; |
3550 | struct net_device *dev = nic->dev; | 3552 | struct net_device *dev = nic->dev; |
@@ -3592,9 +3594,9 @@ int s2io_enable_msi(nic_t *nic) | |||
3592 | return 0; | 3594 | return 0; |
3593 | } | 3595 | } |
3594 | 3596 | ||
3595 | static int s2io_enable_msi_x(nic_t *nic) | 3597 | static int s2io_enable_msi_x(struct s2io_nic *nic) |
3596 | { | 3598 | { |
3597 | XENA_dev_config_t __iomem *bar0 = nic->bar0; | 3599 | struct XENA_dev_config __iomem *bar0 = nic->bar0; |
3598 | u64 tx_mat, rx_mat; | 3600 | u64 tx_mat, rx_mat; |
3599 | u16 msi_control; /* Temp variable */ | 3601 | u16 msi_control; /* Temp variable */ |
3600 | int ret, i, j, msix_indx = 1; | 3602 | int ret, i, j, msix_indx = 1; |
@@ -3702,7 +3704,7 @@ static int s2io_enable_msi_x(nic_t *nic) | |||
3702 | 3704 | ||
3703 | static int s2io_open(struct net_device *dev) | 3705 | static int s2io_open(struct net_device *dev) |
3704 | { | 3706 | { |
3705 | nic_t *sp = dev->priv; | 3707 | struct s2io_nic *sp = dev->priv; |
3706 | int err = 0; | 3708 | int err = 0; |
3707 | 3709 | ||
3708 | /* | 3710 | /* |
@@ -3755,7 +3757,7 @@ hw_init_failed: | |||
3755 | 3757 | ||
3756 | static int s2io_close(struct net_device *dev) | 3758 | static int s2io_close(struct net_device *dev) |
3757 | { | 3759 | { |
3758 | nic_t *sp = dev->priv; | 3760 | struct s2io_nic *sp = dev->priv; |
3759 | 3761 | ||
3760 | flush_scheduled_work(); | 3762 | flush_scheduled_work(); |
3761 | netif_stop_queue(dev); | 3763 | netif_stop_queue(dev); |
@@ -3781,15 +3783,15 @@ static int s2io_close(struct net_device *dev) | |||
3781 | 3783 | ||
3782 | static int s2io_xmit(struct sk_buff *skb, struct net_device *dev) | 3784 | static int s2io_xmit(struct sk_buff *skb, struct net_device *dev) |
3783 | { | 3785 | { |
3784 | nic_t *sp = dev->priv; | 3786 | struct s2io_nic *sp = dev->priv; |
3785 | u16 frg_cnt, frg_len, i, queue, queue_len, put_off, get_off; | 3787 | u16 frg_cnt, frg_len, i, queue, queue_len, put_off, get_off; |
3786 | register u64 val64; | 3788 | register u64 val64; |
3787 | TxD_t *txdp; | 3789 | struct TxD *txdp; |
3788 | TxFIFO_element_t __iomem *tx_fifo; | 3790 | struct TxFIFO_element __iomem *tx_fifo; |
3789 | unsigned long flags; | 3791 | unsigned long flags; |
3790 | u16 vlan_tag = 0; | 3792 | u16 vlan_tag = 0; |
3791 | int vlan_priority = 0; | 3793 | int vlan_priority = 0; |
3792 | mac_info_t *mac_control; | 3794 | struct mac_info *mac_control; |
3793 | struct config_param *config; | 3795 | struct config_param *config; |
3794 | int offload_type; | 3796 | int offload_type; |
3795 | 3797 | ||
@@ -3817,7 +3819,7 @@ static int s2io_xmit(struct sk_buff *skb, struct net_device *dev) | |||
3817 | 3819 | ||
3818 | put_off = (u16) mac_control->fifos[queue].tx_curr_put_info.offset; | 3820 | put_off = (u16) mac_control->fifos[queue].tx_curr_put_info.offset; |
3819 | get_off = (u16) mac_control->fifos[queue].tx_curr_get_info.offset; | 3821 | get_off = (u16) mac_control->fifos[queue].tx_curr_get_info.offset; |
3820 | txdp = (TxD_t *) mac_control->fifos[queue].list_info[put_off]. | 3822 | txdp = (struct TxD *) mac_control->fifos[queue].list_info[put_off]. |
3821 | list_virt_addr; | 3823 | list_virt_addr; |
3822 | 3824 | ||
3823 | queue_len = mac_control->fifos[queue].tx_curr_put_info.fifo_len + 1; | 3825 | queue_len = mac_control->fifos[queue].tx_curr_put_info.fifo_len + 1; |
@@ -3944,13 +3946,13 @@ static int s2io_xmit(struct sk_buff *skb, struct net_device *dev) | |||
3944 | static void | 3946 | static void |
3945 | s2io_alarm_handle(unsigned long data) | 3947 | s2io_alarm_handle(unsigned long data) |
3946 | { | 3948 | { |
3947 | nic_t *sp = (nic_t *)data; | 3949 | struct s2io_nic *sp = (struct s2io_nic *)data; |
3948 | 3950 | ||
3949 | alarm_intr_handler(sp); | 3951 | alarm_intr_handler(sp); |
3950 | mod_timer(&sp->alarm_timer, jiffies + HZ / 2); | 3952 | mod_timer(&sp->alarm_timer, jiffies + HZ / 2); |
3951 | } | 3953 | } |
3952 | 3954 | ||
3953 | static int s2io_chk_rx_buffers(nic_t *sp, int rng_n) | 3955 | static int s2io_chk_rx_buffers(struct s2io_nic *sp, int rng_n) |
3954 | { | 3956 | { |
3955 | int rxb_size, level; | 3957 | int rxb_size, level; |
3956 | 3958 | ||
@@ -3982,9 +3984,9 @@ static int s2io_chk_rx_buffers(nic_t *sp, int rng_n) | |||
3982 | static irqreturn_t s2io_msi_handle(int irq, void *dev_id) | 3984 | static irqreturn_t s2io_msi_handle(int irq, void *dev_id) |
3983 | { | 3985 | { |
3984 | struct net_device *dev = (struct net_device *) dev_id; | 3986 | struct net_device *dev = (struct net_device *) dev_id; |
3985 | nic_t *sp = dev->priv; | 3987 | struct s2io_nic *sp = dev->priv; |
3986 | int i; | 3988 | int i; |
3987 | mac_info_t *mac_control; | 3989 | struct mac_info *mac_control; |
3988 | struct config_param *config; | 3990 | struct config_param *config; |
3989 | 3991 | ||
3990 | atomic_inc(&sp->isr_cnt); | 3992 | atomic_inc(&sp->isr_cnt); |
@@ -4014,8 +4016,8 @@ static irqreturn_t s2io_msi_handle(int irq, void *dev_id) | |||
4014 | 4016 | ||
4015 | static irqreturn_t s2io_msix_ring_handle(int irq, void *dev_id) | 4017 | static irqreturn_t s2io_msix_ring_handle(int irq, void *dev_id) |
4016 | { | 4018 | { |
4017 | ring_info_t *ring = (ring_info_t *)dev_id; | 4019 | struct ring_info *ring = (struct ring_info *)dev_id; |
4018 | nic_t *sp = ring->nic; | 4020 | struct s2io_nic *sp = ring->nic; |
4019 | 4021 | ||
4020 | atomic_inc(&sp->isr_cnt); | 4022 | atomic_inc(&sp->isr_cnt); |
4021 | 4023 | ||
@@ -4028,17 +4030,17 @@ static irqreturn_t s2io_msix_ring_handle(int irq, void *dev_id) | |||
4028 | 4030 | ||
4029 | static irqreturn_t s2io_msix_fifo_handle(int irq, void *dev_id) | 4031 | static irqreturn_t s2io_msix_fifo_handle(int irq, void *dev_id) |
4030 | { | 4032 | { |
4031 | fifo_info_t *fifo = (fifo_info_t *)dev_id; | 4033 | struct fifo_info *fifo = (struct fifo_info *)dev_id; |
4032 | nic_t *sp = fifo->nic; | 4034 | struct s2io_nic *sp = fifo->nic; |
4033 | 4035 | ||
4034 | atomic_inc(&sp->isr_cnt); | 4036 | atomic_inc(&sp->isr_cnt); |
4035 | tx_intr_handler(fifo); | 4037 | tx_intr_handler(fifo); |
4036 | atomic_dec(&sp->isr_cnt); | 4038 | atomic_dec(&sp->isr_cnt); |
4037 | return IRQ_HANDLED; | 4039 | return IRQ_HANDLED; |
4038 | } | 4040 | } |
4039 | static void s2io_txpic_intr_handle(nic_t *sp) | 4041 | static void s2io_txpic_intr_handle(struct s2io_nic *sp) |
4040 | { | 4042 | { |
4041 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 4043 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
4042 | u64 val64; | 4044 | u64 val64; |
4043 | 4045 | ||
4044 | val64 = readq(&bar0->pic_int_status); | 4046 | val64 = readq(&bar0->pic_int_status); |
@@ -4108,11 +4110,11 @@ static void s2io_txpic_intr_handle(nic_t *sp) | |||
4108 | static irqreturn_t s2io_isr(int irq, void *dev_id) | 4110 | static irqreturn_t s2io_isr(int irq, void *dev_id) |
4109 | { | 4111 | { |
4110 | struct net_device *dev = (struct net_device *) dev_id; | 4112 | struct net_device *dev = (struct net_device *) dev_id; |
4111 | nic_t *sp = dev->priv; | 4113 | struct s2io_nic *sp = dev->priv; |
4112 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 4114 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
4113 | int i; | 4115 | int i; |
4114 | u64 reason = 0; | 4116 | u64 reason = 0; |
4115 | mac_info_t *mac_control; | 4117 | struct mac_info *mac_control; |
4116 | struct config_param *config; | 4118 | struct config_param *config; |
4117 | 4119 | ||
4118 | atomic_inc(&sp->isr_cnt); | 4120 | atomic_inc(&sp->isr_cnt); |
@@ -4198,9 +4200,9 @@ static irqreturn_t s2io_isr(int irq, void *dev_id) | |||
4198 | /** | 4200 | /** |
4199 | * s2io_updt_stats - | 4201 | * s2io_updt_stats - |
4200 | */ | 4202 | */ |
4201 | static void s2io_updt_stats(nic_t *sp) | 4203 | static void s2io_updt_stats(struct s2io_nic *sp) |
4202 | { | 4204 | { |
4203 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 4205 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
4204 | u64 val64; | 4206 | u64 val64; |
4205 | int cnt = 0; | 4207 | int cnt = 0; |
4206 | 4208 | ||
@@ -4219,7 +4221,7 @@ static void s2io_updt_stats(nic_t *sp) | |||
4219 | break; /* Updt failed */ | 4221 | break; /* Updt failed */ |
4220 | } while(1); | 4222 | } while(1); |
4221 | } else { | 4223 | } else { |
4222 | memset(sp->mac_control.stats_info, 0, sizeof(StatInfo_t)); | 4224 | memset(sp->mac_control.stats_info, 0, sizeof(struct stat_block)); |
4223 | } | 4225 | } |
4224 | } | 4226 | } |
4225 | 4227 | ||
@@ -4235,8 +4237,8 @@ static void s2io_updt_stats(nic_t *sp) | |||
4235 | 4237 | ||
4236 | static struct net_device_stats *s2io_get_stats(struct net_device *dev) | 4238 | static struct net_device_stats *s2io_get_stats(struct net_device *dev) |
4237 | { | 4239 | { |
4238 | nic_t *sp = dev->priv; | 4240 | struct s2io_nic *sp = dev->priv; |
4239 | mac_info_t *mac_control; | 4241 | struct mac_info *mac_control; |
4240 | struct config_param *config; | 4242 | struct config_param *config; |
4241 | 4243 | ||
4242 | 4244 | ||
@@ -4277,8 +4279,8 @@ static void s2io_set_multicast(struct net_device *dev) | |||
4277 | { | 4279 | { |
4278 | int i, j, prev_cnt; | 4280 | int i, j, prev_cnt; |
4279 | struct dev_mc_list *mclist; | 4281 | struct dev_mc_list *mclist; |
4280 | nic_t *sp = dev->priv; | 4282 | struct s2io_nic *sp = dev->priv; |
4281 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 4283 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
4282 | u64 val64 = 0, multi_mac = 0x010203040506ULL, mask = | 4284 | u64 val64 = 0, multi_mac = 0x010203040506ULL, mask = |
4283 | 0xfeffffffffffULL; | 4285 | 0xfeffffffffffULL; |
4284 | u64 dis_addr = 0xffffffffffffULL, mac_addr = 0; | 4286 | u64 dis_addr = 0xffffffffffffULL, mac_addr = 0; |
@@ -4431,8 +4433,8 @@ static void s2io_set_multicast(struct net_device *dev) | |||
4431 | 4433 | ||
4432 | static int s2io_set_mac_addr(struct net_device *dev, u8 * addr) | 4434 | static int s2io_set_mac_addr(struct net_device *dev, u8 * addr) |
4433 | { | 4435 | { |
4434 | nic_t *sp = dev->priv; | 4436 | struct s2io_nic *sp = dev->priv; |
4435 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 4437 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
4436 | register u64 val64, mac_addr = 0; | 4438 | register u64 val64, mac_addr = 0; |
4437 | int i; | 4439 | int i; |
4438 | 4440 | ||
@@ -4478,7 +4480,7 @@ static int s2io_set_mac_addr(struct net_device *dev, u8 * addr) | |||
4478 | static int s2io_ethtool_sset(struct net_device *dev, | 4480 | static int s2io_ethtool_sset(struct net_device *dev, |
4479 | struct ethtool_cmd *info) | 4481 | struct ethtool_cmd *info) |
4480 | { | 4482 | { |
4481 | nic_t *sp = dev->priv; | 4483 | struct s2io_nic *sp = dev->priv; |
4482 | if ((info->autoneg == AUTONEG_ENABLE) || | 4484 | if ((info->autoneg == AUTONEG_ENABLE) || |
4483 | (info->speed != SPEED_10000) || (info->duplex != DUPLEX_FULL)) | 4485 | (info->speed != SPEED_10000) || (info->duplex != DUPLEX_FULL)) |
4484 | return -EINVAL; | 4486 | return -EINVAL; |
@@ -4504,7 +4506,7 @@ static int s2io_ethtool_sset(struct net_device *dev, | |||
4504 | 4506 | ||
4505 | static int s2io_ethtool_gset(struct net_device *dev, struct ethtool_cmd *info) | 4507 | static int s2io_ethtool_gset(struct net_device *dev, struct ethtool_cmd *info) |
4506 | { | 4508 | { |
4507 | nic_t *sp = dev->priv; | 4509 | struct s2io_nic *sp = dev->priv; |
4508 | info->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE); | 4510 | info->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE); |
4509 | info->advertising = (SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE); | 4511 | info->advertising = (SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE); |
4510 | info->port = PORT_FIBRE; | 4512 | info->port = PORT_FIBRE; |
@@ -4537,7 +4539,7 @@ static int s2io_ethtool_gset(struct net_device *dev, struct ethtool_cmd *info) | |||
4537 | static void s2io_ethtool_gdrvinfo(struct net_device *dev, | 4539 | static void s2io_ethtool_gdrvinfo(struct net_device *dev, |
4538 | struct ethtool_drvinfo *info) | 4540 | struct ethtool_drvinfo *info) |
4539 | { | 4541 | { |
4540 | nic_t *sp = dev->priv; | 4542 | struct s2io_nic *sp = dev->priv; |
4541 | 4543 | ||
4542 | strncpy(info->driver, s2io_driver_name, sizeof(info->driver)); | 4544 | strncpy(info->driver, s2io_driver_name, sizeof(info->driver)); |
4543 | strncpy(info->version, s2io_driver_version, sizeof(info->version)); | 4545 | strncpy(info->version, s2io_driver_version, sizeof(info->version)); |
@@ -4569,7 +4571,7 @@ static void s2io_ethtool_gregs(struct net_device *dev, | |||
4569 | int i; | 4571 | int i; |
4570 | u64 reg; | 4572 | u64 reg; |
4571 | u8 *reg_space = (u8 *) space; | 4573 | u8 *reg_space = (u8 *) space; |
4572 | nic_t *sp = dev->priv; | 4574 | struct s2io_nic *sp = dev->priv; |
4573 | 4575 | ||
4574 | regs->len = XENA_REG_SPACE; | 4576 | regs->len = XENA_REG_SPACE; |
4575 | regs->version = sp->pdev->subsystem_device; | 4577 | regs->version = sp->pdev->subsystem_device; |
@@ -4591,8 +4593,8 @@ static void s2io_ethtool_gregs(struct net_device *dev, | |||
4591 | */ | 4593 | */ |
4592 | static void s2io_phy_id(unsigned long data) | 4594 | static void s2io_phy_id(unsigned long data) |
4593 | { | 4595 | { |
4594 | nic_t *sp = (nic_t *) data; | 4596 | struct s2io_nic *sp = (struct s2io_nic *) data; |
4595 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 4597 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
4596 | u64 val64 = 0; | 4598 | u64 val64 = 0; |
4597 | u16 subid; | 4599 | u16 subid; |
4598 | 4600 | ||
@@ -4629,8 +4631,8 @@ static void s2io_phy_id(unsigned long data) | |||
4629 | static int s2io_ethtool_idnic(struct net_device *dev, u32 data) | 4631 | static int s2io_ethtool_idnic(struct net_device *dev, u32 data) |
4630 | { | 4632 | { |
4631 | u64 val64 = 0, last_gpio_ctrl_val; | 4633 | u64 val64 = 0, last_gpio_ctrl_val; |
4632 | nic_t *sp = dev->priv; | 4634 | struct s2io_nic *sp = dev->priv; |
4633 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 4635 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
4634 | u16 subid; | 4636 | u16 subid; |
4635 | 4637 | ||
4636 | subid = sp->pdev->subsystem_device; | 4638 | subid = sp->pdev->subsystem_device; |
@@ -4678,8 +4680,8 @@ static void s2io_ethtool_getpause_data(struct net_device *dev, | |||
4678 | struct ethtool_pauseparam *ep) | 4680 | struct ethtool_pauseparam *ep) |
4679 | { | 4681 | { |
4680 | u64 val64; | 4682 | u64 val64; |
4681 | nic_t *sp = dev->priv; | 4683 | struct s2io_nic *sp = dev->priv; |
4682 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 4684 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
4683 | 4685 | ||
4684 | val64 = readq(&bar0->rmac_pause_cfg); | 4686 | val64 = readq(&bar0->rmac_pause_cfg); |
4685 | if (val64 & RMAC_PAUSE_GEN_ENABLE) | 4687 | if (val64 & RMAC_PAUSE_GEN_ENABLE) |
@@ -4705,8 +4707,8 @@ static int s2io_ethtool_setpause_data(struct net_device *dev, | |||
4705 | struct ethtool_pauseparam *ep) | 4707 | struct ethtool_pauseparam *ep) |
4706 | { | 4708 | { |
4707 | u64 val64; | 4709 | u64 val64; |
4708 | nic_t *sp = dev->priv; | 4710 | struct s2io_nic *sp = dev->priv; |
4709 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 4711 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
4710 | 4712 | ||
4711 | val64 = readq(&bar0->rmac_pause_cfg); | 4713 | val64 = readq(&bar0->rmac_pause_cfg); |
4712 | if (ep->tx_pause) | 4714 | if (ep->tx_pause) |
@@ -4738,12 +4740,12 @@ static int s2io_ethtool_setpause_data(struct net_device *dev, | |||
4738 | */ | 4740 | */ |
4739 | 4741 | ||
4740 | #define S2IO_DEV_ID 5 | 4742 | #define S2IO_DEV_ID 5 |
4741 | static int read_eeprom(nic_t * sp, int off, u64 * data) | 4743 | static int read_eeprom(struct s2io_nic * sp, int off, u64 * data) |
4742 | { | 4744 | { |
4743 | int ret = -1; | 4745 | int ret = -1; |
4744 | u32 exit_cnt = 0; | 4746 | u32 exit_cnt = 0; |
4745 | u64 val64; | 4747 | u64 val64; |
4746 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 4748 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
4747 | 4749 | ||
4748 | if (sp->device_type == XFRAME_I_DEVICE) { | 4750 | if (sp->device_type == XFRAME_I_DEVICE) { |
4749 | val64 = I2C_CONTROL_DEV_ID(S2IO_DEV_ID) | I2C_CONTROL_ADDR(off) | | 4751 | val64 = I2C_CONTROL_DEV_ID(S2IO_DEV_ID) | I2C_CONTROL_ADDR(off) | |
@@ -4803,11 +4805,11 @@ static int read_eeprom(nic_t * sp, int off, u64 * data) | |||
4803 | * 0 on success, -1 on failure. | 4805 | * 0 on success, -1 on failure. |
4804 | */ | 4806 | */ |
4805 | 4807 | ||
4806 | static int write_eeprom(nic_t * sp, int off, u64 data, int cnt) | 4808 | static int write_eeprom(struct s2io_nic * sp, int off, u64 data, int cnt) |
4807 | { | 4809 | { |
4808 | int exit_cnt = 0, ret = -1; | 4810 | int exit_cnt = 0, ret = -1; |
4809 | u64 val64; | 4811 | u64 val64; |
4810 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 4812 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
4811 | 4813 | ||
4812 | if (sp->device_type == XFRAME_I_DEVICE) { | 4814 | if (sp->device_type == XFRAME_I_DEVICE) { |
4813 | val64 = I2C_CONTROL_DEV_ID(S2IO_DEV_ID) | I2C_CONTROL_ADDR(off) | | 4815 | val64 = I2C_CONTROL_DEV_ID(S2IO_DEV_ID) | I2C_CONTROL_ADDR(off) | |
@@ -4852,7 +4854,7 @@ static int write_eeprom(nic_t * sp, int off, u64 data, int cnt) | |||
4852 | } | 4854 | } |
4853 | return ret; | 4855 | return ret; |
4854 | } | 4856 | } |
4855 | static void s2io_vpd_read(nic_t *nic) | 4857 | static void s2io_vpd_read(struct s2io_nic *nic) |
4856 | { | 4858 | { |
4857 | u8 *vpd_data; | 4859 | u8 *vpd_data; |
4858 | u8 data; | 4860 | u8 data; |
@@ -4931,7 +4933,7 @@ static int s2io_ethtool_geeprom(struct net_device *dev, | |||
4931 | { | 4933 | { |
4932 | u32 i, valid; | 4934 | u32 i, valid; |
4933 | u64 data; | 4935 | u64 data; |
4934 | nic_t *sp = dev->priv; | 4936 | struct s2io_nic *sp = dev->priv; |
4935 | 4937 | ||
4936 | eeprom->magic = sp->pdev->vendor | (sp->pdev->device << 16); | 4938 | eeprom->magic = sp->pdev->vendor | (sp->pdev->device << 16); |
4937 | 4939 | ||
@@ -4969,7 +4971,7 @@ static int s2io_ethtool_seeprom(struct net_device *dev, | |||
4969 | { | 4971 | { |
4970 | int len = eeprom->len, cnt = 0; | 4972 | int len = eeprom->len, cnt = 0; |
4971 | u64 valid = 0, data; | 4973 | u64 valid = 0, data; |
4972 | nic_t *sp = dev->priv; | 4974 | struct s2io_nic *sp = dev->priv; |
4973 | 4975 | ||
4974 | if (eeprom->magic != (sp->pdev->vendor | (sp->pdev->device << 16))) { | 4976 | if (eeprom->magic != (sp->pdev->vendor | (sp->pdev->device << 16))) { |
4975 | DBG_PRINT(ERR_DBG, | 4977 | DBG_PRINT(ERR_DBG, |
@@ -5013,9 +5015,9 @@ static int s2io_ethtool_seeprom(struct net_device *dev, | |||
5013 | * 0 on success. | 5015 | * 0 on success. |
5014 | */ | 5016 | */ |
5015 | 5017 | ||
5016 | static int s2io_register_test(nic_t * sp, uint64_t * data) | 5018 | static int s2io_register_test(struct s2io_nic * sp, uint64_t * data) |
5017 | { | 5019 | { |
5018 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 5020 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
5019 | u64 val64 = 0, exp_val; | 5021 | u64 val64 = 0, exp_val; |
5020 | int fail = 0; | 5022 | int fail = 0; |
5021 | 5023 | ||
@@ -5080,7 +5082,7 @@ static int s2io_register_test(nic_t * sp, uint64_t * data) | |||
5080 | * 0 on success. | 5082 | * 0 on success. |
5081 | */ | 5083 | */ |
5082 | 5084 | ||
5083 | static int s2io_eeprom_test(nic_t * sp, uint64_t * data) | 5085 | static int s2io_eeprom_test(struct s2io_nic * sp, uint64_t * data) |
5084 | { | 5086 | { |
5085 | int fail = 0; | 5087 | int fail = 0; |
5086 | u64 ret_data, org_4F0, org_7F0; | 5088 | u64 ret_data, org_4F0, org_7F0; |
@@ -5182,7 +5184,7 @@ static int s2io_eeprom_test(nic_t * sp, uint64_t * data) | |||
5182 | * 0 on success and -1 on failure. | 5184 | * 0 on success and -1 on failure. |
5183 | */ | 5185 | */ |
5184 | 5186 | ||
5185 | static int s2io_bist_test(nic_t * sp, uint64_t * data) | 5187 | static int s2io_bist_test(struct s2io_nic * sp, uint64_t * data) |
5186 | { | 5188 | { |
5187 | u8 bist = 0; | 5189 | u8 bist = 0; |
5188 | int cnt = 0, ret = -1; | 5190 | int cnt = 0, ret = -1; |
@@ -5218,9 +5220,9 @@ static int s2io_bist_test(nic_t * sp, uint64_t * data) | |||
5218 | * 0 on success. | 5220 | * 0 on success. |
5219 | */ | 5221 | */ |
5220 | 5222 | ||
5221 | static int s2io_link_test(nic_t * sp, uint64_t * data) | 5223 | static int s2io_link_test(struct s2io_nic * sp, uint64_t * data) |
5222 | { | 5224 | { |
5223 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 5225 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
5224 | u64 val64; | 5226 | u64 val64; |
5225 | 5227 | ||
5226 | val64 = readq(&bar0->adapter_status); | 5228 | val64 = readq(&bar0->adapter_status); |
@@ -5245,9 +5247,9 @@ static int s2io_link_test(nic_t * sp, uint64_t * data) | |||
5245 | * 0 on success. | 5247 | * 0 on success. |
5246 | */ | 5248 | */ |
5247 | 5249 | ||
5248 | static int s2io_rldram_test(nic_t * sp, uint64_t * data) | 5250 | static int s2io_rldram_test(struct s2io_nic * sp, uint64_t * data) |
5249 | { | 5251 | { |
5250 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 5252 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
5251 | u64 val64; | 5253 | u64 val64; |
5252 | int cnt, iteration = 0, test_fail = 0; | 5254 | int cnt, iteration = 0, test_fail = 0; |
5253 | 5255 | ||
@@ -5349,7 +5351,7 @@ static void s2io_ethtool_test(struct net_device *dev, | |||
5349 | struct ethtool_test *ethtest, | 5351 | struct ethtool_test *ethtest, |
5350 | uint64_t * data) | 5352 | uint64_t * data) |
5351 | { | 5353 | { |
5352 | nic_t *sp = dev->priv; | 5354 | struct s2io_nic *sp = dev->priv; |
5353 | int orig_state = netif_running(sp->dev); | 5355 | int orig_state = netif_running(sp->dev); |
5354 | 5356 | ||
5355 | if (ethtest->flags == ETH_TEST_FL_OFFLINE) { | 5357 | if (ethtest->flags == ETH_TEST_FL_OFFLINE) { |
@@ -5405,8 +5407,8 @@ static void s2io_get_ethtool_stats(struct net_device *dev, | |||
5405 | u64 * tmp_stats) | 5407 | u64 * tmp_stats) |
5406 | { | 5408 | { |
5407 | int i = 0; | 5409 | int i = 0; |
5408 | nic_t *sp = dev->priv; | 5410 | struct s2io_nic *sp = dev->priv; |
5409 | StatInfo_t *stat_info = sp->mac_control.stats_info; | 5411 | struct stat_block *stat_info = sp->mac_control.stats_info; |
5410 | 5412 | ||
5411 | s2io_updt_stats(sp); | 5413 | s2io_updt_stats(sp); |
5412 | tmp_stats[i++] = | 5414 | tmp_stats[i++] = |
@@ -5633,14 +5635,14 @@ static int s2io_ethtool_get_regs_len(struct net_device *dev) | |||
5633 | 5635 | ||
5634 | static u32 s2io_ethtool_get_rx_csum(struct net_device * dev) | 5636 | static u32 s2io_ethtool_get_rx_csum(struct net_device * dev) |
5635 | { | 5637 | { |
5636 | nic_t *sp = dev->priv; | 5638 | struct s2io_nic *sp = dev->priv; |
5637 | 5639 | ||
5638 | return (sp->rx_csum); | 5640 | return (sp->rx_csum); |
5639 | } | 5641 | } |
5640 | 5642 | ||
5641 | static int s2io_ethtool_set_rx_csum(struct net_device *dev, u32 data) | 5643 | static int s2io_ethtool_set_rx_csum(struct net_device *dev, u32 data) |
5642 | { | 5644 | { |
5643 | nic_t *sp = dev->priv; | 5645 | struct s2io_nic *sp = dev->priv; |
5644 | 5646 | ||
5645 | if (data) | 5647 | if (data) |
5646 | sp->rx_csum = 1; | 5648 | sp->rx_csum = 1; |
@@ -5761,7 +5763,7 @@ static int s2io_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
5761 | 5763 | ||
5762 | static int s2io_change_mtu(struct net_device *dev, int new_mtu) | 5764 | static int s2io_change_mtu(struct net_device *dev, int new_mtu) |
5763 | { | 5765 | { |
5764 | nic_t *sp = dev->priv; | 5766 | struct s2io_nic *sp = dev->priv; |
5765 | 5767 | ||
5766 | if ((new_mtu < MIN_MTU) || (new_mtu > S2IO_JUMBO_SIZE)) { | 5768 | if ((new_mtu < MIN_MTU) || (new_mtu > S2IO_JUMBO_SIZE)) { |
5767 | DBG_PRINT(ERR_DBG, "%s: MTU size is invalid.\n", | 5769 | DBG_PRINT(ERR_DBG, "%s: MTU size is invalid.\n", |
@@ -5780,7 +5782,7 @@ static int s2io_change_mtu(struct net_device *dev, int new_mtu) | |||
5780 | if (netif_queue_stopped(dev)) | 5782 | if (netif_queue_stopped(dev)) |
5781 | netif_wake_queue(dev); | 5783 | netif_wake_queue(dev); |
5782 | } else { /* Device is down */ | 5784 | } else { /* Device is down */ |
5783 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 5785 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
5784 | u64 val64 = new_mtu; | 5786 | u64 val64 = new_mtu; |
5785 | 5787 | ||
5786 | writeq(vBIT(val64, 2, 14), &bar0->rmac_max_pyld_len); | 5788 | writeq(vBIT(val64, 2, 14), &bar0->rmac_max_pyld_len); |
@@ -5805,9 +5807,9 @@ static int s2io_change_mtu(struct net_device *dev, int new_mtu) | |||
5805 | static void s2io_tasklet(unsigned long dev_addr) | 5807 | static void s2io_tasklet(unsigned long dev_addr) |
5806 | { | 5808 | { |
5807 | struct net_device *dev = (struct net_device *) dev_addr; | 5809 | struct net_device *dev = (struct net_device *) dev_addr; |
5808 | nic_t *sp = dev->priv; | 5810 | struct s2io_nic *sp = dev->priv; |
5809 | int i, ret; | 5811 | int i, ret; |
5810 | mac_info_t *mac_control; | 5812 | struct mac_info *mac_control; |
5811 | struct config_param *config; | 5813 | struct config_param *config; |
5812 | 5814 | ||
5813 | mac_control = &sp->mac_control; | 5815 | mac_control = &sp->mac_control; |
@@ -5840,9 +5842,9 @@ static void s2io_tasklet(unsigned long dev_addr) | |||
5840 | 5842 | ||
5841 | static void s2io_set_link(struct work_struct *work) | 5843 | static void s2io_set_link(struct work_struct *work) |
5842 | { | 5844 | { |
5843 | nic_t *nic = container_of(work, nic_t, set_link_task); | 5845 | struct s2io_nic *nic = container_of(work, struct s2io_nic, set_link_task); |
5844 | struct net_device *dev = nic->dev; | 5846 | struct net_device *dev = nic->dev; |
5845 | XENA_dev_config_t __iomem *bar0 = nic->bar0; | 5847 | struct XENA_dev_config __iomem *bar0 = nic->bar0; |
5846 | register u64 val64; | 5848 | register u64 val64; |
5847 | u16 subid; | 5849 | u16 subid; |
5848 | 5850 | ||
@@ -5904,9 +5906,10 @@ static void s2io_set_link(struct work_struct *work) | |||
5904 | clear_bit(0, &(nic->link_state)); | 5906 | clear_bit(0, &(nic->link_state)); |
5905 | } | 5907 | } |
5906 | 5908 | ||
5907 | static int set_rxd_buffer_pointer(nic_t *sp, RxD_t *rxdp, buffAdd_t *ba, | 5909 | static int set_rxd_buffer_pointer(struct s2io_nic *sp, struct RxD_t *rxdp, |
5908 | struct sk_buff **skb, u64 *temp0, u64 *temp1, | 5910 | struct buffAdd *ba, |
5909 | u64 *temp2, int size) | 5911 | struct sk_buff **skb, u64 *temp0, u64 *temp1, |
5912 | u64 *temp2, int size) | ||
5910 | { | 5913 | { |
5911 | struct net_device *dev = sp->dev; | 5914 | struct net_device *dev = sp->dev; |
5912 | struct sk_buff *frag_list; | 5915 | struct sk_buff *frag_list; |
@@ -5920,7 +5923,7 @@ static int set_rxd_buffer_pointer(nic_t *sp, RxD_t *rxdp, buffAdd_t *ba, | |||
5920 | * using same mapped address for the Rxd | 5923 | * using same mapped address for the Rxd |
5921 | * buffer pointer | 5924 | * buffer pointer |
5922 | */ | 5925 | */ |
5923 | ((RxD1_t*)rxdp)->Buffer0_ptr = *temp0; | 5926 | ((struct RxD1*)rxdp)->Buffer0_ptr = *temp0; |
5924 | } else { | 5927 | } else { |
5925 | *skb = dev_alloc_skb(size); | 5928 | *skb = dev_alloc_skb(size); |
5926 | if (!(*skb)) { | 5929 | if (!(*skb)) { |
@@ -5932,7 +5935,7 @@ static int set_rxd_buffer_pointer(nic_t *sp, RxD_t *rxdp, buffAdd_t *ba, | |||
5932 | * such it will be used for next rxd whose | 5935 | * such it will be used for next rxd whose |
5933 | * Host Control is NULL | 5936 | * Host Control is NULL |
5934 | */ | 5937 | */ |
5935 | ((RxD1_t*)rxdp)->Buffer0_ptr = *temp0 = | 5938 | ((struct RxD1*)rxdp)->Buffer0_ptr = *temp0 = |
5936 | pci_map_single( sp->pdev, (*skb)->data, | 5939 | pci_map_single( sp->pdev, (*skb)->data, |
5937 | size - NET_IP_ALIGN, | 5940 | size - NET_IP_ALIGN, |
5938 | PCI_DMA_FROMDEVICE); | 5941 | PCI_DMA_FROMDEVICE); |
@@ -5941,9 +5944,9 @@ static int set_rxd_buffer_pointer(nic_t *sp, RxD_t *rxdp, buffAdd_t *ba, | |||
5941 | } else if ((sp->rxd_mode == RXD_MODE_3B) && (rxdp->Host_Control == 0)) { | 5944 | } else if ((sp->rxd_mode == RXD_MODE_3B) && (rxdp->Host_Control == 0)) { |
5942 | /* Two buffer Mode */ | 5945 | /* Two buffer Mode */ |
5943 | if (*skb) { | 5946 | if (*skb) { |
5944 | ((RxD3_t*)rxdp)->Buffer2_ptr = *temp2; | 5947 | ((struct RxD3*)rxdp)->Buffer2_ptr = *temp2; |
5945 | ((RxD3_t*)rxdp)->Buffer0_ptr = *temp0; | 5948 | ((struct RxD3*)rxdp)->Buffer0_ptr = *temp0; |
5946 | ((RxD3_t*)rxdp)->Buffer1_ptr = *temp1; | 5949 | ((struct RxD3*)rxdp)->Buffer1_ptr = *temp1; |
5947 | } else { | 5950 | } else { |
5948 | *skb = dev_alloc_skb(size); | 5951 | *skb = dev_alloc_skb(size); |
5949 | if (!(*skb)) { | 5952 | if (!(*skb)) { |
@@ -5951,26 +5954,26 @@ static int set_rxd_buffer_pointer(nic_t *sp, RxD_t *rxdp, buffAdd_t *ba, | |||
5951 | dev->name); | 5954 | dev->name); |
5952 | return -ENOMEM; | 5955 | return -ENOMEM; |
5953 | } | 5956 | } |
5954 | ((RxD3_t*)rxdp)->Buffer2_ptr = *temp2 = | 5957 | ((struct RxD3*)rxdp)->Buffer2_ptr = *temp2 = |
5955 | pci_map_single(sp->pdev, (*skb)->data, | 5958 | pci_map_single(sp->pdev, (*skb)->data, |
5956 | dev->mtu + 4, | 5959 | dev->mtu + 4, |
5957 | PCI_DMA_FROMDEVICE); | 5960 | PCI_DMA_FROMDEVICE); |
5958 | ((RxD3_t*)rxdp)->Buffer0_ptr = *temp0 = | 5961 | ((struct RxD3*)rxdp)->Buffer0_ptr = *temp0 = |
5959 | pci_map_single( sp->pdev, ba->ba_0, BUF0_LEN, | 5962 | pci_map_single( sp->pdev, ba->ba_0, BUF0_LEN, |
5960 | PCI_DMA_FROMDEVICE); | 5963 | PCI_DMA_FROMDEVICE); |
5961 | rxdp->Host_Control = (unsigned long) (*skb); | 5964 | rxdp->Host_Control = (unsigned long) (*skb); |
5962 | 5965 | ||
5963 | /* Buffer-1 will be dummy buffer not used */ | 5966 | /* Buffer-1 will be dummy buffer not used */ |
5964 | ((RxD3_t*)rxdp)->Buffer1_ptr = *temp1 = | 5967 | ((struct RxD3*)rxdp)->Buffer1_ptr = *temp1 = |
5965 | pci_map_single(sp->pdev, ba->ba_1, BUF1_LEN, | 5968 | pci_map_single(sp->pdev, ba->ba_1, BUF1_LEN, |
5966 | PCI_DMA_FROMDEVICE); | 5969 | PCI_DMA_FROMDEVICE); |
5967 | } | 5970 | } |
5968 | } else if ((rxdp->Host_Control == 0)) { | 5971 | } else if ((rxdp->Host_Control == 0)) { |
5969 | /* Three buffer mode */ | 5972 | /* Three buffer mode */ |
5970 | if (*skb) { | 5973 | if (*skb) { |
5971 | ((RxD3_t*)rxdp)->Buffer0_ptr = *temp0; | 5974 | ((struct RxD3*)rxdp)->Buffer0_ptr = *temp0; |
5972 | ((RxD3_t*)rxdp)->Buffer1_ptr = *temp1; | 5975 | ((struct RxD3*)rxdp)->Buffer1_ptr = *temp1; |
5973 | ((RxD3_t*)rxdp)->Buffer2_ptr = *temp2; | 5976 | ((struct RxD3*)rxdp)->Buffer2_ptr = *temp2; |
5974 | } else { | 5977 | } else { |
5975 | *skb = dev_alloc_skb(size); | 5978 | *skb = dev_alloc_skb(size); |
5976 | if (!(*skb)) { | 5979 | if (!(*skb)) { |
@@ -5978,11 +5981,11 @@ static int set_rxd_buffer_pointer(nic_t *sp, RxD_t *rxdp, buffAdd_t *ba, | |||
5978 | dev->name); | 5981 | dev->name); |
5979 | return -ENOMEM; | 5982 | return -ENOMEM; |
5980 | } | 5983 | } |
5981 | ((RxD3_t*)rxdp)->Buffer0_ptr = *temp0 = | 5984 | ((struct RxD3*)rxdp)->Buffer0_ptr = *temp0 = |
5982 | pci_map_single(sp->pdev, ba->ba_0, BUF0_LEN, | 5985 | pci_map_single(sp->pdev, ba->ba_0, BUF0_LEN, |
5983 | PCI_DMA_FROMDEVICE); | 5986 | PCI_DMA_FROMDEVICE); |
5984 | /* Buffer-1 receives L3/L4 headers */ | 5987 | /* Buffer-1 receives L3/L4 headers */ |
5985 | ((RxD3_t*)rxdp)->Buffer1_ptr = *temp1 = | 5988 | ((struct RxD3*)rxdp)->Buffer1_ptr = *temp1 = |
5986 | pci_map_single( sp->pdev, (*skb)->data, | 5989 | pci_map_single( sp->pdev, (*skb)->data, |
5987 | l3l4hdr_size + 4, | 5990 | l3l4hdr_size + 4, |
5988 | PCI_DMA_FROMDEVICE); | 5991 | PCI_DMA_FROMDEVICE); |
@@ -6002,14 +6005,15 @@ static int set_rxd_buffer_pointer(nic_t *sp, RxD_t *rxdp, buffAdd_t *ba, | |||
6002 | /* | 6005 | /* |
6003 | * Buffer-2 receives L4 data payload | 6006 | * Buffer-2 receives L4 data payload |
6004 | */ | 6007 | */ |
6005 | ((RxD3_t*)rxdp)->Buffer2_ptr = *temp2 = | 6008 | ((struct RxD3*)rxdp)->Buffer2_ptr = *temp2 = |
6006 | pci_map_single( sp->pdev, frag_list->data, | 6009 | pci_map_single( sp->pdev, frag_list->data, |
6007 | dev->mtu, PCI_DMA_FROMDEVICE); | 6010 | dev->mtu, PCI_DMA_FROMDEVICE); |
6008 | } | 6011 | } |
6009 | } | 6012 | } |
6010 | return 0; | 6013 | return 0; |
6011 | } | 6014 | } |
6012 | static void set_rxd_buffer_size(nic_t *sp, RxD_t *rxdp, int size) | 6015 | static void set_rxd_buffer_size(struct s2io_nic *sp, struct RxD_t *rxdp, |
6016 | int size) | ||
6013 | { | 6017 | { |
6014 | struct net_device *dev = sp->dev; | 6018 | struct net_device *dev = sp->dev; |
6015 | if (sp->rxd_mode == RXD_MODE_1) { | 6019 | if (sp->rxd_mode == RXD_MODE_1) { |
@@ -6025,15 +6029,15 @@ static void set_rxd_buffer_size(nic_t *sp, RxD_t *rxdp, int size) | |||
6025 | } | 6029 | } |
6026 | } | 6030 | } |
6027 | 6031 | ||
6028 | static int rxd_owner_bit_reset(nic_t *sp) | 6032 | static int rxd_owner_bit_reset(struct s2io_nic *sp) |
6029 | { | 6033 | { |
6030 | int i, j, k, blk_cnt = 0, size; | 6034 | int i, j, k, blk_cnt = 0, size; |
6031 | mac_info_t * mac_control = &sp->mac_control; | 6035 | struct mac_info * mac_control = &sp->mac_control; |
6032 | struct config_param *config = &sp->config; | 6036 | struct config_param *config = &sp->config; |
6033 | struct net_device *dev = sp->dev; | 6037 | struct net_device *dev = sp->dev; |
6034 | RxD_t *rxdp = NULL; | 6038 | struct RxD_t *rxdp = NULL; |
6035 | struct sk_buff *skb = NULL; | 6039 | struct sk_buff *skb = NULL; |
6036 | buffAdd_t *ba = NULL; | 6040 | struct buffAdd *ba = NULL; |
6037 | u64 temp0_64 = 0, temp1_64 = 0, temp2_64 = 0; | 6041 | u64 temp0_64 = 0, temp1_64 = 0, temp2_64 = 0; |
6038 | 6042 | ||
6039 | /* Calculate the size based on ring mode */ | 6043 | /* Calculate the size based on ring mode */ |
@@ -6072,7 +6076,7 @@ static int rxd_owner_bit_reset(nic_t *sp) | |||
6072 | 6076 | ||
6073 | } | 6077 | } |
6074 | 6078 | ||
6075 | static int s2io_add_isr(nic_t * sp) | 6079 | static int s2io_add_isr(struct s2io_nic * sp) |
6076 | { | 6080 | { |
6077 | int ret = 0; | 6081 | int ret = 0; |
6078 | struct net_device *dev = sp->dev; | 6082 | struct net_device *dev = sp->dev; |
@@ -6087,7 +6091,7 @@ static int s2io_add_isr(nic_t * sp) | |||
6087 | sp->intr_type = INTA; | 6091 | sp->intr_type = INTA; |
6088 | } | 6092 | } |
6089 | 6093 | ||
6090 | /* Store the values of the MSIX table in the nic_t structure */ | 6094 | /* Store the values of the MSIX table in the struct s2io_nic structure */ |
6091 | store_xmsi_data(sp); | 6095 | store_xmsi_data(sp); |
6092 | 6096 | ||
6093 | /* After proper initialization of H/W, register ISR */ | 6097 | /* After proper initialization of H/W, register ISR */ |
@@ -6142,7 +6146,7 @@ static int s2io_add_isr(nic_t * sp) | |||
6142 | } | 6146 | } |
6143 | return 0; | 6147 | return 0; |
6144 | } | 6148 | } |
6145 | static void s2io_rem_isr(nic_t * sp) | 6149 | static void s2io_rem_isr(struct s2io_nic * sp) |
6146 | { | 6150 | { |
6147 | int cnt = 0; | 6151 | int cnt = 0; |
6148 | struct net_device *dev = sp->dev; | 6152 | struct net_device *dev = sp->dev; |
@@ -6184,10 +6188,10 @@ static void s2io_rem_isr(nic_t * sp) | |||
6184 | } while(cnt < 5); | 6188 | } while(cnt < 5); |
6185 | } | 6189 | } |
6186 | 6190 | ||
6187 | static void s2io_card_down(nic_t * sp) | 6191 | static void s2io_card_down(struct s2io_nic * sp) |
6188 | { | 6192 | { |
6189 | int cnt = 0; | 6193 | int cnt = 0; |
6190 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 6194 | struct XENA_dev_config __iomem *bar0 = sp->bar0; |
6191 | unsigned long flags; | 6195 | unsigned long flags; |
6192 | register u64 val64 = 0; | 6196 | register u64 val64 = 0; |
6193 | 6197 | ||
@@ -6248,10 +6252,10 @@ static void s2io_card_down(nic_t * sp) | |||
6248 | clear_bit(0, &(sp->link_state)); | 6252 | clear_bit(0, &(sp->link_state)); |
6249 | } | 6253 | } |
6250 | 6254 | ||
6251 | static int s2io_card_up(nic_t * sp) | 6255 | static int s2io_card_up(struct s2io_nic * sp) |
6252 | { | 6256 | { |
6253 | int i, ret = 0; | 6257 | int i, ret = 0; |
6254 | mac_info_t *mac_control; | 6258 | struct mac_info *mac_control; |
6255 | struct config_param *config; | 6259 | struct config_param *config; |
6256 | struct net_device *dev = (struct net_device *) sp->dev; | 6260 | struct net_device *dev = (struct net_device *) sp->dev; |
6257 | u16 interruptible; | 6261 | u16 interruptible; |
@@ -6350,7 +6354,7 @@ static int s2io_card_up(nic_t * sp) | |||
6350 | 6354 | ||
6351 | static void s2io_restart_nic(struct work_struct *work) | 6355 | static void s2io_restart_nic(struct work_struct *work) |
6352 | { | 6356 | { |
6353 | nic_t *sp = container_of(work, nic_t, rst_timer_task); | 6357 | struct s2io_nic *sp = container_of(work, struct s2io_nic, rst_timer_task); |
6354 | struct net_device *dev = sp->dev; | 6358 | struct net_device *dev = sp->dev; |
6355 | 6359 | ||
6356 | s2io_card_down(sp); | 6360 | s2io_card_down(sp); |
@@ -6379,7 +6383,7 @@ static void s2io_restart_nic(struct work_struct *work) | |||
6379 | 6383 | ||
6380 | static void s2io_tx_watchdog(struct net_device *dev) | 6384 | static void s2io_tx_watchdog(struct net_device *dev) |
6381 | { | 6385 | { |
6382 | nic_t *sp = dev->priv; | 6386 | struct s2io_nic *sp = dev->priv; |
6383 | 6387 | ||
6384 | if (netif_carrier_ok(dev)) { | 6388 | if (netif_carrier_ok(dev)) { |
6385 | schedule_work(&sp->rst_timer_task); | 6389 | schedule_work(&sp->rst_timer_task); |
@@ -6404,16 +6408,16 @@ static void s2io_tx_watchdog(struct net_device *dev) | |||
6404 | * Return value: | 6408 | * Return value: |
6405 | * SUCCESS on success and -1 on failure. | 6409 | * SUCCESS on success and -1 on failure. |
6406 | */ | 6410 | */ |
6407 | static int rx_osm_handler(ring_info_t *ring_data, RxD_t * rxdp) | 6411 | static int rx_osm_handler(struct ring_info *ring_data, struct RxD_t * rxdp) |
6408 | { | 6412 | { |
6409 | nic_t *sp = ring_data->nic; | 6413 | struct s2io_nic *sp = ring_data->nic; |
6410 | struct net_device *dev = (struct net_device *) sp->dev; | 6414 | struct net_device *dev = (struct net_device *) sp->dev; |
6411 | struct sk_buff *skb = (struct sk_buff *) | 6415 | struct sk_buff *skb = (struct sk_buff *) |
6412 | ((unsigned long) rxdp->Host_Control); | 6416 | ((unsigned long) rxdp->Host_Control); |
6413 | int ring_no = ring_data->ring_no; | 6417 | int ring_no = ring_data->ring_no; |
6414 | u16 l3_csum, l4_csum; | 6418 | u16 l3_csum, l4_csum; |
6415 | unsigned long long err = rxdp->Control_1 & RXD_T_CODE; | 6419 | unsigned long long err = rxdp->Control_1 & RXD_T_CODE; |
6416 | lro_t *lro; | 6420 | struct lro *lro; |
6417 | 6421 | ||
6418 | skb->dev = dev; | 6422 | skb->dev = dev; |
6419 | 6423 | ||
@@ -6458,7 +6462,7 @@ static int rx_osm_handler(ring_info_t *ring_data, RxD_t * rxdp) | |||
6458 | int buf2_len = RXD_GET_BUFFER2_SIZE_3(rxdp->Control_2); | 6462 | int buf2_len = RXD_GET_BUFFER2_SIZE_3(rxdp->Control_2); |
6459 | unsigned char *buff = skb_push(skb, buf0_len); | 6463 | unsigned char *buff = skb_push(skb, buf0_len); |
6460 | 6464 | ||
6461 | buffAdd_t *ba = &ring_data->ba[get_block][get_off]; | 6465 | struct buffAdd *ba = &ring_data->ba[get_block][get_off]; |
6462 | sp->stats.rx_bytes += buf0_len + buf2_len; | 6466 | sp->stats.rx_bytes += buf0_len + buf2_len; |
6463 | memcpy(buff, ba->ba_0, buf0_len); | 6467 | memcpy(buff, ba->ba_0, buf0_len); |
6464 | 6468 | ||
@@ -6588,7 +6592,7 @@ aggregate: | |||
6588 | * void. | 6592 | * void. |
6589 | */ | 6593 | */ |
6590 | 6594 | ||
6591 | static void s2io_link(nic_t * sp, int link) | 6595 | static void s2io_link(struct s2io_nic * sp, int link) |
6592 | { | 6596 | { |
6593 | struct net_device *dev = (struct net_device *) sp->dev; | 6597 | struct net_device *dev = (struct net_device *) sp->dev; |
6594 | 6598 | ||
@@ -6632,7 +6636,7 @@ static int get_xena_rev_id(struct pci_dev *pdev) | |||
6632 | * void | 6636 | * void |
6633 | */ | 6637 | */ |
6634 | 6638 | ||
6635 | static void s2io_init_pci(nic_t * sp) | 6639 | static void s2io_init_pci(struct s2io_nic * sp) |
6636 | { | 6640 | { |
6637 | u16 pci_cmd = 0, pcix_cmd = 0; | 6641 | u16 pci_cmd = 0, pcix_cmd = 0; |
6638 | 6642 | ||
@@ -6715,15 +6719,15 @@ static int s2io_verify_parm(struct pci_dev *pdev, u8 *dev_intr_type) | |||
6715 | static int __devinit | 6719 | static int __devinit |
6716 | s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre) | 6720 | s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre) |
6717 | { | 6721 | { |
6718 | nic_t *sp; | 6722 | struct s2io_nic *sp; |
6719 | struct net_device *dev; | 6723 | struct net_device *dev; |
6720 | int i, j, ret; | 6724 | int i, j, ret; |
6721 | int dma_flag = FALSE; | 6725 | int dma_flag = FALSE; |
6722 | u32 mac_up, mac_down; | 6726 | u32 mac_up, mac_down; |
6723 | u64 val64 = 0, tmp64 = 0; | 6727 | u64 val64 = 0, tmp64 = 0; |
6724 | XENA_dev_config_t __iomem *bar0 = NULL; | 6728 | struct XENA_dev_config __iomem *bar0 = NULL; |
6725 | u16 subid; | 6729 | u16 subid; |
6726 | mac_info_t *mac_control; | 6730 | struct mac_info *mac_control; |
6727 | struct config_param *config; | 6731 | struct config_param *config; |
6728 | int mode; | 6732 | int mode; |
6729 | u8 dev_intr_type = intr_type; | 6733 | u8 dev_intr_type = intr_type; |
@@ -6778,7 +6782,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre) | |||
6778 | } | 6782 | } |
6779 | } | 6783 | } |
6780 | 6784 | ||
6781 | dev = alloc_etherdev(sizeof(nic_t)); | 6785 | dev = alloc_etherdev(sizeof(struct s2io_nic)); |
6782 | if (dev == NULL) { | 6786 | if (dev == NULL) { |
6783 | DBG_PRINT(ERR_DBG, "Device allocation failed\n"); | 6787 | DBG_PRINT(ERR_DBG, "Device allocation failed\n"); |
6784 | pci_disable_device(pdev); | 6788 | pci_disable_device(pdev); |
@@ -6793,7 +6797,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre) | |||
6793 | 6797 | ||
6794 | /* Private member variable initialized to s2io NIC structure */ | 6798 | /* Private member variable initialized to s2io NIC structure */ |
6795 | sp = dev->priv; | 6799 | sp = dev->priv; |
6796 | memset(sp, 0, sizeof(nic_t)); | 6800 | memset(sp, 0, sizeof(struct s2io_nic)); |
6797 | sp->dev = dev; | 6801 | sp->dev = dev; |
6798 | sp->pdev = pdev; | 6802 | sp->pdev = pdev; |
6799 | sp->high_dma_flag = dma_flag; | 6803 | sp->high_dma_flag = dma_flag; |
@@ -6909,7 +6913,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre) | |||
6909 | 6913 | ||
6910 | /* Initializing the BAR1 address as the start of the FIFO pointer. */ | 6914 | /* Initializing the BAR1 address as the start of the FIFO pointer. */ |
6911 | for (j = 0; j < MAX_TX_FIFOS; j++) { | 6915 | for (j = 0; j < MAX_TX_FIFOS; j++) { |
6912 | mac_control->tx_FIFO_start[j] = (TxFIFO_element_t __iomem *) | 6916 | mac_control->tx_FIFO_start[j] = (struct TxFIFO_element __iomem *) |
6913 | (sp->bar1 + (j * 0x00020000)); | 6917 | (sp->bar1 + (j * 0x00020000)); |
6914 | } | 6918 | } |
6915 | 6919 | ||
@@ -7163,7 +7167,7 @@ static void __devexit s2io_rem_nic(struct pci_dev *pdev) | |||
7163 | { | 7167 | { |
7164 | struct net_device *dev = | 7168 | struct net_device *dev = |
7165 | (struct net_device *) pci_get_drvdata(pdev); | 7169 | (struct net_device *) pci_get_drvdata(pdev); |
7166 | nic_t *sp; | 7170 | struct s2io_nic *sp; |
7167 | 7171 | ||
7168 | if (dev == NULL) { | 7172 | if (dev == NULL) { |
7169 | DBG_PRINT(ERR_DBG, "Driver Data is NULL!!\n"); | 7173 | DBG_PRINT(ERR_DBG, "Driver Data is NULL!!\n"); |
@@ -7215,7 +7219,7 @@ module_init(s2io_starter); | |||
7215 | module_exit(s2io_closer); | 7219 | module_exit(s2io_closer); |
7216 | 7220 | ||
7217 | static int check_L2_lro_capable(u8 *buffer, struct iphdr **ip, | 7221 | static int check_L2_lro_capable(u8 *buffer, struct iphdr **ip, |
7218 | struct tcphdr **tcp, RxD_t *rxdp) | 7222 | struct tcphdr **tcp, struct RxD_t *rxdp) |
7219 | { | 7223 | { |
7220 | int ip_off; | 7224 | int ip_off; |
7221 | u8 l2_type = (u8)((rxdp->Control_1 >> 37) & 0x7), ip_len; | 7225 | u8 l2_type = (u8)((rxdp->Control_1 >> 37) & 0x7), ip_len; |
@@ -7249,7 +7253,7 @@ static int check_L2_lro_capable(u8 *buffer, struct iphdr **ip, | |||
7249 | return 0; | 7253 | return 0; |
7250 | } | 7254 | } |
7251 | 7255 | ||
7252 | static int check_for_socket_match(lro_t *lro, struct iphdr *ip, | 7256 | static int check_for_socket_match(struct lro *lro, struct iphdr *ip, |
7253 | struct tcphdr *tcp) | 7257 | struct tcphdr *tcp) |
7254 | { | 7258 | { |
7255 | DBG_PRINT(INFO_DBG,"%s: Been here...\n", __FUNCTION__); | 7259 | DBG_PRINT(INFO_DBG,"%s: Been here...\n", __FUNCTION__); |
@@ -7264,7 +7268,7 @@ static inline int get_l4_pyld_length(struct iphdr *ip, struct tcphdr *tcp) | |||
7264 | return(ntohs(ip->tot_len) - (ip->ihl << 2) - (tcp->doff << 2)); | 7268 | return(ntohs(ip->tot_len) - (ip->ihl << 2) - (tcp->doff << 2)); |
7265 | } | 7269 | } |
7266 | 7270 | ||
7267 | static void initiate_new_session(lro_t *lro, u8 *l2h, | 7271 | static void initiate_new_session(struct lro *lro, u8 *l2h, |
7268 | struct iphdr *ip, struct tcphdr *tcp, u32 tcp_pyld_len) | 7272 | struct iphdr *ip, struct tcphdr *tcp, u32 tcp_pyld_len) |
7269 | { | 7273 | { |
7270 | DBG_PRINT(INFO_DBG,"%s: Been here...\n", __FUNCTION__); | 7274 | DBG_PRINT(INFO_DBG,"%s: Been here...\n", __FUNCTION__); |
@@ -7290,12 +7294,12 @@ static void initiate_new_session(lro_t *lro, u8 *l2h, | |||
7290 | lro->in_use = 1; | 7294 | lro->in_use = 1; |
7291 | } | 7295 | } |
7292 | 7296 | ||
7293 | static void update_L3L4_header(nic_t *sp, lro_t *lro) | 7297 | static void update_L3L4_header(struct s2io_nic *sp, struct lro *lro) |
7294 | { | 7298 | { |
7295 | struct iphdr *ip = lro->iph; | 7299 | struct iphdr *ip = lro->iph; |
7296 | struct tcphdr *tcp = lro->tcph; | 7300 | struct tcphdr *tcp = lro->tcph; |
7297 | u16 nchk; | 7301 | u16 nchk; |
7298 | StatInfo_t *statinfo = sp->mac_control.stats_info; | 7302 | struct stat_block *statinfo = sp->mac_control.stats_info; |
7299 | DBG_PRINT(INFO_DBG,"%s: Been here...\n", __FUNCTION__); | 7303 | DBG_PRINT(INFO_DBG,"%s: Been here...\n", __FUNCTION__); |
7300 | 7304 | ||
7301 | /* Update L3 header */ | 7305 | /* Update L3 header */ |
@@ -7321,7 +7325,7 @@ static void update_L3L4_header(nic_t *sp, lro_t *lro) | |||
7321 | statinfo->sw_stat.num_aggregations++; | 7325 | statinfo->sw_stat.num_aggregations++; |
7322 | } | 7326 | } |
7323 | 7327 | ||
7324 | static void aggregate_new_rx(lro_t *lro, struct iphdr *ip, | 7328 | static void aggregate_new_rx(struct lro *lro, struct iphdr *ip, |
7325 | struct tcphdr *tcp, u32 l4_pyld) | 7329 | struct tcphdr *tcp, u32 l4_pyld) |
7326 | { | 7330 | { |
7327 | DBG_PRINT(INFO_DBG,"%s: Been here...\n", __FUNCTION__); | 7331 | DBG_PRINT(INFO_DBG,"%s: Been here...\n", __FUNCTION__); |
@@ -7343,7 +7347,7 @@ static void aggregate_new_rx(lro_t *lro, struct iphdr *ip, | |||
7343 | } | 7347 | } |
7344 | } | 7348 | } |
7345 | 7349 | ||
7346 | static int verify_l3_l4_lro_capable(lro_t *l_lro, struct iphdr *ip, | 7350 | static int verify_l3_l4_lro_capable(struct lro *l_lro, struct iphdr *ip, |
7347 | struct tcphdr *tcp, u32 tcp_pyld_len) | 7351 | struct tcphdr *tcp, u32 tcp_pyld_len) |
7348 | { | 7352 | { |
7349 | u8 *ptr; | 7353 | u8 *ptr; |
@@ -7401,8 +7405,8 @@ static int verify_l3_l4_lro_capable(lro_t *l_lro, struct iphdr *ip, | |||
7401 | } | 7405 | } |
7402 | 7406 | ||
7403 | static int | 7407 | static int |
7404 | s2io_club_tcp_session(u8 *buffer, u8 **tcp, u32 *tcp_len, lro_t **lro, | 7408 | s2io_club_tcp_session(u8 *buffer, u8 **tcp, u32 *tcp_len, struct lro **lro, |
7405 | RxD_t *rxdp, nic_t *sp) | 7409 | struct RxD_t *rxdp, struct s2io_nic *sp) |
7406 | { | 7410 | { |
7407 | struct iphdr *ip; | 7411 | struct iphdr *ip; |
7408 | struct tcphdr *tcph; | 7412 | struct tcphdr *tcph; |
@@ -7419,7 +7423,7 @@ s2io_club_tcp_session(u8 *buffer, u8 **tcp, u32 *tcp_len, lro_t **lro, | |||
7419 | tcph = (struct tcphdr *)*tcp; | 7423 | tcph = (struct tcphdr *)*tcp; |
7420 | *tcp_len = get_l4_pyld_length(ip, tcph); | 7424 | *tcp_len = get_l4_pyld_length(ip, tcph); |
7421 | for (i=0; i<MAX_LRO_SESSIONS; i++) { | 7425 | for (i=0; i<MAX_LRO_SESSIONS; i++) { |
7422 | lro_t *l_lro = &sp->lro0_n[i]; | 7426 | struct lro *l_lro = &sp->lro0_n[i]; |
7423 | if (l_lro->in_use) { | 7427 | if (l_lro->in_use) { |
7424 | if (check_for_socket_match(l_lro, ip, tcph)) | 7428 | if (check_for_socket_match(l_lro, ip, tcph)) |
7425 | continue; | 7429 | continue; |
@@ -7457,7 +7461,7 @@ s2io_club_tcp_session(u8 *buffer, u8 **tcp, u32 *tcp_len, lro_t **lro, | |||
7457 | } | 7461 | } |
7458 | 7462 | ||
7459 | for (i=0; i<MAX_LRO_SESSIONS; i++) { | 7463 | for (i=0; i<MAX_LRO_SESSIONS; i++) { |
7460 | lro_t *l_lro = &sp->lro0_n[i]; | 7464 | struct lro *l_lro = &sp->lro0_n[i]; |
7461 | if (!(l_lro->in_use)) { | 7465 | if (!(l_lro->in_use)) { |
7462 | *lro = l_lro; | 7466 | *lro = l_lro; |
7463 | ret = 3; /* Begin anew */ | 7467 | ret = 3; /* Begin anew */ |
@@ -7496,9 +7500,9 @@ s2io_club_tcp_session(u8 *buffer, u8 **tcp, u32 *tcp_len, lro_t **lro, | |||
7496 | return ret; | 7500 | return ret; |
7497 | } | 7501 | } |
7498 | 7502 | ||
7499 | static void clear_lro_session(lro_t *lro) | 7503 | static void clear_lro_session(struct lro *lro) |
7500 | { | 7504 | { |
7501 | static u16 lro_struct_size = sizeof(lro_t); | 7505 | static u16 lro_struct_size = sizeof(struct lro); |
7502 | 7506 | ||
7503 | memset(lro, 0, lro_struct_size); | 7507 | memset(lro, 0, lro_struct_size); |
7504 | } | 7508 | } |
@@ -7514,7 +7518,8 @@ static void queue_rx_frame(struct sk_buff *skb) | |||
7514 | netif_rx(skb); | 7518 | netif_rx(skb); |
7515 | } | 7519 | } |
7516 | 7520 | ||
7517 | static void lro_append_pkt(nic_t *sp, lro_t *lro, struct sk_buff *skb, | 7521 | static void lro_append_pkt(struct s2io_nic *sp, struct lro *lro, |
7522 | struct sk_buff *skb, | ||
7518 | u32 tcp_len) | 7523 | u32 tcp_len) |
7519 | { | 7524 | { |
7520 | struct sk_buff *first = lro->parent; | 7525 | struct sk_buff *first = lro->parent; |
diff --git a/drivers/net/s2io.h b/drivers/net/s2io.h index 8114f4b80e8a..a5e1a513deb5 100644 --- a/drivers/net/s2io.h +++ b/drivers/net/s2io.h | |||
@@ -39,7 +39,7 @@ | |||
39 | #define MAX_FLICKER_TIME 60000 /* 60 Secs */ | 39 | #define MAX_FLICKER_TIME 60000 /* 60 Secs */ |
40 | 40 | ||
41 | /* Maximum outstanding splits to be configured into xena. */ | 41 | /* Maximum outstanding splits to be configured into xena. */ |
42 | typedef enum xena_max_outstanding_splits { | 42 | enum { |
43 | XENA_ONE_SPLIT_TRANSACTION = 0, | 43 | XENA_ONE_SPLIT_TRANSACTION = 0, |
44 | XENA_TWO_SPLIT_TRANSACTION = 1, | 44 | XENA_TWO_SPLIT_TRANSACTION = 1, |
45 | XENA_THREE_SPLIT_TRANSACTION = 2, | 45 | XENA_THREE_SPLIT_TRANSACTION = 2, |
@@ -48,7 +48,7 @@ typedef enum xena_max_outstanding_splits { | |||
48 | XENA_TWELVE_SPLIT_TRANSACTION = 5, | 48 | XENA_TWELVE_SPLIT_TRANSACTION = 5, |
49 | XENA_SIXTEEN_SPLIT_TRANSACTION = 6, | 49 | XENA_SIXTEEN_SPLIT_TRANSACTION = 6, |
50 | XENA_THIRTYTWO_SPLIT_TRANSACTION = 7 | 50 | XENA_THIRTYTWO_SPLIT_TRANSACTION = 7 |
51 | } xena_max_outstanding_splits; | 51 | }; |
52 | #define XENA_MAX_OUTSTANDING_SPLITS(n) (n << 4) | 52 | #define XENA_MAX_OUTSTANDING_SPLITS(n) (n << 4) |
53 | 53 | ||
54 | /* OS concerned variables and constants */ | 54 | /* OS concerned variables and constants */ |
@@ -79,7 +79,7 @@ static int debug_level = ERR_DBG; | |||
79 | #define S2IO_JUMBO_SIZE 9600 | 79 | #define S2IO_JUMBO_SIZE 9600 |
80 | 80 | ||
81 | /* Driver statistics maintained by driver */ | 81 | /* Driver statistics maintained by driver */ |
82 | typedef struct { | 82 | struct swStat { |
83 | unsigned long long single_ecc_errs; | 83 | unsigned long long single_ecc_errs; |
84 | unsigned long long double_ecc_errs; | 84 | unsigned long long double_ecc_errs; |
85 | unsigned long long parity_err_cnt; | 85 | unsigned long long parity_err_cnt; |
@@ -94,10 +94,10 @@ typedef struct { | |||
94 | unsigned long long flush_max_pkts; | 94 | unsigned long long flush_max_pkts; |
95 | unsigned long long sum_avg_pkts_aggregated; | 95 | unsigned long long sum_avg_pkts_aggregated; |
96 | unsigned long long num_aggregations; | 96 | unsigned long long num_aggregations; |
97 | } swStat_t; | 97 | }; |
98 | 98 | ||
99 | /* Xpak releated alarm and warnings */ | 99 | /* Xpak releated alarm and warnings */ |
100 | typedef struct { | 100 | struct xpakStat { |
101 | u64 alarm_transceiver_temp_high; | 101 | u64 alarm_transceiver_temp_high; |
102 | u64 alarm_transceiver_temp_low; | 102 | u64 alarm_transceiver_temp_low; |
103 | u64 alarm_laser_bias_current_high; | 103 | u64 alarm_laser_bias_current_high; |
@@ -112,11 +112,11 @@ typedef struct { | |||
112 | u64 warn_laser_output_power_low; | 112 | u64 warn_laser_output_power_low; |
113 | u64 xpak_regs_stat; | 113 | u64 xpak_regs_stat; |
114 | u32 xpak_timer_count; | 114 | u32 xpak_timer_count; |
115 | } xpakStat_t; | 115 | }; |
116 | 116 | ||
117 | 117 | ||
118 | /* The statistics block of Xena */ | 118 | /* The statistics block of Xena */ |
119 | typedef struct stat_block { | 119 | struct stat_block { |
120 | /* Tx MAC statistics counters. */ | 120 | /* Tx MAC statistics counters. */ |
121 | __le32 tmac_data_octets; | 121 | __le32 tmac_data_octets; |
122 | __le32 tmac_frms; | 122 | __le32 tmac_frms; |
@@ -292,9 +292,9 @@ typedef struct stat_block { | |||
292 | __le32 reserved_14; | 292 | __le32 reserved_14; |
293 | __le32 link_fault_cnt; | 293 | __le32 link_fault_cnt; |
294 | u8 buffer[20]; | 294 | u8 buffer[20]; |
295 | swStat_t sw_stat; | 295 | struct swStat sw_stat; |
296 | xpakStat_t xpak_stat; | 296 | struct xpakStat xpak_stat; |
297 | } StatInfo_t; | 297 | }; |
298 | 298 | ||
299 | /* | 299 | /* |
300 | * Structures representing different init time configuration | 300 | * Structures representing different init time configuration |
@@ -317,7 +317,7 @@ static int fifo_map[][MAX_TX_FIFOS] = { | |||
317 | }; | 317 | }; |
318 | 318 | ||
319 | /* Maintains Per FIFO related information. */ | 319 | /* Maintains Per FIFO related information. */ |
320 | typedef struct tx_fifo_config { | 320 | struct tx_fifo_config { |
321 | #define MAX_AVAILABLE_TXDS 8192 | 321 | #define MAX_AVAILABLE_TXDS 8192 |
322 | u32 fifo_len; /* specifies len of FIFO upto 8192, ie no of TxDLs */ | 322 | u32 fifo_len; /* specifies len of FIFO upto 8192, ie no of TxDLs */ |
323 | /* Priority definition */ | 323 | /* Priority definition */ |
@@ -334,11 +334,11 @@ typedef struct tx_fifo_config { | |||
334 | u8 f_no_snoop; | 334 | u8 f_no_snoop; |
335 | #define NO_SNOOP_TXD 0x01 | 335 | #define NO_SNOOP_TXD 0x01 |
336 | #define NO_SNOOP_TXD_BUFFER 0x02 | 336 | #define NO_SNOOP_TXD_BUFFER 0x02 |
337 | } tx_fifo_config_t; | 337 | }; |
338 | 338 | ||
339 | 339 | ||
340 | /* Maintains per Ring related information */ | 340 | /* Maintains per Ring related information */ |
341 | typedef struct rx_ring_config { | 341 | struct rx_ring_config { |
342 | u32 num_rxd; /*No of RxDs per Rx Ring */ | 342 | u32 num_rxd; /*No of RxDs per Rx Ring */ |
343 | #define RX_RING_PRI_0 0 /* highest */ | 343 | #define RX_RING_PRI_0 0 /* highest */ |
344 | #define RX_RING_PRI_1 1 | 344 | #define RX_RING_PRI_1 1 |
@@ -359,7 +359,7 @@ typedef struct rx_ring_config { | |||
359 | u8 f_no_snoop; | 359 | u8 f_no_snoop; |
360 | #define NO_SNOOP_RXD 0x01 | 360 | #define NO_SNOOP_RXD 0x01 |
361 | #define NO_SNOOP_RXD_BUFFER 0x02 | 361 | #define NO_SNOOP_RXD_BUFFER 0x02 |
362 | } rx_ring_config_t; | 362 | }; |
363 | 363 | ||
364 | /* This structure provides contains values of the tunable parameters | 364 | /* This structure provides contains values of the tunable parameters |
365 | * of the H/W | 365 | * of the H/W |
@@ -369,7 +369,7 @@ struct config_param { | |||
369 | u32 tx_fifo_num; /*Number of Tx FIFOs */ | 369 | u32 tx_fifo_num; /*Number of Tx FIFOs */ |
370 | 370 | ||
371 | u8 fifo_mapping[MAX_TX_FIFOS]; | 371 | u8 fifo_mapping[MAX_TX_FIFOS]; |
372 | tx_fifo_config_t tx_cfg[MAX_TX_FIFOS]; /*Per-Tx FIFO config */ | 372 | struct tx_fifo_config tx_cfg[MAX_TX_FIFOS]; /*Per-Tx FIFO config */ |
373 | u32 max_txds; /*Max no. of Tx buffer descriptor per TxDL */ | 373 | u32 max_txds; /*Max no. of Tx buffer descriptor per TxDL */ |
374 | u64 tx_intr_type; | 374 | u64 tx_intr_type; |
375 | /* Specifies if Tx Intr is UTILZ or PER_LIST type. */ | 375 | /* Specifies if Tx Intr is UTILZ or PER_LIST type. */ |
@@ -378,7 +378,7 @@ struct config_param { | |||
378 | u32 rx_ring_num; /*Number of receive rings */ | 378 | u32 rx_ring_num; /*Number of receive rings */ |
379 | #define MAX_RX_BLOCKS_PER_RING 150 | 379 | #define MAX_RX_BLOCKS_PER_RING 150 |
380 | 380 | ||
381 | rx_ring_config_t rx_cfg[MAX_RX_RINGS]; /*Per-Rx Ring config */ | 381 | struct rx_ring_config rx_cfg[MAX_RX_RINGS]; /*Per-Rx Ring config */ |
382 | u8 bimodal; /*Flag for setting bimodal interrupts*/ | 382 | u8 bimodal; /*Flag for setting bimodal interrupts*/ |
383 | 383 | ||
384 | #define HEADER_ETHERNET_II_802_3_SIZE 14 | 384 | #define HEADER_ETHERNET_II_802_3_SIZE 14 |
@@ -397,14 +397,14 @@ struct config_param { | |||
397 | }; | 397 | }; |
398 | 398 | ||
399 | /* Structure representing MAC Addrs */ | 399 | /* Structure representing MAC Addrs */ |
400 | typedef struct mac_addr { | 400 | struct mac_addr { |
401 | u8 mac_addr[ETH_ALEN]; | 401 | u8 mac_addr[ETH_ALEN]; |
402 | } macaddr_t; | 402 | }; |
403 | 403 | ||
404 | /* Structure that represent every FIFO element in the BAR1 | 404 | /* Structure that represent every FIFO element in the BAR1 |
405 | * Address location. | 405 | * Address location. |
406 | */ | 406 | */ |
407 | typedef struct _TxFIFO_element { | 407 | struct TxFIFO_element { |
408 | u64 TxDL_Pointer; | 408 | u64 TxDL_Pointer; |
409 | 409 | ||
410 | u64 List_Control; | 410 | u64 List_Control; |
@@ -415,10 +415,10 @@ typedef struct _TxFIFO_element { | |||
415 | #define TX_FIFO_SPECIAL_FUNC BIT(23) | 415 | #define TX_FIFO_SPECIAL_FUNC BIT(23) |
416 | #define TX_FIFO_DS_NO_SNOOP BIT(31) | 416 | #define TX_FIFO_DS_NO_SNOOP BIT(31) |
417 | #define TX_FIFO_BUFF_NO_SNOOP BIT(30) | 417 | #define TX_FIFO_BUFF_NO_SNOOP BIT(30) |
418 | } TxFIFO_element_t; | 418 | }; |
419 | 419 | ||
420 | /* Tx descriptor structure */ | 420 | /* Tx descriptor structure */ |
421 | typedef struct _TxD { | 421 | struct TxD { |
422 | u64 Control_1; | 422 | u64 Control_1; |
423 | /* bit mask */ | 423 | /* bit mask */ |
424 | #define TXD_LIST_OWN_XENA BIT(7) | 424 | #define TXD_LIST_OWN_XENA BIT(7) |
@@ -449,16 +449,16 @@ typedef struct _TxD { | |||
449 | 449 | ||
450 | u64 Buffer_Pointer; | 450 | u64 Buffer_Pointer; |
451 | u64 Host_Control; /* reserved for host */ | 451 | u64 Host_Control; /* reserved for host */ |
452 | } TxD_t; | 452 | }; |
453 | 453 | ||
454 | /* Structure to hold the phy and virt addr of every TxDL. */ | 454 | /* Structure to hold the phy and virt addr of every TxDL. */ |
455 | typedef struct list_info_hold { | 455 | struct list_info_hold { |
456 | dma_addr_t list_phy_addr; | 456 | dma_addr_t list_phy_addr; |
457 | void *list_virt_addr; | 457 | void *list_virt_addr; |
458 | } list_info_hold_t; | 458 | }; |
459 | 459 | ||
460 | /* Rx descriptor structure for 1 buffer mode */ | 460 | /* Rx descriptor structure for 1 buffer mode */ |
461 | typedef struct _RxD_t { | 461 | struct RxD_t { |
462 | u64 Host_Control; /* reserved for host */ | 462 | u64 Host_Control; /* reserved for host */ |
463 | u64 Control_1; | 463 | u64 Control_1; |
464 | #define RXD_OWN_XENA BIT(7) | 464 | #define RXD_OWN_XENA BIT(7) |
@@ -483,21 +483,21 @@ typedef struct _RxD_t { | |||
483 | #define SET_NUM_TAG(val) vBIT(val,16,32) | 483 | #define SET_NUM_TAG(val) vBIT(val,16,32) |
484 | 484 | ||
485 | 485 | ||
486 | } RxD_t; | 486 | }; |
487 | /* Rx descriptor structure for 1 buffer mode */ | 487 | /* Rx descriptor structure for 1 buffer mode */ |
488 | typedef struct _RxD1_t { | 488 | struct RxD1 { |
489 | struct _RxD_t h; | 489 | struct RxD_t h; |
490 | 490 | ||
491 | #define MASK_BUFFER0_SIZE_1 vBIT(0x3FFF,2,14) | 491 | #define MASK_BUFFER0_SIZE_1 vBIT(0x3FFF,2,14) |
492 | #define SET_BUFFER0_SIZE_1(val) vBIT(val,2,14) | 492 | #define SET_BUFFER0_SIZE_1(val) vBIT(val,2,14) |
493 | #define RXD_GET_BUFFER0_SIZE_1(_Control_2) \ | 493 | #define RXD_GET_BUFFER0_SIZE_1(_Control_2) \ |
494 | (u16)((_Control_2 & MASK_BUFFER0_SIZE_1) >> 48) | 494 | (u16)((_Control_2 & MASK_BUFFER0_SIZE_1) >> 48) |
495 | u64 Buffer0_ptr; | 495 | u64 Buffer0_ptr; |
496 | } RxD1_t; | 496 | }; |
497 | /* Rx descriptor structure for 3 or 2 buffer mode */ | 497 | /* Rx descriptor structure for 3 or 2 buffer mode */ |
498 | 498 | ||
499 | typedef struct _RxD3_t { | 499 | struct RxD3 { |
500 | struct _RxD_t h; | 500 | struct RxD_t h; |
501 | 501 | ||
502 | #define MASK_BUFFER0_SIZE_3 vBIT(0xFF,2,14) | 502 | #define MASK_BUFFER0_SIZE_3 vBIT(0xFF,2,14) |
503 | #define MASK_BUFFER1_SIZE_3 vBIT(0xFFFF,16,16) | 503 | #define MASK_BUFFER1_SIZE_3 vBIT(0xFFFF,16,16) |
@@ -517,15 +517,15 @@ typedef struct _RxD3_t { | |||
517 | u64 Buffer0_ptr; | 517 | u64 Buffer0_ptr; |
518 | u64 Buffer1_ptr; | 518 | u64 Buffer1_ptr; |
519 | u64 Buffer2_ptr; | 519 | u64 Buffer2_ptr; |
520 | } RxD3_t; | 520 | }; |
521 | 521 | ||
522 | 522 | ||
523 | /* Structure that represents the Rx descriptor block which contains | 523 | /* Structure that represents the Rx descriptor block which contains |
524 | * 128 Rx descriptors. | 524 | * 128 Rx descriptors. |
525 | */ | 525 | */ |
526 | typedef struct _RxD_block { | 526 | struct RxD_block { |
527 | #define MAX_RXDS_PER_BLOCK_1 127 | 527 | #define MAX_RXDS_PER_BLOCK_1 127 |
528 | RxD1_t rxd[MAX_RXDS_PER_BLOCK_1]; | 528 | struct RxD1 rxd[MAX_RXDS_PER_BLOCK_1]; |
529 | 529 | ||
530 | u64 reserved_0; | 530 | u64 reserved_0; |
531 | #define END_OF_BLOCK 0xFEFFFFFFFFFFFFFFULL | 531 | #define END_OF_BLOCK 0xFEFFFFFFFFFFFFFFULL |
@@ -535,7 +535,7 @@ typedef struct _RxD_block { | |||
535 | u64 pNext_RxD_Blk_physical; /* Buff0_ptr.In a 32 bit arch | 535 | u64 pNext_RxD_Blk_physical; /* Buff0_ptr.In a 32 bit arch |
536 | * the upper 32 bits should | 536 | * the upper 32 bits should |
537 | * be 0 */ | 537 | * be 0 */ |
538 | } RxD_block_t; | 538 | }; |
539 | 539 | ||
540 | #define SIZE_OF_BLOCK 4096 | 540 | #define SIZE_OF_BLOCK 4096 |
541 | 541 | ||
@@ -545,12 +545,12 @@ typedef struct _RxD_block { | |||
545 | 545 | ||
546 | /* Structure to hold virtual addresses of Buf0 and Buf1 in | 546 | /* Structure to hold virtual addresses of Buf0 and Buf1 in |
547 | * 2buf mode. */ | 547 | * 2buf mode. */ |
548 | typedef struct bufAdd { | 548 | struct buffAdd { |
549 | void *ba_0_org; | 549 | void *ba_0_org; |
550 | void *ba_1_org; | 550 | void *ba_1_org; |
551 | void *ba_0; | 551 | void *ba_0; |
552 | void *ba_1; | 552 | void *ba_1; |
553 | } buffAdd_t; | 553 | }; |
554 | 554 | ||
555 | /* Structure which stores all the MAC control parameters */ | 555 | /* Structure which stores all the MAC control parameters */ |
556 | 556 | ||
@@ -558,43 +558,46 @@ typedef struct bufAdd { | |||
558 | * from which the Rx Interrupt processor can start picking | 558 | * from which the Rx Interrupt processor can start picking |
559 | * up the RxDs for processing. | 559 | * up the RxDs for processing. |
560 | */ | 560 | */ |
561 | typedef struct _rx_curr_get_info_t { | 561 | struct rx_curr_get_info { |
562 | u32 block_index; | 562 | u32 block_index; |
563 | u32 offset; | 563 | u32 offset; |
564 | u32 ring_len; | 564 | u32 ring_len; |
565 | } rx_curr_get_info_t; | 565 | }; |
566 | 566 | ||
567 | typedef rx_curr_get_info_t rx_curr_put_info_t; | 567 | struct rx_curr_put_info { |
568 | u32 block_index; | ||
569 | u32 offset; | ||
570 | u32 ring_len; | ||
571 | }; | ||
568 | 572 | ||
569 | /* This structure stores the offset of the TxDl in the FIFO | 573 | /* This structure stores the offset of the TxDl in the FIFO |
570 | * from which the Tx Interrupt processor can start picking | 574 | * from which the Tx Interrupt processor can start picking |
571 | * up the TxDLs for send complete interrupt processing. | 575 | * up the TxDLs for send complete interrupt processing. |
572 | */ | 576 | */ |
573 | typedef struct { | 577 | struct tx_curr_get_info { |
574 | u32 offset; | 578 | u32 offset; |
575 | u32 fifo_len; | 579 | u32 fifo_len; |
576 | } tx_curr_get_info_t; | 580 | }; |
577 | |||
578 | typedef tx_curr_get_info_t tx_curr_put_info_t; | ||
579 | 581 | ||
582 | struct tx_curr_put_info { | ||
583 | u32 offset; | ||
584 | u32 fifo_len; | ||
585 | }; | ||
580 | 586 | ||
581 | typedef struct rxd_info { | 587 | struct rxd_info { |
582 | void *virt_addr; | 588 | void *virt_addr; |
583 | dma_addr_t dma_addr; | 589 | dma_addr_t dma_addr; |
584 | }rxd_info_t; | 590 | }; |
585 | 591 | ||
586 | /* Structure that holds the Phy and virt addresses of the Blocks */ | 592 | /* Structure that holds the Phy and virt addresses of the Blocks */ |
587 | typedef struct rx_block_info { | 593 | struct rx_block_info { |
588 | void *block_virt_addr; | 594 | void *block_virt_addr; |
589 | dma_addr_t block_dma_addr; | 595 | dma_addr_t block_dma_addr; |
590 | rxd_info_t *rxds; | 596 | struct rxd_info *rxds; |
591 | } rx_block_info_t; | 597 | }; |
592 | |||
593 | /* pre declaration of the nic structure */ | ||
594 | typedef struct s2io_nic nic_t; | ||
595 | 598 | ||
596 | /* Ring specific structure */ | 599 | /* Ring specific structure */ |
597 | typedef struct ring_info { | 600 | struct ring_info { |
598 | /* The ring number */ | 601 | /* The ring number */ |
599 | int ring_no; | 602 | int ring_no; |
600 | 603 | ||
@@ -602,7 +605,7 @@ typedef struct ring_info { | |||
602 | * Place holders for the virtual and physical addresses of | 605 | * Place holders for the virtual and physical addresses of |
603 | * all the Rx Blocks | 606 | * all the Rx Blocks |
604 | */ | 607 | */ |
605 | rx_block_info_t rx_blocks[MAX_RX_BLOCKS_PER_RING]; | 608 | struct rx_block_info rx_blocks[MAX_RX_BLOCKS_PER_RING]; |
606 | int block_count; | 609 | int block_count; |
607 | int pkt_cnt; | 610 | int pkt_cnt; |
608 | 611 | ||
@@ -610,24 +613,24 @@ typedef struct ring_info { | |||
610 | * Put pointer info which indictes which RxD has to be replenished | 613 | * Put pointer info which indictes which RxD has to be replenished |
611 | * with a new buffer. | 614 | * with a new buffer. |
612 | */ | 615 | */ |
613 | rx_curr_put_info_t rx_curr_put_info; | 616 | struct rx_curr_put_info rx_curr_put_info; |
614 | 617 | ||
615 | /* | 618 | /* |
616 | * Get pointer info which indictes which is the last RxD that was | 619 | * Get pointer info which indictes which is the last RxD that was |
617 | * processed by the driver. | 620 | * processed by the driver. |
618 | */ | 621 | */ |
619 | rx_curr_get_info_t rx_curr_get_info; | 622 | struct rx_curr_get_info rx_curr_get_info; |
620 | 623 | ||
621 | /* Index to the absolute position of the put pointer of Rx ring */ | 624 | /* Index to the absolute position of the put pointer of Rx ring */ |
622 | int put_pos; | 625 | int put_pos; |
623 | 626 | ||
624 | /* Buffer Address store. */ | 627 | /* Buffer Address store. */ |
625 | buffAdd_t **ba; | 628 | struct buffAdd **ba; |
626 | nic_t *nic; | 629 | struct s2io_nic *nic; |
627 | } ring_info_t; | 630 | }; |
628 | 631 | ||
629 | /* Fifo specific structure */ | 632 | /* Fifo specific structure */ |
630 | typedef struct fifo_info { | 633 | struct fifo_info { |
631 | /* FIFO number */ | 634 | /* FIFO number */ |
632 | int fifo_no; | 635 | int fifo_no; |
633 | 636 | ||
@@ -635,40 +638,40 @@ typedef struct fifo_info { | |||
635 | int max_txds; | 638 | int max_txds; |
636 | 639 | ||
637 | /* Place holder of all the TX List's Phy and Virt addresses. */ | 640 | /* Place holder of all the TX List's Phy and Virt addresses. */ |
638 | list_info_hold_t *list_info; | 641 | struct list_info_hold *list_info; |
639 | 642 | ||
640 | /* | 643 | /* |
641 | * Current offset within the tx FIFO where driver would write | 644 | * Current offset within the tx FIFO where driver would write |
642 | * new Tx frame | 645 | * new Tx frame |
643 | */ | 646 | */ |
644 | tx_curr_put_info_t tx_curr_put_info; | 647 | struct tx_curr_put_info tx_curr_put_info; |
645 | 648 | ||
646 | /* | 649 | /* |
647 | * Current offset within tx FIFO from where the driver would start freeing | 650 | * Current offset within tx FIFO from where the driver would start freeing |
648 | * the buffers | 651 | * the buffers |
649 | */ | 652 | */ |
650 | tx_curr_get_info_t tx_curr_get_info; | 653 | struct tx_curr_get_info tx_curr_get_info; |
651 | 654 | ||
652 | nic_t *nic; | 655 | struct s2io_nic *nic; |
653 | }fifo_info_t; | 656 | }; |
654 | 657 | ||
655 | /* Information related to the Tx and Rx FIFOs and Rings of Xena | 658 | /* Information related to the Tx and Rx FIFOs and Rings of Xena |
656 | * is maintained in this structure. | 659 | * is maintained in this structure. |
657 | */ | 660 | */ |
658 | typedef struct mac_info { | 661 | struct mac_info { |
659 | /* tx side stuff */ | 662 | /* tx side stuff */ |
660 | /* logical pointer of start of each Tx FIFO */ | 663 | /* logical pointer of start of each Tx FIFO */ |
661 | TxFIFO_element_t __iomem *tx_FIFO_start[MAX_TX_FIFOS]; | 664 | struct TxFIFO_element __iomem *tx_FIFO_start[MAX_TX_FIFOS]; |
662 | 665 | ||
663 | /* Fifo specific structure */ | 666 | /* Fifo specific structure */ |
664 | fifo_info_t fifos[MAX_TX_FIFOS]; | 667 | struct fifo_info fifos[MAX_TX_FIFOS]; |
665 | 668 | ||
666 | /* Save virtual address of TxD page with zero DMA addr(if any) */ | 669 | /* Save virtual address of TxD page with zero DMA addr(if any) */ |
667 | void *zerodma_virt_addr; | 670 | void *zerodma_virt_addr; |
668 | 671 | ||
669 | /* rx side stuff */ | 672 | /* rx side stuff */ |
670 | /* Ring specific structure */ | 673 | /* Ring specific structure */ |
671 | ring_info_t rings[MAX_RX_RINGS]; | 674 | struct ring_info rings[MAX_RX_RINGS]; |
672 | 675 | ||
673 | u16 rmac_pause_time; | 676 | u16 rmac_pause_time; |
674 | u16 mc_pause_threshold_q0q3; | 677 | u16 mc_pause_threshold_q0q3; |
@@ -677,14 +680,14 @@ typedef struct mac_info { | |||
677 | void *stats_mem; /* orignal pointer to allocated mem */ | 680 | void *stats_mem; /* orignal pointer to allocated mem */ |
678 | dma_addr_t stats_mem_phy; /* Physical address of the stat block */ | 681 | dma_addr_t stats_mem_phy; /* Physical address of the stat block */ |
679 | u32 stats_mem_sz; | 682 | u32 stats_mem_sz; |
680 | StatInfo_t *stats_info; /* Logical address of the stat block */ | 683 | struct stat_block *stats_info; /* Logical address of the stat block */ |
681 | } mac_info_t; | 684 | }; |
682 | 685 | ||
683 | /* structure representing the user defined MAC addresses */ | 686 | /* structure representing the user defined MAC addresses */ |
684 | typedef struct { | 687 | struct usr_addr { |
685 | char addr[ETH_ALEN]; | 688 | char addr[ETH_ALEN]; |
686 | int usage_cnt; | 689 | int usage_cnt; |
687 | } usr_addr_t; | 690 | }; |
688 | 691 | ||
689 | /* Default Tunable parameters of the NIC. */ | 692 | /* Default Tunable parameters of the NIC. */ |
690 | #define DEFAULT_FIFO_0_LEN 4096 | 693 | #define DEFAULT_FIFO_0_LEN 4096 |
@@ -717,7 +720,7 @@ struct msix_info_st { | |||
717 | }; | 720 | }; |
718 | 721 | ||
719 | /* Data structure to represent a LRO session */ | 722 | /* Data structure to represent a LRO session */ |
720 | typedef struct lro { | 723 | struct lro { |
721 | struct sk_buff *parent; | 724 | struct sk_buff *parent; |
722 | struct sk_buff *last_frag; | 725 | struct sk_buff *last_frag; |
723 | u8 *l2h; | 726 | u8 *l2h; |
@@ -733,7 +736,7 @@ typedef struct lro { | |||
733 | u32 cur_tsval; | 736 | u32 cur_tsval; |
734 | u32 cur_tsecr; | 737 | u32 cur_tsecr; |
735 | u8 saw_ts; | 738 | u8 saw_ts; |
736 | }lro_t; | 739 | }; |
737 | 740 | ||
738 | /* Structure representing one instance of the NIC */ | 741 | /* Structure representing one instance of the NIC */ |
739 | struct s2io_nic { | 742 | struct s2io_nic { |
@@ -744,7 +747,7 @@ struct s2io_nic { | |||
744 | */ | 747 | */ |
745 | int pkts_to_process; | 748 | int pkts_to_process; |
746 | struct net_device *dev; | 749 | struct net_device *dev; |
747 | mac_info_t mac_control; | 750 | struct mac_info mac_control; |
748 | struct config_param config; | 751 | struct config_param config; |
749 | struct pci_dev *pdev; | 752 | struct pci_dev *pdev; |
750 | void __iomem *bar0; | 753 | void __iomem *bar0; |
@@ -752,8 +755,8 @@ struct s2io_nic { | |||
752 | #define MAX_MAC_SUPPORTED 16 | 755 | #define MAX_MAC_SUPPORTED 16 |
753 | #define MAX_SUPPORTED_MULTICASTS MAX_MAC_SUPPORTED | 756 | #define MAX_SUPPORTED_MULTICASTS MAX_MAC_SUPPORTED |
754 | 757 | ||
755 | macaddr_t def_mac_addr[MAX_MAC_SUPPORTED]; | 758 | struct mac_addr def_mac_addr[MAX_MAC_SUPPORTED]; |
756 | macaddr_t pre_mac_addr[MAX_MAC_SUPPORTED]; | 759 | struct mac_addr pre_mac_addr[MAX_MAC_SUPPORTED]; |
757 | 760 | ||
758 | struct net_device_stats stats; | 761 | struct net_device_stats stats; |
759 | int high_dma_flag; | 762 | int high_dma_flag; |
@@ -781,7 +784,7 @@ struct s2io_nic { | |||
781 | #define MAX_ADDRS_SUPPORTED 64 | 784 | #define MAX_ADDRS_SUPPORTED 64 |
782 | u16 usr_addr_count; | 785 | u16 usr_addr_count; |
783 | u16 mc_addr_count; | 786 | u16 mc_addr_count; |
784 | usr_addr_t usr_addrs[MAX_ADDRS_SUPPORTED]; | 787 | struct usr_addr usr_addrs[MAX_ADDRS_SUPPORTED]; |
785 | 788 | ||
786 | u16 m_cast_flg; | 789 | u16 m_cast_flg; |
787 | u16 all_multi_pos; | 790 | u16 all_multi_pos; |
@@ -837,7 +840,7 @@ struct s2io_nic { | |||
837 | u8 device_type; | 840 | u8 device_type; |
838 | 841 | ||
839 | #define MAX_LRO_SESSIONS 32 | 842 | #define MAX_LRO_SESSIONS 32 |
840 | lro_t lro0_n[MAX_LRO_SESSIONS]; | 843 | struct lro lro0_n[MAX_LRO_SESSIONS]; |
841 | unsigned long clubbed_frms_cnt; | 844 | unsigned long clubbed_frms_cnt; |
842 | unsigned long sending_both; | 845 | unsigned long sending_both; |
843 | u8 lro; | 846 | u8 lro; |
@@ -972,8 +975,8 @@ static void __devexit s2io_rem_nic(struct pci_dev *pdev); | |||
972 | static int init_shared_mem(struct s2io_nic *sp); | 975 | static int init_shared_mem(struct s2io_nic *sp); |
973 | static void free_shared_mem(struct s2io_nic *sp); | 976 | static void free_shared_mem(struct s2io_nic *sp); |
974 | static int init_nic(struct s2io_nic *nic); | 977 | static int init_nic(struct s2io_nic *nic); |
975 | static void rx_intr_handler(ring_info_t *ring_data); | 978 | static void rx_intr_handler(struct ring_info *ring_data); |
976 | static void tx_intr_handler(fifo_info_t *fifo_data); | 979 | static void tx_intr_handler(struct fifo_info *fifo_data); |
977 | static void alarm_intr_handler(struct s2io_nic *sp); | 980 | static void alarm_intr_handler(struct s2io_nic *sp); |
978 | 981 | ||
979 | static int s2io_starter(void); | 982 | static int s2io_starter(void); |
@@ -981,38 +984,41 @@ static void s2io_closer(void); | |||
981 | static void s2io_tx_watchdog(struct net_device *dev); | 984 | static void s2io_tx_watchdog(struct net_device *dev); |
982 | static void s2io_tasklet(unsigned long dev_addr); | 985 | static void s2io_tasklet(unsigned long dev_addr); |
983 | static void s2io_set_multicast(struct net_device *dev); | 986 | static void s2io_set_multicast(struct net_device *dev); |
984 | static int rx_osm_handler(ring_info_t *ring_data, RxD_t * rxdp); | 987 | static int rx_osm_handler(struct ring_info *ring_data, struct RxD_t * rxdp); |
985 | static void s2io_link(nic_t * sp, int link); | 988 | static void s2io_link(struct s2io_nic * sp, int link); |
986 | static void s2io_reset(nic_t * sp); | 989 | static void s2io_reset(struct s2io_nic * sp); |
987 | static int s2io_poll(struct net_device *dev, int *budget); | 990 | static int s2io_poll(struct net_device *dev, int *budget); |
988 | static void s2io_init_pci(nic_t * sp); | 991 | static void s2io_init_pci(struct s2io_nic * sp); |
989 | static int s2io_set_mac_addr(struct net_device *dev, u8 * addr); | 992 | static int s2io_set_mac_addr(struct net_device *dev, u8 * addr); |
990 | static void s2io_alarm_handle(unsigned long data); | 993 | static void s2io_alarm_handle(unsigned long data); |
991 | static int s2io_enable_msi(nic_t *nic); | 994 | static int s2io_enable_msi(struct s2io_nic *nic); |
992 | static irqreturn_t s2io_msi_handle(int irq, void *dev_id); | 995 | static irqreturn_t s2io_msi_handle(int irq, void *dev_id); |
993 | static irqreturn_t | 996 | static irqreturn_t |
994 | s2io_msix_ring_handle(int irq, void *dev_id); | 997 | s2io_msix_ring_handle(int irq, void *dev_id); |
995 | static irqreturn_t | 998 | static irqreturn_t |
996 | s2io_msix_fifo_handle(int irq, void *dev_id); | 999 | s2io_msix_fifo_handle(int irq, void *dev_id); |
997 | static irqreturn_t s2io_isr(int irq, void *dev_id); | 1000 | static irqreturn_t s2io_isr(int irq, void *dev_id); |
998 | static int verify_xena_quiescence(nic_t *sp); | 1001 | static int verify_xena_quiescence(struct s2io_nic *sp); |
999 | static const struct ethtool_ops netdev_ethtool_ops; | 1002 | static const struct ethtool_ops netdev_ethtool_ops; |
1000 | static void s2io_set_link(struct work_struct *work); | 1003 | static void s2io_set_link(struct work_struct *work); |
1001 | static int s2io_set_swapper(nic_t * sp); | 1004 | static int s2io_set_swapper(struct s2io_nic * sp); |
1002 | static void s2io_card_down(nic_t *nic); | 1005 | static void s2io_card_down(struct s2io_nic *nic); |
1003 | static int s2io_card_up(nic_t *nic); | 1006 | static int s2io_card_up(struct s2io_nic *nic); |
1004 | static int get_xena_rev_id(struct pci_dev *pdev); | 1007 | static int get_xena_rev_id(struct pci_dev *pdev); |
1005 | static int wait_for_cmd_complete(void *addr, u64 busy_bit); | 1008 | static int wait_for_cmd_complete(void *addr, u64 busy_bit); |
1006 | static int s2io_add_isr(nic_t * sp); | 1009 | static int s2io_add_isr(struct s2io_nic * sp); |
1007 | static void s2io_rem_isr(nic_t * sp); | 1010 | static void s2io_rem_isr(struct s2io_nic * sp); |
1008 | 1011 | ||
1009 | static void restore_xmsi_data(nic_t *nic); | 1012 | static void restore_xmsi_data(struct s2io_nic *nic); |
1010 | 1013 | ||
1011 | static int s2io_club_tcp_session(u8 *buffer, u8 **tcp, u32 *tcp_len, lro_t **lro, RxD_t *rxdp, nic_t *sp); | 1014 | static int |
1012 | static void clear_lro_session(lro_t *lro); | 1015 | s2io_club_tcp_session(u8 *buffer, u8 **tcp, u32 *tcp_len, struct lro **lro, |
1016 | struct RxD_t *rxdp, struct s2io_nic *sp); | ||
1017 | static void clear_lro_session(struct lro *lro); | ||
1013 | static void queue_rx_frame(struct sk_buff *skb); | 1018 | static void queue_rx_frame(struct sk_buff *skb); |
1014 | static void update_L3L4_header(nic_t *sp, lro_t *lro); | 1019 | static void update_L3L4_header(struct s2io_nic *sp, struct lro *lro); |
1015 | static void lro_append_pkt(nic_t *sp, lro_t *lro, struct sk_buff *skb, u32 tcp_len); | 1020 | static void lro_append_pkt(struct s2io_nic *sp, struct lro *lro, |
1021 | struct sk_buff *skb, u32 tcp_len); | ||
1016 | 1022 | ||
1017 | #define s2io_tcp_mss(skb) skb_shinfo(skb)->gso_size | 1023 | #define s2io_tcp_mss(skb) skb_shinfo(skb)->gso_size |
1018 | #define s2io_udp_mss(skb) skb_shinfo(skb)->gso_size | 1024 | #define s2io_udp_mss(skb) skb_shinfo(skb)->gso_size |