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

Commit 2bd93d7a 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



Resolved logic conflicts causing a build failure due to
drivers/net/r8169.c changes using a patch from Stephen Rothwell.

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 64cad2ad 0972ddb2
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -393,8 +393,8 @@ typedef struct fec {
	uint	fec_addr_low;		/* lower 32 bits of station address	*/
	uint	fec_addr_low;		/* lower 32 bits of station address	*/
	ushort	fec_addr_high;		/* upper 16 bits of station address	*/
	ushort	fec_addr_high;		/* upper 16 bits of station address	*/
	ushort	res1;			/* reserved				*/
	ushort	res1;			/* reserved				*/
	uint	fec_hash_table_high;	/* upper 32-bits of hash table		*/
	uint	fec_grp_hash_table_high;	/* upper 32-bits of hash table		*/
	uint	fec_hash_table_low;	/* lower 32-bits of hash table		*/
	uint	fec_grp_hash_table_low;	/* lower 32-bits of hash table		*/
	uint	fec_r_des_start;	/* beginning of Rx descriptor ring	*/
	uint	fec_r_des_start;	/* beginning of Rx descriptor ring	*/
	uint	fec_x_des_start;	/* beginning of Tx descriptor ring	*/
	uint	fec_x_des_start;	/* beginning of Tx descriptor ring	*/
	uint	fec_r_buff_size;	/* Rx buffer size			*/
	uint	fec_r_buff_size;	/* Rx buffer size			*/
+3 −3
Original line number Original line Diff line number Diff line
@@ -566,9 +566,9 @@ struct atl1c_adapter {
#define __AT_TESTING        0x0001
#define __AT_TESTING        0x0001
#define __AT_RESETTING      0x0002
#define __AT_RESETTING      0x0002
#define __AT_DOWN           0x0003
#define __AT_DOWN           0x0003
	u8 work_event;
	unsigned long work_event;
#define ATL1C_WORK_EVENT_RESET 		0x01
#define	ATL1C_WORK_EVENT_RESET		0
#define ATL1C_WORK_EVENT_LINK_CHANGE	0x02
#define	ATL1C_WORK_EVENT_LINK_CHANGE	1
	u32 msg_enable;
	u32 msg_enable;


	bool have_msi;
	bool have_msi;
+5 −9
Original line number Original line Diff line number Diff line
@@ -325,7 +325,7 @@ static void atl1c_link_chg_event(struct atl1c_adapter *adapter)
		}
		}
	}
	}


	adapter->work_event |= ATL1C_WORK_EVENT_LINK_CHANGE;
	set_bit(ATL1C_WORK_EVENT_LINK_CHANGE, &adapter->work_event);
	schedule_work(&adapter->common_task);
	schedule_work(&adapter->common_task);
}
}


@@ -337,21 +337,17 @@ static void atl1c_common_task(struct work_struct *work)
	adapter = container_of(work, struct atl1c_adapter, common_task);
	adapter = container_of(work, struct atl1c_adapter, common_task);
	netdev = adapter->netdev;
	netdev = adapter->netdev;


	if (adapter->work_event & ATL1C_WORK_EVENT_RESET) {
	if (test_and_clear_bit(ATL1C_WORK_EVENT_RESET, &adapter->work_event)) {
		adapter->work_event &= ~ATL1C_WORK_EVENT_RESET;
		netif_device_detach(netdev);
		netif_device_detach(netdev);
		atl1c_down(adapter);
		atl1c_down(adapter);
		atl1c_up(adapter);
		atl1c_up(adapter);
		netif_device_attach(netdev);
		netif_device_attach(netdev);
		return;
	}
	}


	if (adapter->work_event & ATL1C_WORK_EVENT_LINK_CHANGE) {
	if (test_and_clear_bit(ATL1C_WORK_EVENT_LINK_CHANGE,
		adapter->work_event &= ~ATL1C_WORK_EVENT_LINK_CHANGE;
		&adapter->work_event))
		atl1c_check_link_status(adapter);
		atl1c_check_link_status(adapter);
}
}
	return;
}




static void atl1c_del_timer(struct atl1c_adapter *adapter)
static void atl1c_del_timer(struct atl1c_adapter *adapter)
@@ -369,7 +365,7 @@ static void atl1c_tx_timeout(struct net_device *netdev)
	struct atl1c_adapter *adapter = netdev_priv(netdev);
	struct atl1c_adapter *adapter = netdev_priv(netdev);


	/* Do the reset outside of interrupt context */
	/* Do the reset outside of interrupt context */
	adapter->work_event |= ATL1C_WORK_EVENT_RESET;
	set_bit(ATL1C_WORK_EVENT_RESET, &adapter->work_event);
	schedule_work(&adapter->common_task);
	schedule_work(&adapter->common_task);
}
}


