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

Commit 8244132e 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/ipv4/ip_output.c
parents 7b2ff18e 38000a94
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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.

@@ -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.
+4 −7
Original line number Diff line number Diff line
@@ -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;
@@ -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);
+34 −21
Original line number Diff line number Diff line
@@ -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),
@@ -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[
@@ -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;
@@ -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),
@@ -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[
+1 −1
Original line number Diff line number Diff line
@@ -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
+4 −5
Original line number Diff line number Diff line
@@ -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);

@@ -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);
@@ -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)
@@ -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:
@@ -3574,7 +3574,6 @@ static int ehea_mem_notifier(struct notifier_block *nb,

out_unlock:
	mutex_unlock(&dlpar_mem_lock);
out:
	return ret;
}

Loading