Loading drivers/net/Kconfig +2 −0 Original line number Diff line number Diff line Loading @@ -2755,6 +2755,7 @@ config MYRI10GE_DCA config NETXEN_NIC tristate "NetXen Multi port (1/10) Gigabit Ethernet NIC" depends on PCI select FW_LOADER help This enables the support for NetXen's Gigabit Ethernet card. Loading Loading @@ -2820,6 +2821,7 @@ config BNX2X config QLCNIC tristate "QLOGIC QLCNIC 1/10Gb Converged Ethernet NIC Support" depends on PCI select FW_LOADER help This driver supports QLogic QLE8240 and QLE8242 Converged Ethernet devices. Loading drivers/net/bnx2.c +4 −7 Original line number Diff line number Diff line Loading @@ -3086,7 +3086,6 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget) u16 hw_cons, sw_cons, sw_ring_cons, sw_prod, sw_ring_prod; struct l2_fhdr *rx_hdr; int rx_pkt = 0, pg_ring_used = 0; struct pci_dev *pdev = bp->pdev; hw_cons = bnx2_get_hw_rx_cons(bnapi); sw_cons = rxr->rx_cons; Loading @@ -3112,12 +3111,10 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget) skb = rx_buf->skb; prefetchw(skb); if (!get_dma_ops(&pdev->dev)->sync_single_for_cpu) { next_rx_buf = &rxr->rx_buf_ring[ RX_RING_IDX(NEXT_RX_BD(sw_cons))]; &rxr->rx_buf_ring[RX_RING_IDX(NEXT_RX_BD(sw_cons))]; prefetch(next_rx_buf->desc); } rx_buf->skb = NULL; dma_addr = dma_unmap_addr(rx_buf, mapping); Loading drivers/net/cnic.c +34 −21 Original line number Diff line number Diff line Loading @@ -3925,8 +3925,9 @@ static void cnic_init_bnx2x_tx_ring(struct cnic_dev *dev) HC_INDEX_DEF_C_ETH_ISCSI_CQ_CONS; context->cstorm_st_context.status_block_id = BNX2X_DEF_SB_ID; context->xstorm_st_context.statistics_data = (cli | XSTORM_ETH_ST_CONTEXT_STATISTICS_ENABLE); if (cli < MAX_X_STAT_COUNTER_ID) context->xstorm_st_context.statistics_data = cli | XSTORM_ETH_ST_CONTEXT_STATISTICS_ENABLE; context->xstorm_ag_context.cdu_reserved = CDU_RSRVD_VALUE_TYPE_A(BNX2X_HW_CID(BNX2X_ISCSI_L2_CID, func), Loading @@ -3934,10 +3935,12 @@ static void cnic_init_bnx2x_tx_ring(struct cnic_dev *dev) ETH_CONNECTION_TYPE); /* reset xstorm per client statistics */ if (cli < MAX_X_STAT_COUNTER_ID) { val = BAR_XSTRORM_INTMEM + XSTORM_PER_COUNTER_ID_STATS_OFFSET(port, cli); for (i = 0; i < sizeof(struct xstorm_per_client_stats) / 4; i++) CNIC_WR(dev, val + i * 4, 0); } cp->tx_cons_ptr = &cp->bnx2x_def_status_blk->c_def_status_block.index_values[ Loading Loading @@ -3984,9 +3987,11 @@ static void cnic_init_bnx2x_rx_ring(struct cnic_dev *dev) BNX2X_ISCSI_RX_SB_INDEX_NUM; context->ustorm_st_context.common.clientId = cli; context->ustorm_st_context.common.status_block_id = BNX2X_DEF_SB_ID; if (cli < MAX_U_STAT_COUNTER_ID) { context->ustorm_st_context.common.flags = USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_STATISTICS; context->ustorm_st_context.common.statistics_counter_id = cli; } context->ustorm_st_context.common.mc_alignment_log_size = 0; context->ustorm_st_context.common.bd_buff_size = cp->l2_single_buf_size; Loading Loading @@ -4017,10 +4022,13 @@ static void cnic_init_bnx2x_rx_ring(struct cnic_dev *dev) /* client tstorm info */ tstorm_client.mtu = cp->l2_single_buf_size - 14; tstorm_client.config_flags = (TSTORM_ETH_CLIENT_CONFIG_E1HOV_REM_ENABLE | TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE); tstorm_client.config_flags = TSTORM_ETH_CLIENT_CONFIG_E1HOV_REM_ENABLE; if (cli < MAX_T_STAT_COUNTER_ID) { tstorm_client.config_flags |= TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE; tstorm_client.statistics_counter_id = cli; } CNIC_WR(dev, BAR_TSTRORM_INTMEM + TSTORM_CLIENT_CONFIG_OFFSET(port, cli), Loading @@ -4030,16 +4038,21 @@ static void cnic_init_bnx2x_rx_ring(struct cnic_dev *dev) ((u32 *)&tstorm_client)[1]); /* reset tstorm per client statistics */ if (cli < MAX_T_STAT_COUNTER_ID) { val = BAR_TSTRORM_INTMEM + TSTORM_PER_COUNTER_ID_STATS_OFFSET(port, cli); for (i = 0; i < sizeof(struct tstorm_per_client_stats) / 4; i++) CNIC_WR(dev, val + i * 4, 0); } /* reset ustorm per client statistics */ if (cli < MAX_U_STAT_COUNTER_ID) { val = BAR_USTRORM_INTMEM + USTORM_PER_COUNTER_ID_STATS_OFFSET(port, cli); for (i = 0; i < sizeof(struct ustorm_per_client_stats) / 4; i++) CNIC_WR(dev, val + i * 4, 0); } cp->rx_cons_ptr = &cp->bnx2x_def_status_blk->u_def_status_block.index_values[ Loading drivers/net/ehea/ehea.h +1 −1 Original line number Diff line number Diff line Loading @@ -40,7 +40,7 @@ #include <asm/io.h> #define DRV_NAME "ehea" #define DRV_VERSION "EHEA_0103" #define DRV_VERSION "EHEA_0105" /* eHEA capability flags */ #define DLPAR_PORT_ADD_REM 1 Loading drivers/net/ehea/ehea_main.c +4 −5 Original line number Diff line number Diff line Loading @@ -867,6 +867,7 @@ static int ehea_poll(struct napi_struct *napi, int budget) ehea_reset_cq_ep(pr->send_cq); ehea_reset_cq_n1(pr->recv_cq); ehea_reset_cq_n1(pr->send_cq); rmb(); cqe = ehea_poll_rq1(pr->qp, &wqe_index); cqe_skb = ehea_poll_cq(pr->send_cq); Loading Loading @@ -2859,6 +2860,7 @@ static void ehea_reset_port(struct work_struct *work) container_of(work, struct ehea_port, reset_task); struct net_device *dev = port->netdev; mutex_lock(&dlpar_mem_lock); port->resets++; mutex_lock(&port->port_lock); netif_stop_queue(dev); Loading @@ -2881,6 +2883,7 @@ static void ehea_reset_port(struct work_struct *work) netif_wake_queue(dev); out: mutex_unlock(&port->port_lock); mutex_unlock(&dlpar_mem_lock); } static void ehea_rereg_mrs(struct work_struct *work) Loading Loading @@ -3542,10 +3545,7 @@ static int ehea_mem_notifier(struct notifier_block *nb, int ret = NOTIFY_BAD; struct memory_notify *arg = data; if (!mutex_trylock(&dlpar_mem_lock)) { ehea_info("ehea_mem_notifier must not be called parallelized"); goto out; } mutex_lock(&dlpar_mem_lock); switch (action) { case MEM_CANCEL_OFFLINE: Loading Loading @@ -3574,7 +3574,6 @@ static int ehea_mem_notifier(struct notifier_block *nb, out_unlock: mutex_unlock(&dlpar_mem_lock); out: return ret; } Loading Loading
drivers/net/Kconfig +2 −0 Original line number Diff line number Diff line Loading @@ -2755,6 +2755,7 @@ config MYRI10GE_DCA config NETXEN_NIC tristate "NetXen Multi port (1/10) Gigabit Ethernet NIC" depends on PCI select FW_LOADER help This enables the support for NetXen's Gigabit Ethernet card. Loading Loading @@ -2820,6 +2821,7 @@ config BNX2X config QLCNIC tristate "QLOGIC QLCNIC 1/10Gb Converged Ethernet NIC Support" depends on PCI select FW_LOADER help This driver supports QLogic QLE8240 and QLE8242 Converged Ethernet devices. Loading
drivers/net/bnx2.c +4 −7 Original line number Diff line number Diff line Loading @@ -3086,7 +3086,6 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget) u16 hw_cons, sw_cons, sw_ring_cons, sw_prod, sw_ring_prod; struct l2_fhdr *rx_hdr; int rx_pkt = 0, pg_ring_used = 0; struct pci_dev *pdev = bp->pdev; hw_cons = bnx2_get_hw_rx_cons(bnapi); sw_cons = rxr->rx_cons; Loading @@ -3112,12 +3111,10 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget) skb = rx_buf->skb; prefetchw(skb); if (!get_dma_ops(&pdev->dev)->sync_single_for_cpu) { next_rx_buf = &rxr->rx_buf_ring[ RX_RING_IDX(NEXT_RX_BD(sw_cons))]; &rxr->rx_buf_ring[RX_RING_IDX(NEXT_RX_BD(sw_cons))]; prefetch(next_rx_buf->desc); } rx_buf->skb = NULL; dma_addr = dma_unmap_addr(rx_buf, mapping); Loading
drivers/net/cnic.c +34 −21 Original line number Diff line number Diff line Loading @@ -3925,8 +3925,9 @@ static void cnic_init_bnx2x_tx_ring(struct cnic_dev *dev) HC_INDEX_DEF_C_ETH_ISCSI_CQ_CONS; context->cstorm_st_context.status_block_id = BNX2X_DEF_SB_ID; context->xstorm_st_context.statistics_data = (cli | XSTORM_ETH_ST_CONTEXT_STATISTICS_ENABLE); if (cli < MAX_X_STAT_COUNTER_ID) context->xstorm_st_context.statistics_data = cli | XSTORM_ETH_ST_CONTEXT_STATISTICS_ENABLE; context->xstorm_ag_context.cdu_reserved = CDU_RSRVD_VALUE_TYPE_A(BNX2X_HW_CID(BNX2X_ISCSI_L2_CID, func), Loading @@ -3934,10 +3935,12 @@ static void cnic_init_bnx2x_tx_ring(struct cnic_dev *dev) ETH_CONNECTION_TYPE); /* reset xstorm per client statistics */ if (cli < MAX_X_STAT_COUNTER_ID) { val = BAR_XSTRORM_INTMEM + XSTORM_PER_COUNTER_ID_STATS_OFFSET(port, cli); for (i = 0; i < sizeof(struct xstorm_per_client_stats) / 4; i++) CNIC_WR(dev, val + i * 4, 0); } cp->tx_cons_ptr = &cp->bnx2x_def_status_blk->c_def_status_block.index_values[ Loading Loading @@ -3984,9 +3987,11 @@ static void cnic_init_bnx2x_rx_ring(struct cnic_dev *dev) BNX2X_ISCSI_RX_SB_INDEX_NUM; context->ustorm_st_context.common.clientId = cli; context->ustorm_st_context.common.status_block_id = BNX2X_DEF_SB_ID; if (cli < MAX_U_STAT_COUNTER_ID) { context->ustorm_st_context.common.flags = USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_STATISTICS; context->ustorm_st_context.common.statistics_counter_id = cli; } context->ustorm_st_context.common.mc_alignment_log_size = 0; context->ustorm_st_context.common.bd_buff_size = cp->l2_single_buf_size; Loading Loading @@ -4017,10 +4022,13 @@ static void cnic_init_bnx2x_rx_ring(struct cnic_dev *dev) /* client tstorm info */ tstorm_client.mtu = cp->l2_single_buf_size - 14; tstorm_client.config_flags = (TSTORM_ETH_CLIENT_CONFIG_E1HOV_REM_ENABLE | TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE); tstorm_client.config_flags = TSTORM_ETH_CLIENT_CONFIG_E1HOV_REM_ENABLE; if (cli < MAX_T_STAT_COUNTER_ID) { tstorm_client.config_flags |= TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE; tstorm_client.statistics_counter_id = cli; } CNIC_WR(dev, BAR_TSTRORM_INTMEM + TSTORM_CLIENT_CONFIG_OFFSET(port, cli), Loading @@ -4030,16 +4038,21 @@ static void cnic_init_bnx2x_rx_ring(struct cnic_dev *dev) ((u32 *)&tstorm_client)[1]); /* reset tstorm per client statistics */ if (cli < MAX_T_STAT_COUNTER_ID) { val = BAR_TSTRORM_INTMEM + TSTORM_PER_COUNTER_ID_STATS_OFFSET(port, cli); for (i = 0; i < sizeof(struct tstorm_per_client_stats) / 4; i++) CNIC_WR(dev, val + i * 4, 0); } /* reset ustorm per client statistics */ if (cli < MAX_U_STAT_COUNTER_ID) { val = BAR_USTRORM_INTMEM + USTORM_PER_COUNTER_ID_STATS_OFFSET(port, cli); for (i = 0; i < sizeof(struct ustorm_per_client_stats) / 4; i++) CNIC_WR(dev, val + i * 4, 0); } cp->rx_cons_ptr = &cp->bnx2x_def_status_blk->u_def_status_block.index_values[ Loading
drivers/net/ehea/ehea.h +1 −1 Original line number Diff line number Diff line Loading @@ -40,7 +40,7 @@ #include <asm/io.h> #define DRV_NAME "ehea" #define DRV_VERSION "EHEA_0103" #define DRV_VERSION "EHEA_0105" /* eHEA capability flags */ #define DLPAR_PORT_ADD_REM 1 Loading
drivers/net/ehea/ehea_main.c +4 −5 Original line number Diff line number Diff line Loading @@ -867,6 +867,7 @@ static int ehea_poll(struct napi_struct *napi, int budget) ehea_reset_cq_ep(pr->send_cq); ehea_reset_cq_n1(pr->recv_cq); ehea_reset_cq_n1(pr->send_cq); rmb(); cqe = ehea_poll_rq1(pr->qp, &wqe_index); cqe_skb = ehea_poll_cq(pr->send_cq); Loading Loading @@ -2859,6 +2860,7 @@ static void ehea_reset_port(struct work_struct *work) container_of(work, struct ehea_port, reset_task); struct net_device *dev = port->netdev; mutex_lock(&dlpar_mem_lock); port->resets++; mutex_lock(&port->port_lock); netif_stop_queue(dev); Loading @@ -2881,6 +2883,7 @@ static void ehea_reset_port(struct work_struct *work) netif_wake_queue(dev); out: mutex_unlock(&port->port_lock); mutex_unlock(&dlpar_mem_lock); } static void ehea_rereg_mrs(struct work_struct *work) Loading Loading @@ -3542,10 +3545,7 @@ static int ehea_mem_notifier(struct notifier_block *nb, int ret = NOTIFY_BAD; struct memory_notify *arg = data; if (!mutex_trylock(&dlpar_mem_lock)) { ehea_info("ehea_mem_notifier must not be called parallelized"); goto out; } mutex_lock(&dlpar_mem_lock); switch (action) { case MEM_CANCEL_OFFLINE: Loading Loading @@ -3574,7 +3574,6 @@ static int ehea_mem_notifier(struct notifier_block *nb, out_unlock: mutex_unlock(&dlpar_mem_lock); out: return ret; } Loading