Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/smsc911x.c
This commit is contained in:
@@ -1877,6 +1877,8 @@ netxen_nic_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
|
||||
struct cmd_desc_type0 *hwdesc, *first_desc;
|
||||
struct pci_dev *pdev;
|
||||
int i, k;
|
||||
int delta = 0;
|
||||
struct skb_frag_struct *frag;
|
||||
|
||||
u32 producer;
|
||||
int frag_count, no_of_desc;
|
||||
@@ -1884,6 +1886,21 @@ netxen_nic_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
|
||||
|
||||
frag_count = skb_shinfo(skb)->nr_frags + 1;
|
||||
|
||||
/* 14 frags supported for normal packet and
|
||||
* 32 frags supported for TSO packet
|
||||
*/
|
||||
if (!skb_is_gso(skb) && frag_count > NETXEN_MAX_FRAGS_PER_TX) {
|
||||
|
||||
for (i = 0; i < (frag_count - NETXEN_MAX_FRAGS_PER_TX); i++) {
|
||||
frag = &skb_shinfo(skb)->frags[i];
|
||||
delta += frag->size;
|
||||
}
|
||||
|
||||
if (!__pskb_pull_tail(skb, delta))
|
||||
goto drop_packet;
|
||||
|
||||
frag_count = 1 + skb_shinfo(skb)->nr_frags;
|
||||
}
|
||||
/* 4 fragments per cmd des */
|
||||
no_of_desc = (frag_count + 3) >> 2;
|
||||
|
||||
|
Reference in New Issue
Block a user