Hi Jesper,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on net-next/master]

url:    
https://github.com/0day-ci/linux/commits/Jesper-Dangaard-Brouer/XDP-redirect-memory-return-API/20180330-203122

New smatch warnings:
drivers/net/virtio_net.c:437 __virtnet_xdp_xmit() warn: signedness bug 
returning '(-75)'

Old smatch warnings:
drivers/net/virtio_net.c:441 __virtnet_xdp_xmit() warn: signedness bug 
returning '(-95)'
drivers/net/virtio_net.c:444 __virtnet_xdp_xmit() warn: signedness bug 
returning '(-75)'

# 
https://github.com/0day-ci/linux/commit/22fb2349485f20be1ba096243ae9a8d9a20edda5
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout 22fb2349485f20be1ba096243ae9a8d9a20edda5
vim +437 drivers/net/virtio_net.c

186b3c998 Jason Wang             2017-09-19  417  
186b3c998 Jason Wang             2017-09-19  418  static bool 
__virtnet_xdp_xmit(struct virtnet_info *vi,
f6b10209b Jason Wang             2017-02-21  419                               
struct xdp_buff *xdp)
56434a01b John Fastabend         2016-12-15  420  {
56434a01b John Fastabend         2016-12-15  421        struct 
virtio_net_hdr_mrg_rxbuf *hdr;
22fb23494 Jesper Dangaard Brouer 2018-03-29  422        struct xdp_frame *xdpf, 
*xdpf_sent;
722d82830 John Fastabend         2017-02-02  423        struct send_queue *sq;
22fb23494 Jesper Dangaard Brouer 2018-03-29  424        unsigned int len;
722d82830 John Fastabend         2017-02-02  425        unsigned int qp;
56434a01b John Fastabend         2016-12-15  426        int err;
56434a01b John Fastabend         2016-12-15  427  
722d82830 John Fastabend         2017-02-02  428        qp = 
vi->curr_queue_pairs - vi->xdp_queue_pairs + smp_processor_id();
722d82830 John Fastabend         2017-02-02  429        sq = &vi->sq[qp];
722d82830 John Fastabend         2017-02-02  430  
56434a01b John Fastabend         2016-12-15  431        /* Free up any pending 
old buffers before queueing new ones. */
22fb23494 Jesper Dangaard Brouer 2018-03-29  432        while ((xdpf_sent = 
virtqueue_get_buf(sq->vq, &len)) != NULL)
22fb23494 Jesper Dangaard Brouer 2018-03-29  433                
xdp_return_frame(xdpf_sent->data, &xdpf_sent->mem);
bb91accf2 Jason Wang             2016-12-23  434  
22fb23494 Jesper Dangaard Brouer 2018-03-29  435        xdpf = 
convert_to_xdp_frame(xdp);
22fb23494 Jesper Dangaard Brouer 2018-03-29  436        if (unlikely(!xdpf))
22fb23494 Jesper Dangaard Brouer 2018-03-29 @437                return 
-EOVERFLOW;
22fb23494 Jesper Dangaard Brouer 2018-03-29  438  
22fb23494 Jesper Dangaard Brouer 2018-03-29  439        /* virtqueue want to 
use data area in-front of packet */
22fb23494 Jesper Dangaard Brouer 2018-03-29  440        if 
(unlikely(xdpf->metasize > 0))
22fb23494 Jesper Dangaard Brouer 2018-03-29  441                return 
-EOPNOTSUPP;
22fb23494 Jesper Dangaard Brouer 2018-03-29  442  
22fb23494 Jesper Dangaard Brouer 2018-03-29  443        if 
(unlikely(xdpf->headroom < vi->hdr_len))
22fb23494 Jesper Dangaard Brouer 2018-03-29  444                return 
-EOVERFLOW;
56434a01b John Fastabend         2016-12-15  445  
22fb23494 Jesper Dangaard Brouer 2018-03-29  446        /* Make room for 
virtqueue hdr (also change xdpf->headroom?) */
22fb23494 Jesper Dangaard Brouer 2018-03-29  447        xdpf->data -= 
vi->hdr_len;
56434a01b John Fastabend         2016-12-15  448        /* Zero header and 
leave csum up to XDP layers */
22fb23494 Jesper Dangaard Brouer 2018-03-29  449        hdr = xdpf->data;
56434a01b John Fastabend         2016-12-15  450        memset(hdr, 0, 
vi->hdr_len);
22fb23494 Jesper Dangaard Brouer 2018-03-29  451        hdr->hdr.hdr_len = 
xdpf->len; /* Q: is this needed? */
22fb23494 Jesper Dangaard Brouer 2018-03-29  452        xdpf->len   += 
vi->hdr_len;
56434a01b John Fastabend         2016-12-15  453  
22fb23494 Jesper Dangaard Brouer 2018-03-29  454        sg_init_one(sq->sg, 
xdpf->data, xdpf->len);
bb91accf2 Jason Wang             2016-12-23  455  
22fb23494 Jesper Dangaard Brouer 2018-03-29  456        err = 
virtqueue_add_outbuf(sq->vq, sq->sg, 1, xdpf, GFP_ATOMIC);
11b7d897c Jesper Dangaard Brouer 2018-02-20  457        if (unlikely(err))
11b7d897c Jesper Dangaard Brouer 2018-02-20  458                return false; 
/* Caller handle free/refcnt */
56434a01b John Fastabend         2016-12-15  459  
a67edbf4f Daniel Borkmann        2017-01-25  460        return true;
56434a01b John Fastabend         2016-12-15  461  }
56434a01b John Fastabend         2016-12-15  462  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
_______________________________________________
kbuild mailing list
kbuild@lists.01.org
https://lists.01.org/mailman/listinfo/kbuild

Reply via email to