+1 −0
Original line number Original line Diff line number Diff line
@@ -1907,6 +1907,7 @@ static void be_worker(struct work_struct *work)
	}
	}


reschedule:
reschedule:
	adapter->work_counter++;
	schedule_delayed_work(&adapter->work, msecs_to_jiffies(1000));
	schedule_delayed_work(&adapter->work, msecs_to_jiffies(1000));
}
}


+24 −10
Original line number Original line Diff line number Diff line
@@ -2019,15 +2019,23 @@ static inline void bnx2x_set_pbd_gso(struct sk_buff *skb,
static inline  u8 bnx2x_set_pbd_csum_e2(struct bnx2x *bp, struct sk_buff *skb,
static inline  u8 bnx2x_set_pbd_csum_e2(struct bnx2x *bp, struct sk_buff *skb,
	u32 *parsing_data, u32 xmit_type)
	u32 *parsing_data, u32 xmit_type)
{
{
	*parsing_data |=
			((((u8 *)skb_transport_header(skb) - skb->data) >> 1) <<
			ETH_TX_PARSE_BD_E2_TCP_HDR_START_OFFSET_W_SHIFT) &
			ETH_TX_PARSE_BD_E2_TCP_HDR_START_OFFSET_W;

	if (xmit_type & XMIT_CSUM_TCP) {
		*parsing_data |= ((tcp_hdrlen(skb) / 4) <<
		*parsing_data |= ((tcp_hdrlen(skb) / 4) <<
			ETH_TX_PARSE_BD_E2_TCP_HDR_LENGTH_DW_SHIFT) &
			ETH_TX_PARSE_BD_E2_TCP_HDR_LENGTH_DW_SHIFT) &
			ETH_TX_PARSE_BD_E2_TCP_HDR_LENGTH_DW;
			ETH_TX_PARSE_BD_E2_TCP_HDR_LENGTH_DW;


	*parsing_data |= ((((u8 *)tcp_hdr(skb) - skb->data) / 2) <<
		ETH_TX_PARSE_BD_E2_TCP_HDR_START_OFFSET_W_SHIFT) &
		ETH_TX_PARSE_BD_E2_TCP_HDR_START_OFFSET_W;

		return skb_transport_header(skb) + tcp_hdrlen(skb) - skb->data;
		return skb_transport_header(skb) + tcp_hdrlen(skb) - skb->data;
	} else
		/* We support checksum offload for TCP and UDP only.
		 * No need to pass the UDP header length - it's a constant.
		 */
		return skb_transport_header(skb) +
				sizeof(struct udphdr) - skb->data;
}
}


/**
/**
@@ -2043,7 +2051,7 @@ static inline u8 bnx2x_set_pbd_csum(struct bnx2x *bp, struct sk_buff *skb,
	struct eth_tx_parse_bd_e1x *pbd,
	struct eth_tx_parse_bd_e1x *pbd,
	u32 xmit_type)
	u32 xmit_type)
{
{
	u8 hlen = (skb_network_header(skb) - skb->data) / 2;
	u8 hlen = (skb_network_header(skb) - skb->data) >> 1;


	/* for now NS flag is not used in Linux */
	/* for now NS flag is not used in Linux */
	pbd->global_data =
	pbd->global_data =
@@ -2051,9 +2059,15 @@ static inline u8 bnx2x_set_pbd_csum(struct bnx2x *bp, struct sk_buff *skb,
			 ETH_TX_PARSE_BD_E1X_LLC_SNAP_EN_SHIFT));
			 ETH_TX_PARSE_BD_E1X_LLC_SNAP_EN_SHIFT));


	pbd->ip_hlen_w = (skb_transport_header(skb) -
	pbd->ip_hlen_w = (skb_transport_header(skb) -
			skb_network_header(skb)) / 2;
			skb_network_header(skb)) >> 1;


	hlen += pbd->ip_hlen_w + tcp_hdrlen(skb) / 2;
	hlen += pbd->ip_hlen_w;

	/* We support checksum offload for TCP and UDP only */
	if (xmit_type & XMIT_CSUM_TCP)
		hlen += tcp_hdrlen(skb) / 2;
	else
		hlen += sizeof(struct udphdr) / 2;


	pbd->total_hlen_w = cpu_to_le16(hlen);
	pbd->total_hlen_w = cpu_to_le16(hlen);
	hlen = hlen*2;
	hlen = hlen*2;
Loading