Re: drivers/net/xen-netfront.c: bogus code
From: Jeremy Fitzhardinge <hidden>
Date: 2007-07-23 06:47:20
Also in:
lkml, xen-devel
Adrian Bunk wrote:
The Coverity checker spotted the following bogus code
in drivers/net/xen-netfront.c:
<-- snip -->
...
static void xennet_alloc_rx_buffers(struct net_device *dev)
{
...
for (nr_flips = i = 0; ; i++) {
skb = __skb_dequeue(&np->rx_batch);
if (skb == NULL)
break;
skb->dev = dev;
id = xennet_rxidx(req_prod + i);
BUG_ON(np->rx_skbs[id]);
np->rx_skbs[id] = skb;
ref = gnttab_claim_grant_reference(&np->gref_rx_head);
BUG_ON((signed short)ref < 0);
np->grant_rx_ref[id] = ref;
pfn = page_to_pfn(skb_shinfo(skb)->frags[0].page);
vaddr = page_address(skb_shinfo(skb)->frags[0].page);
req = RING_GET_REQUEST(&np->rx, req_prod + i);
gnttab_grant_foreign_access_ref(ref,
np->xbdev->otherend_id,
pfn_to_mfn(pfn),
0);
req->id = id;
req->gref = ref;
}
if (nr_flips != 0) {
...
<-- snip -->
Note that "nr_flips" is always 0 in the last line.
Thanks. That's probably a residual from me removing the page-flipping
code. I'll give it another pass.
J