From: Rajesh Borundia Date: Tue, 31 Aug 2010 17:17:49 +0000 (+0000) Subject: qlcnic: fix panic while using eth_hdr X-Git-Tag: v2.6.37-rc1~147^2~612 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=dcb50afff747d15fc2ffff762c08c325e4c229e5;p=linux.git qlcnic: fix panic while using eth_hdr o skb->mac_header is not set, so machine panics while using function eth_hdr. Signed-off-by: Rajesh Borundia Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller --- diff --git a/drivers/net/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c index 9a3ebb8a8203..789fe817cfca 100644 --- a/drivers/net/qlcnic/qlcnic_main.c +++ b/drivers/net/qlcnic/qlcnic_main.c @@ -1991,6 +1991,7 @@ qlcnic_xmit_frame(struct sk_buff *skb, struct net_device *netdev) struct qlcnic_skb_frag *buffrag; struct cmd_desc_type0 *hwdesc, *first_desc; struct pci_dev *pdev; + struct ethhdr *phdr; int i, k; u32 producer; @@ -2003,7 +2004,8 @@ qlcnic_xmit_frame(struct sk_buff *skb, struct net_device *netdev) } if (adapter->flags & QLCNIC_MACSPOOF) { - if (compare_ether_addr(eth_hdr(skb)->h_source, + phdr = (struct ethhdr *)skb->data; + if (compare_ether_addr(phdr->h_source, adapter->mac_addr)) goto drop_packet; }