diff options
| author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2007-03-19 15:33:04 -0700 | 
|---|---|---|
| committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-25 22:24:41 -0700 | 
| commit | 98e399f82ab3a6d863d1d4a7ea48925cc91c830e (patch) | |
| tree | 5f84043aeec1ec27c2e8e6cc25b5d2e6c3d07343 /drivers/message/fusion/mptlan.c | |
| parent | 31713c333ddbb66d694829082620b69b71c4b09a (diff) | |
| download | olio-linux-3.10-98e399f82ab3a6d863d1d4a7ea48925cc91c830e.tar.xz olio-linux-3.10-98e399f82ab3a6d863d1d4a7ea48925cc91c830e.zip  | |
[SK_BUFF]: Introduce skb_mac_header()
For the places where we need a pointer to the mac header, it is still legal to
touch skb->mac.raw directly if just adding to, subtracting from or setting it
to another layer header.
This one also converts some more cases to skb_reset_mac_header() that my
regex missed as it had no spaces before nor after '=', ugh.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/message/fusion/mptlan.c')
| -rw-r--r-- | drivers/message/fusion/mptlan.c | 26 | 
1 files changed, 14 insertions, 12 deletions
diff --git a/drivers/message/fusion/mptlan.c b/drivers/message/fusion/mptlan.c index d5b878d5628..21fe1b66808 100644 --- a/drivers/message/fusion/mptlan.c +++ b/drivers/message/fusion/mptlan.c @@ -714,6 +714,7 @@ mpt_lan_sdu_send (struct sk_buff *skb, struct net_device *dev)  	LANSendRequest_t *pSendReq;  	SGETransaction32_t *pTrans;  	SGESimple64_t *pSimple; +	const unsigned char *mac;  	dma_addr_t dma;  	unsigned long flags;  	int ctx; @@ -784,6 +785,7 @@ mpt_lan_sdu_send (struct sk_buff *skb, struct net_device *dev)  //			IOC_AND_NETDEV_NAMES_s_s(dev),  //			ctx, skb, skb->data)); +	mac = skb_mac_header(skb);  #ifdef QLOGIC_NAA_WORKAROUND  {  	struct NAA_Hosed *nh; @@ -793,12 +795,12 @@ mpt_lan_sdu_send (struct sk_buff *skb, struct net_device *dev)  	   drops. */  	read_lock_irq(&bad_naa_lock);  	for (nh = mpt_bad_naa; nh != NULL; nh=nh->next) { -		if ((nh->ieee[0] == skb->mac.raw[0]) && -		    (nh->ieee[1] == skb->mac.raw[1]) && -		    (nh->ieee[2] == skb->mac.raw[2]) && -		    (nh->ieee[3] == skb->mac.raw[3]) && -		    (nh->ieee[4] == skb->mac.raw[4]) && -		    (nh->ieee[5] == skb->mac.raw[5])) { +		if ((nh->ieee[0] == mac[0]) && +		    (nh->ieee[1] == mac[1]) && +		    (nh->ieee[2] == mac[2]) && +		    (nh->ieee[3] == mac[3]) && +		    (nh->ieee[4] == mac[4]) && +		    (nh->ieee[5] == mac[5])) {  			cur_naa = nh->NAA;  			dlprintk ((KERN_INFO "mptlan/sdu_send: using NAA value "  				  "= %04x.\n", cur_naa)); @@ -810,12 +812,12 @@ mpt_lan_sdu_send (struct sk_buff *skb, struct net_device *dev)  #endif  	pTrans->TransactionDetails[0] = cpu_to_le32((cur_naa         << 16) | -						    (skb->mac.raw[0] <<  8) | -						    (skb->mac.raw[1] <<  0)); -	pTrans->TransactionDetails[1] = cpu_to_le32((skb->mac.raw[2] << 24) | -						    (skb->mac.raw[3] << 16) | -						    (skb->mac.raw[4] <<  8) | -						    (skb->mac.raw[5] <<  0)); +						    (mac[0] <<  8) | +						    (mac[1] <<  0)); +	pTrans->TransactionDetails[1] = cpu_to_le32((mac[2] << 24) | +						    (mac[3] << 16) | +						    (mac[4] <<  8) | +						    (mac[5] <<  0));  	pSimple = (SGESimple64_t *) &pTrans->TransactionDetails[2];  |