drivers/net/xen-netfront.c: bogus code

2 messages, 2 authors, 2007-07-23 · open the first message on its own page

drivers/net/xen-netfront.c: bogus code

From: Adrian Bunk <hidden>
Date: 2007-07-22 23:27:14

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.

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed

Re: drivers/net/xen-netfront.c: bogus code

From: Jeremy Fitzhardinge <hidden>
Date: 2007-07-23 06:47:20

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help