Loading drivers/net/8139too.c +5 −5 Original line number Diff line number Diff line Loading @@ -1383,6 +1383,11 @@ static void rtl8139_hw_start (struct net_device *dev) RTL_W32_F (MAC0 + 0, le32_to_cpu (*(__le32 *) (dev->dev_addr + 0))); RTL_W32_F (MAC0 + 4, le16_to_cpu (*(__le16 *) (dev->dev_addr + 4))); tp->cur_rx = 0; /* init Rx ring buffer DMA address */ RTL_W32_F (RxBuf, tp->rx_ring_dma); /* Must enable Tx/Rx before setting transfer thresholds! */ RTL_W8 (ChipCmd, CmdRxEnb | CmdTxEnb); Loading @@ -1390,8 +1395,6 @@ static void rtl8139_hw_start (struct net_device *dev) RTL_W32 (RxConfig, tp->rx_config); RTL_W32 (TxConfig, rtl8139_tx_config); tp->cur_rx = 0; rtl_check_media (dev, 1); if (tp->chipset >= CH_8139B) { Loading @@ -1406,9 +1409,6 @@ static void rtl8139_hw_start (struct net_device *dev) /* Lock Config[01234] and BMCR register writes */ RTL_W8 (Cfg9346, Cfg9346_Lock); /* init Rx ring buffer DMA address */ RTL_W32_F (RxBuf, tp->rx_ring_dma); /* init Tx buffer DMA addresses */ for (i = 0; i < NUM_TX_DESC; i++) RTL_W32_F (TxAddr0 + (i * 4), tp->tx_bufs_dma + (tp->tx_buf[i] - tp->tx_bufs)); Loading drivers/net/mlx4/en_main.c +2 −3 Original line number Diff line number Diff line Loading @@ -181,7 +181,7 @@ static void *mlx4_en_add(struct mlx4_dev *dev) mdev->workqueue = create_singlethread_workqueue("mlx4_en"); if (!mdev->workqueue) { err = -ENOMEM; goto err_close_nic; goto err_mr; } /* At this stage all non-port specific tasks are complete: Loading Loading @@ -214,9 +214,8 @@ err_free_netdev: flush_workqueue(mdev->workqueue); /* Stop event queue before we drop down to release shared SW state */ err_close_nic: destroy_workqueue(mdev->workqueue); err_mr: mlx4_mr_free(dev, &mdev->mr); err_uar: Loading drivers/net/mlx4/en_netdev.c +12 −9 Original line number Diff line number Diff line Loading @@ -348,12 +348,10 @@ static void mlx4_en_tx_timeout(struct net_device *dev) if (netif_msg_timer(priv)) mlx4_warn(mdev, "Tx timeout called on port:%d\n", priv->port); if (netif_carrier_ok(dev)) { priv->port_stats.tx_timeout++; mlx4_dbg(DRV, priv, "Scheduling watchdog\n"); queue_work(mdev->workqueue, &priv->watchdog_task); } } static struct net_device_stats *mlx4_en_get_stats(struct net_device *dev) Loading Loading @@ -761,10 +759,15 @@ static void mlx4_en_restart(struct work_struct *work) struct net_device *dev = priv->dev; mlx4_dbg(DRV, priv, "Watchdog task called for port %d\n", priv->port); mutex_lock(&mdev->state_lock); if (priv->port_up) { mlx4_en_stop_port(dev); if (mlx4_en_start_port(dev)) mlx4_err(mdev, "Failed restarting port %d\n", priv->port); } mutex_unlock(&mdev->state_lock); } static int mlx4_en_open(struct net_device *dev) Loading Loading @@ -1054,7 +1057,7 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port, * Set driver features */ dev->features |= NETIF_F_SG; dev->features |= NETIF_F_HW_CSUM; dev->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM; dev->features |= NETIF_F_HIGHDMA; dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX | Loading drivers/net/mlx4/en_port.c +13 −32 Original line number Diff line number Diff line Loading @@ -151,6 +151,7 @@ int mlx4_en_DUMP_ETH_STATS(struct mlx4_en_dev *mdev, u8 port, u8 reset) struct mlx4_cmd_mailbox *mailbox; u64 in_mod = reset << 8 | port; int err; int i; mailbox = mlx4_alloc_cmd_mailbox(mdev->dev); if (IS_ERR(mailbox)) Loading @@ -165,38 +166,18 @@ int mlx4_en_DUMP_ETH_STATS(struct mlx4_en_dev *mdev, u8 port, u8 reset) spin_lock_bh(&priv->stats_lock); stats->rx_packets = be32_to_cpu(mlx4_en_stats->RTOTFRMS) - be32_to_cpu(mlx4_en_stats->RDROP); stats->tx_packets = be64_to_cpu(mlx4_en_stats->TTOT_prio_0) + be64_to_cpu(mlx4_en_stats->TTOT_prio_1) + be64_to_cpu(mlx4_en_stats->TTOT_prio_2) + be64_to_cpu(mlx4_en_stats->TTOT_prio_3) + be64_to_cpu(mlx4_en_stats->TTOT_prio_4) + be64_to_cpu(mlx4_en_stats->TTOT_prio_5) + be64_to_cpu(mlx4_en_stats->TTOT_prio_6) + be64_to_cpu(mlx4_en_stats->TTOT_prio_7) + be64_to_cpu(mlx4_en_stats->TTOT_novlan) + be64_to_cpu(mlx4_en_stats->TTOT_loopbk); stats->rx_bytes = be64_to_cpu(mlx4_en_stats->ROCT_prio_0) + be64_to_cpu(mlx4_en_stats->ROCT_prio_1) + be64_to_cpu(mlx4_en_stats->ROCT_prio_2) + be64_to_cpu(mlx4_en_stats->ROCT_prio_3) + be64_to_cpu(mlx4_en_stats->ROCT_prio_4) + be64_to_cpu(mlx4_en_stats->ROCT_prio_5) + be64_to_cpu(mlx4_en_stats->ROCT_prio_6) + be64_to_cpu(mlx4_en_stats->ROCT_prio_7) + be64_to_cpu(mlx4_en_stats->ROCT_novlan); stats->tx_bytes = be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_0) + be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_1) + be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_2) + be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_3) + be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_4) + be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_5) + be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_6) + be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_7) + be64_to_cpu(mlx4_en_stats->TTTLOCT_novlan) + be64_to_cpu(mlx4_en_stats->TTTLOCT_loopbk); stats->rx_packets = 0; stats->rx_bytes = 0; for (i = 0; i < priv->rx_ring_num; i++) { stats->rx_packets += priv->rx_ring[i].packets; stats->rx_bytes += priv->rx_ring[i].bytes; } stats->tx_packets = 0; stats->tx_bytes = 0; for (i = 0; i <= priv->tx_ring_num; i++) { stats->tx_packets += priv->tx_ring[i].packets; stats->tx_bytes += priv->tx_ring[i].bytes; } stats->rx_errors = be64_to_cpu(mlx4_en_stats->PCS) + be32_to_cpu(mlx4_en_stats->RdropLength) + Loading drivers/net/mlx4/en_resources.c +6 −0 Original line number Diff line number Diff line Loading @@ -94,3 +94,9 @@ void mlx4_en_unmap_buffer(struct mlx4_buf *buf) vunmap(buf->direct.buf); } void mlx4_en_sqp_event(struct mlx4_qp *qp, enum mlx4_event event) { return; } Loading
drivers/net/8139too.c +5 −5 Original line number Diff line number Diff line Loading @@ -1383,6 +1383,11 @@ static void rtl8139_hw_start (struct net_device *dev) RTL_W32_F (MAC0 + 0, le32_to_cpu (*(__le32 *) (dev->dev_addr + 0))); RTL_W32_F (MAC0 + 4, le16_to_cpu (*(__le16 *) (dev->dev_addr + 4))); tp->cur_rx = 0; /* init Rx ring buffer DMA address */ RTL_W32_F (RxBuf, tp->rx_ring_dma); /* Must enable Tx/Rx before setting transfer thresholds! */ RTL_W8 (ChipCmd, CmdRxEnb | CmdTxEnb); Loading @@ -1390,8 +1395,6 @@ static void rtl8139_hw_start (struct net_device *dev) RTL_W32 (RxConfig, tp->rx_config); RTL_W32 (TxConfig, rtl8139_tx_config); tp->cur_rx = 0; rtl_check_media (dev, 1); if (tp->chipset >= CH_8139B) { Loading @@ -1406,9 +1409,6 @@ static void rtl8139_hw_start (struct net_device *dev) /* Lock Config[01234] and BMCR register writes */ RTL_W8 (Cfg9346, Cfg9346_Lock); /* init Rx ring buffer DMA address */ RTL_W32_F (RxBuf, tp->rx_ring_dma); /* init Tx buffer DMA addresses */ for (i = 0; i < NUM_TX_DESC; i++) RTL_W32_F (TxAddr0 + (i * 4), tp->tx_bufs_dma + (tp->tx_buf[i] - tp->tx_bufs)); Loading
drivers/net/mlx4/en_main.c +2 −3 Original line number Diff line number Diff line Loading @@ -181,7 +181,7 @@ static void *mlx4_en_add(struct mlx4_dev *dev) mdev->workqueue = create_singlethread_workqueue("mlx4_en"); if (!mdev->workqueue) { err = -ENOMEM; goto err_close_nic; goto err_mr; } /* At this stage all non-port specific tasks are complete: Loading Loading @@ -214,9 +214,8 @@ err_free_netdev: flush_workqueue(mdev->workqueue); /* Stop event queue before we drop down to release shared SW state */ err_close_nic: destroy_workqueue(mdev->workqueue); err_mr: mlx4_mr_free(dev, &mdev->mr); err_uar: Loading
drivers/net/mlx4/en_netdev.c +12 −9 Original line number Diff line number Diff line Loading @@ -348,12 +348,10 @@ static void mlx4_en_tx_timeout(struct net_device *dev) if (netif_msg_timer(priv)) mlx4_warn(mdev, "Tx timeout called on port:%d\n", priv->port); if (netif_carrier_ok(dev)) { priv->port_stats.tx_timeout++; mlx4_dbg(DRV, priv, "Scheduling watchdog\n"); queue_work(mdev->workqueue, &priv->watchdog_task); } } static struct net_device_stats *mlx4_en_get_stats(struct net_device *dev) Loading Loading @@ -761,10 +759,15 @@ static void mlx4_en_restart(struct work_struct *work) struct net_device *dev = priv->dev; mlx4_dbg(DRV, priv, "Watchdog task called for port %d\n", priv->port); mutex_lock(&mdev->state_lock); if (priv->port_up) { mlx4_en_stop_port(dev); if (mlx4_en_start_port(dev)) mlx4_err(mdev, "Failed restarting port %d\n", priv->port); } mutex_unlock(&mdev->state_lock); } static int mlx4_en_open(struct net_device *dev) Loading Loading @@ -1054,7 +1057,7 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port, * Set driver features */ dev->features |= NETIF_F_SG; dev->features |= NETIF_F_HW_CSUM; dev->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM; dev->features |= NETIF_F_HIGHDMA; dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX | Loading
drivers/net/mlx4/en_port.c +13 −32 Original line number Diff line number Diff line Loading @@ -151,6 +151,7 @@ int mlx4_en_DUMP_ETH_STATS(struct mlx4_en_dev *mdev, u8 port, u8 reset) struct mlx4_cmd_mailbox *mailbox; u64 in_mod = reset << 8 | port; int err; int i; mailbox = mlx4_alloc_cmd_mailbox(mdev->dev); if (IS_ERR(mailbox)) Loading @@ -165,38 +166,18 @@ int mlx4_en_DUMP_ETH_STATS(struct mlx4_en_dev *mdev, u8 port, u8 reset) spin_lock_bh(&priv->stats_lock); stats->rx_packets = be32_to_cpu(mlx4_en_stats->RTOTFRMS) - be32_to_cpu(mlx4_en_stats->RDROP); stats->tx_packets = be64_to_cpu(mlx4_en_stats->TTOT_prio_0) + be64_to_cpu(mlx4_en_stats->TTOT_prio_1) + be64_to_cpu(mlx4_en_stats->TTOT_prio_2) + be64_to_cpu(mlx4_en_stats->TTOT_prio_3) + be64_to_cpu(mlx4_en_stats->TTOT_prio_4) + be64_to_cpu(mlx4_en_stats->TTOT_prio_5) + be64_to_cpu(mlx4_en_stats->TTOT_prio_6) + be64_to_cpu(mlx4_en_stats->TTOT_prio_7) + be64_to_cpu(mlx4_en_stats->TTOT_novlan) + be64_to_cpu(mlx4_en_stats->TTOT_loopbk); stats->rx_bytes = be64_to_cpu(mlx4_en_stats->ROCT_prio_0) + be64_to_cpu(mlx4_en_stats->ROCT_prio_1) + be64_to_cpu(mlx4_en_stats->ROCT_prio_2) + be64_to_cpu(mlx4_en_stats->ROCT_prio_3) + be64_to_cpu(mlx4_en_stats->ROCT_prio_4) + be64_to_cpu(mlx4_en_stats->ROCT_prio_5) + be64_to_cpu(mlx4_en_stats->ROCT_prio_6) + be64_to_cpu(mlx4_en_stats->ROCT_prio_7) + be64_to_cpu(mlx4_en_stats->ROCT_novlan); stats->tx_bytes = be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_0) + be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_1) + be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_2) + be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_3) + be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_4) + be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_5) + be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_6) + be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_7) + be64_to_cpu(mlx4_en_stats->TTTLOCT_novlan) + be64_to_cpu(mlx4_en_stats->TTTLOCT_loopbk); stats->rx_packets = 0; stats->rx_bytes = 0; for (i = 0; i < priv->rx_ring_num; i++) { stats->rx_packets += priv->rx_ring[i].packets; stats->rx_bytes += priv->rx_ring[i].bytes; } stats->tx_packets = 0; stats->tx_bytes = 0; for (i = 0; i <= priv->tx_ring_num; i++) { stats->tx_packets += priv->tx_ring[i].packets; stats->tx_bytes += priv->tx_ring[i].bytes; } stats->rx_errors = be64_to_cpu(mlx4_en_stats->PCS) + be32_to_cpu(mlx4_en_stats->RdropLength) + Loading
drivers/net/mlx4/en_resources.c +6 −0 Original line number Diff line number Diff line Loading @@ -94,3 +94,9 @@ void mlx4_en_unmap_buffer(struct mlx4_buf *buf) vunmap(buf->direct.buf); } void mlx4_en_sqp_event(struct mlx4_qp *qp, enum mlx4_event event) { return; }