Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5802b140 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

Conflicts:
	net/iucv/af_iucv.c
parents 09488e2e 29fe1b48
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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);

@@ -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) {
@@ -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));
+2 −3
Original line number Diff line number Diff line
@@ -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:
@@ -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:
+12 −9
Original line number Diff line number Diff line
@@ -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)
@@ -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)
@@ -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 |
+13 −32
Original line number Diff line number Diff line
@@ -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))
@@ -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) +
+6 −0
Original line number Diff line number Diff line
@@ -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