Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/wireless/iwlwifi/iwl4965-base.c
This commit is contained in:
@@ -1290,12 +1290,14 @@ static int __skb_splice_bits(struct sk_buff *skb, unsigned int *offset,
|
||||
{
|
||||
unsigned int nr_pages = spd->nr_pages;
|
||||
unsigned int poff, plen, len, toff, tlen;
|
||||
int headlen, seg;
|
||||
int headlen, seg, error = 0;
|
||||
|
||||
toff = *offset;
|
||||
tlen = *total_len;
|
||||
if (!tlen)
|
||||
if (!tlen) {
|
||||
error = 1;
|
||||
goto err;
|
||||
}
|
||||
|
||||
/*
|
||||
* if the offset is greater than the linear part, go directly to
|
||||
@@ -1337,7 +1339,8 @@ static int __skb_splice_bits(struct sk_buff *skb, unsigned int *offset,
|
||||
* just jump directly to update and return, no point
|
||||
* in going over fragments when the output is full.
|
||||
*/
|
||||
if (spd_fill_page(spd, virt_to_page(p), plen, poff, skb))
|
||||
error = spd_fill_page(spd, virt_to_page(p), plen, poff, skb);
|
||||
if (error)
|
||||
goto done;
|
||||
|
||||
tlen -= plen;
|
||||
@@ -1367,7 +1370,8 @@ map_frag:
|
||||
if (!plen)
|
||||
break;
|
||||
|
||||
if (spd_fill_page(spd, f->page, plen, poff, skb))
|
||||
error = spd_fill_page(spd, f->page, plen, poff, skb);
|
||||
if (error)
|
||||
break;
|
||||
|
||||
tlen -= plen;
|
||||
@@ -1380,7 +1384,10 @@ done:
|
||||
return 0;
|
||||
}
|
||||
err:
|
||||
return 1;
|
||||
/* update the offset to reflect the linear part skip, if any */
|
||||
if (!error)
|
||||
*offset = toff;
|
||||
return error;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user