[{"id":1761358,"web_url":"http://patchwork.ozlabs.org/comment/1761358/","msgid":"<CAF=yD-KoztUEn-K5G9mvjE6wpq5+V9opAs5pim5cBr5cdvv3ig@mail.gmail.com>","list_archive_url":null,"date":"2017-08-31T22:45:47","subject":"Re: [PATCH net-next 2/2] net: convert (struct ubuf_info)->refcnt to\n\trefcount_t","submitter":{"id":67615,"url":"http://patchwork.ozlabs.org/api/people/67615/","name":"Willem de Bruijn","email":"willemdebruijn.kernel@gmail.com"},"content":"On Thu, Aug 31, 2017 at 4:30 PM, Eric Dumazet <edumazet@google.com> wrote:\n> refcount_t type and corresponding API should be\n> used instead of atomic_t when the variable is used as\n> a reference counter. This allows to avoid accidental\n> refcounter overflows that might lead to use-after-free\n> situations.\n>\n> Signed-off-by: Eric Dumazet <edumazet@google.com>\n> ---\n>  include/linux/skbuff.h | 5 +++--\n>  net/core/skbuff.c      | 8 ++++----\n>  2 files changed, 7 insertions(+), 6 deletions(-)\n>\n> diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h\n> index 7594e19bce622a38dc39c054093c3da15b99b67b..316a92b45351f53709886ee0099cbc83b66f1b15 100644\n> --- a/include/linux/skbuff.h\n> +++ b/include/linux/skbuff.h\n> @@ -22,6 +22,7 @@\n>  #include <linux/cache.h>\n>  #include <linux/rbtree.h>\n>  #include <linux/socket.h>\n> +#include <linux/refcount.h>\n>\n>  #include <linux/atomic.h>\n>  #include <asm/types.h>\n> @@ -456,7 +457,7 @@ struct ubuf_info {\n>                         u32 bytelen;\n>                 };\n>         };\n> -       atomic_t refcnt;\n> +       refcount_t refcnt;\n>\n>         struct mmpin {\n>                 struct user_struct *user;\n> @@ -472,7 +473,7 @@ struct ubuf_info *sock_zerocopy_realloc(struct sock *sk, size_t size,\n>\n>  static inline void sock_zerocopy_get(struct ubuf_info *uarg)\n>  {\n> -       atomic_inc(&uarg->refcnt);\n> +       refcount_inc(&uarg->refcnt);\n>  }\n>\n>  void sock_zerocopy_put(struct ubuf_info *uarg);\n> diff --git a/net/core/skbuff.c b/net/core/skbuff.c\n> index 65b9ca3945f8fd2b1bef4aef5dd774be04e5d128..ed86ca9afd9d8d1ac47983acf6006c179285a612 100644\n> --- a/net/core/skbuff.c\n> +++ b/net/core/skbuff.c\n> @@ -963,7 +963,7 @@ struct ubuf_info *sock_zerocopy_alloc(struct sock *sk, size_t size)\n>         uarg->len = 1;\n>         uarg->bytelen = size;\n>         uarg->zerocopy = 1;\n> -       atomic_set(&uarg->refcnt, 1);\n> +       refcount_set(&uarg->refcnt, 1);\n>         sock_hold(sk);\n>\n>         return uarg;\n> @@ -1086,7 +1086,7 @@ EXPORT_SYMBOL_GPL(sock_zerocopy_callback);\n>\n>  void sock_zerocopy_put(struct ubuf_info *uarg)\n>  {\n> -       if (uarg && atomic_dec_and_test(&uarg->refcnt)) {\n> +       if (uarg && refcount_dec_and_test(&uarg->refcnt)) {\n>                 if (uarg->callback)\n>                         uarg->callback(uarg, uarg->zerocopy);\n>                 else\n> @@ -1108,7 +1108,7 @@ void sock_zerocopy_put_abort(struct ubuf_info *uarg)\n>                  * avoid an skb send inside the main loop triggering uarg free.\n>                  */\n>                 if (sk->sk_type != SOCK_STREAM)\n> -                       atomic_inc(&uarg->refcnt);\n> +                       refcount_inc(&uarg->refcnt);\n\nThis would be a 0 -> 1 transition. It is taken only on the error path from\na socket that does not take an explicit hold at the start of sendmsg.\n\nThe code is vestigial, really, as the final patchset only includes tcp.\nIt is safe to leave as is for now, or I can remove it.\n\nIn 1f8b977ab32d (\"sock: enable MSG_ZEROCOPY\") I also updated\nother users of ubuf_info to initialize refcnt. We probably also want to\nconvert the call in handle_tx in drivers/vhost/net.c.","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"XWMG8E0I\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xjyCq4hk6z9s7C\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri,  1 Sep 2017 08:46:31 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751355AbdHaWq3 (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tThu, 31 Aug 2017 18:46:29 -0400","from mail-oi0-f66.google.com ([209.85.218.66]:33065 \"EHLO\n\tmail-oi0-f66.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1750925AbdHaWq2 (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Thu, 31 Aug 2017 18:46:28 -0400","by mail-oi0-f66.google.com with SMTP id t124so885624oih.0\n\tfor <netdev@vger.kernel.org>; Thu, 31 Aug 2017 15:46:28 -0700 (PDT)","by 10.168.52.10 with HTTP; Thu, 31 Aug 2017 15:45:47 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=mime-version:in-reply-to:references:from:date:message-id:subject:to\n\t:cc; bh=DMsBacPLITCawFtgZNEaxtF95NUr2t7NM2orhhqjFQs=;\n\tb=XWMG8E0I7ayO++FEtlaSzbVR2q0CgLk8iPL41ovv6PjCMjM2yNMKgjrJtCCaCG7Zg6\n\t0OFtUkSi4og9KHcgu+9Gieei5FRkI+BlOJ29vOBlMa41md5Do1Q0/xO8Hny2k0IeE5hl\n\tLGa4KL4tz6+lyeKCVBB4/foJcyWWygIUN2XTGU212+1WX+E5DL6SpanpWC33So89CyHK\n\tRwPRfFM+XmEPMm6OE92U+besSl16zvqEic+fm6umPIqGtvsQy6mG09rRMO+XgpmmoeYD\n\tTcYbVMsLBTuvDbVzYSUwdrzWCwf0vmcjMCdkNMxyP6WBBgl/6nA9omZAur3Ye3S9PZgC\n\t2jEQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to:cc;\n\tbh=DMsBacPLITCawFtgZNEaxtF95NUr2t7NM2orhhqjFQs=;\n\tb=d2z/Jai9GjcQyMZWMXz9j0ryn0tUUDMP/U5SNOe1AiwL1oZp5M0SG88OX+3qXc2Bvr\n\t2Pp8oa6MngxRYNE09pvK3kPgMkYlZ9lam/MCP4IqUzXffefqFPw2/6aWxEHup0FrbWW3\n\t0Q3EbqkDjoUvZREEOOaH1RNXsjoJKkuD7pDI6S56DQKnYvLp0kGjtsyOzR/zMsQAy191\n\tyQVT0s1Hl3McLGYErT6G8y4gKH9+Duk22z5eKR8TU9+HQlJFK5Ja4V4Lnd3B23vEuE2C\n\tbRPdz+v6Fo/0PdnW2lbV/B7otiPtTUKkjDaNR2NPpDf1ZKm/aRGVN3/JncCrCT7Cc9xF\n\t+Wvw==","X-Gm-Message-State":"AHPjjUhKadeday01uo7DWLFgxEp587iKeLuQNl4MsAYMOxMtpR7+jWOI\n\t7HWJPnOorbC6lCXmJMd/7wBXSUlbJA==","X-Google-Smtp-Source":"ADKCNb7/PPhNmeROuc5/Y7RYPSMt9zrU6kZXsDCXqV9LrcA1o7UCp4c0nqsid6hy/PStAhKaDN5snC+ZjXEPLgR/8ng=","X-Received":"by 10.202.48.194 with SMTP id w185mr25089oiw.196.1504219587790; \n\tThu, 31 Aug 2017 15:46:27 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<20170831203013.9219-3-edumazet@google.com>","References":"<20170831203013.9219-1-edumazet@google.com>\n\t<20170831203013.9219-3-edumazet@google.com>","From":"Willem de Bruijn <willemdebruijn.kernel@gmail.com>","Date":"Thu, 31 Aug 2017 18:45:47 -0400","Message-ID":"<CAF=yD-KoztUEn-K5G9mvjE6wpq5+V9opAs5pim5cBr5cdvv3ig@mail.gmail.com>","Subject":"Re: [PATCH net-next 2/2] net: convert (struct ubuf_info)->refcnt to\n\trefcount_t","To":"Eric Dumazet <edumazet@google.com>","Cc":"\"David S . Miller\" <davem@davemloft.net>,\n\tnetdev <netdev@vger.kernel.org>, Willem de Bruijn <willemb@google.com>,\n\tEric Dumazet <eric.dumazet@gmail.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1761373,"web_url":"http://patchwork.ozlabs.org/comment/1761373/","msgid":"<1504221321.15310.16.camel@edumazet-glaptop3.roam.corp.google.com>","list_archive_url":null,"date":"2017-08-31T23:15:21","subject":"Re: [PATCH net-next 2/2] net: convert (struct ubuf_info)->refcnt to\n\trefcount_t","submitter":{"id":2404,"url":"http://patchwork.ozlabs.org/api/people/2404/","name":"Eric Dumazet","email":"eric.dumazet@gmail.com"},"content":"On Thu, 2017-08-31 at 18:45 -0400, Willem de Bruijn wrote:\n> On Thu, Aug 31, 2017 at 4:30 PM, Eric Dumazet <edumazet@google.com> wrote:\n> > refcount_t type and corresponding API should be\n> > used instead of atomic_t when the variable is used as\n> > a reference counter. This allows to avoid accidental\n> > refcounter overflows that might lead to use-after-free\n> > situations.\n> >\n> > Signed-off-by: Eric Dumazet <edumazet@google.com>\n> > ---\n> >  include/linux/skbuff.h | 5 +++--\n> >  net/core/skbuff.c      | 8 ++++----\n> >  2 files changed, 7 insertions(+), 6 deletions(-)\n> >\n> > diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h\n> > index 7594e19bce622a38dc39c054093c3da15b99b67b..316a92b45351f53709886ee0099cbc83b66f1b15 100644\n> > --- a/include/linux/skbuff.h\n> > +++ b/include/linux/skbuff.h\n> > @@ -22,6 +22,7 @@\n> >  #include <linux/cache.h>\n> >  #include <linux/rbtree.h>\n> >  #include <linux/socket.h>\n> > +#include <linux/refcount.h>\n> >\n> >  #include <linux/atomic.h>\n> >  #include <asm/types.h>\n> > @@ -456,7 +457,7 @@ struct ubuf_info {\n> >                         u32 bytelen;\n> >                 };\n> >         };\n> > -       atomic_t refcnt;\n> > +       refcount_t refcnt;\n> >\n> >         struct mmpin {\n> >                 struct user_struct *user;\n> > @@ -472,7 +473,7 @@ struct ubuf_info *sock_zerocopy_realloc(struct sock *sk, size_t size,\n> >\n> >  static inline void sock_zerocopy_get(struct ubuf_info *uarg)\n> >  {\n> > -       atomic_inc(&uarg->refcnt);\n> > +       refcount_inc(&uarg->refcnt);\n> >  }\n> >\n> >  void sock_zerocopy_put(struct ubuf_info *uarg);\n> > diff --git a/net/core/skbuff.c b/net/core/skbuff.c\n> > index 65b9ca3945f8fd2b1bef4aef5dd774be04e5d128..ed86ca9afd9d8d1ac47983acf6006c179285a612 100644\n> > --- a/net/core/skbuff.c\n> > +++ b/net/core/skbuff.c\n> > @@ -963,7 +963,7 @@ struct ubuf_info *sock_zerocopy_alloc(struct sock *sk, size_t size)\n> >         uarg->len = 1;\n> >         uarg->bytelen = size;\n> >         uarg->zerocopy = 1;\n> > -       atomic_set(&uarg->refcnt, 1);\n> > +       refcount_set(&uarg->refcnt, 1);\n> >         sock_hold(sk);\n> >\n> >         return uarg;\n> > @@ -1086,7 +1086,7 @@ EXPORT_SYMBOL_GPL(sock_zerocopy_callback);\n> >\n> >  void sock_zerocopy_put(struct ubuf_info *uarg)\n> >  {\n> > -       if (uarg && atomic_dec_and_test(&uarg->refcnt)) {\n> > +       if (uarg && refcount_dec_and_test(&uarg->refcnt)) {\n> >                 if (uarg->callback)\n> >                         uarg->callback(uarg, uarg->zerocopy);\n> >                 else\n> > @@ -1108,7 +1108,7 @@ void sock_zerocopy_put_abort(struct ubuf_info *uarg)\n> >                  * avoid an skb send inside the main loop triggering uarg free.\n> >                  */\n> >                 if (sk->sk_type != SOCK_STREAM)\n> > -                       atomic_inc(&uarg->refcnt);\n> > +                       refcount_inc(&uarg->refcnt);\n> \n> This would be a 0 -> 1 transition. It is taken only on the error path from\n> a socket that does not take an explicit hold at the start of sendmsg.\n> \n\nArg.\n\n> The code is vestigial, really, as the final patchset only includes tcp.\n> It is safe to leave as is for now, or I can remove it.\n> \n\nOK I probably should remove this chunk in patch 1/2 then.\n\n> In 1f8b977ab32d (\"sock: enable MSG_ZEROCOPY\") I also updated\n> other users of ubuf_info to initialize refcnt. We probably also want to\n> convert the call in handle_tx in drivers/vhost/net.c.\n\nThanks ! :)","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"NJsCPRq3\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xjysC4JGNz9s83\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri,  1 Sep 2017 09:15:27 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751795AbdHaXPZ (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tThu, 31 Aug 2017 19:15:25 -0400","from mail-pf0-f194.google.com ([209.85.192.194]:33956 \"EHLO\n\tmail-pf0-f194.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751336AbdHaXPX (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Thu, 31 Aug 2017 19:15:23 -0400","by mail-pf0-f194.google.com with SMTP id v22so616236pfk.1\n\tfor <netdev@vger.kernel.org>; Thu, 31 Aug 2017 16:15:23 -0700 (PDT)","from ?IPv6:2620:15c:2c1:100:f1a1:8c2d:77d7:67bc?\n\t([2620:15c:2c1:100:f1a1:8c2d:77d7:67bc])\n\tby smtp.googlemail.com with ESMTPSA id\n\td196sm840237pfd.95.2017.08.31.16.15.21\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tThu, 31 Aug 2017 16:15:22 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=message-id:subject:from:to:cc:date:in-reply-to:references\n\t:mime-version:content-transfer-encoding;\n\tbh=ttxosvwZeTQUZAM3S6tAGB/3319rbY5E+gnQJQWUq0g=;\n\tb=NJsCPRq3cJQsfqHmEEJPiXjyeFsn0agpMPmOBwHiIOoJgB9SWzY8YxczrBQRejg99r\n\tohmecnb8aw3PGEoucSqvB8/sk2d1BU8AJnRTM6Do5s1ikNo56L1xJmH6Oae7tqz1u2xG\n\tAxXGq2BEHaqDYjucAO5RsBLZpe49dNwSY6S/Dc0IIzFPLcE9/BC+dx569KsMFSQkFB8z\n\taEFBQPOQTBjfBz3IXhiFyqonZhYoiZgHWCOg+F+JYOaWLqD9eMCxZsMiT9S3U34MqN2N\n\t9LdsA+qVcPQZAQh5UFbDSsIyY2MdrBUbiJ0nXPmYSFjdMtUa+8WJ8qx7JCA7IWX312vR\n\tvIkw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to\n\t:references:mime-version:content-transfer-encoding;\n\tbh=ttxosvwZeTQUZAM3S6tAGB/3319rbY5E+gnQJQWUq0g=;\n\tb=C+HIxnF8zMc9/XLqWzDvCED18yf7gpv/9asA0h9Y8N4WIIQBVdqbRx8E86DZAJ5Dwu\n\tsK9x6vbFA6Qkih5wSV3WY6/HjPDYtkvt2hYXZC5fnoealj/QSQ1MXXlj9m2dBuqD7pyk\n\tH9LF2sCF4xdmpWBlBMn5cTpgb5tvSE0fKFVNVsYkSM3yZQqYhc+LZ3u570qg6fJUgmsQ\n\tTNr4mrgR0Po+bZ4unWZwYStEmcAqdQ2ACHOyeoPS5vXyH/yVKl55llVdyCatrsLXJ9U+\n\t1Hrk9MFhnyj8ukKh7znVHbb9RpaUEb5CcjRMBM80o2DRUlv4//zrfKM1+UVMJFAJ3rnc\n\tZMvw==","X-Gm-Message-State":"AHPjjUjtvF0z6Tk+wI3dJNMdQiYbh+dkZhpXV/n4kKSJveLaFUwc993N\n\tKCrK/vk9wFizog==","X-Google-Smtp-Source":"ADKCNb72fVpm95xs+830Kikt8mz0IVQgMOL6XCZNstlbZ6dVn015XhY8ADGX83QaO3Ht5V8OWJq3pA==","X-Received":"by 10.84.131.69 with SMTP id 63mr109009pld.130.1504221323355;\n\tThu, 31 Aug 2017 16:15:23 -0700 (PDT)","Message-ID":"<1504221321.15310.16.camel@edumazet-glaptop3.roam.corp.google.com>","Subject":"Re: [PATCH net-next 2/2] net: convert (struct ubuf_info)->refcnt to\n\trefcount_t","From":"Eric Dumazet <eric.dumazet@gmail.com>","To":"Willem de Bruijn <willemdebruijn.kernel@gmail.com>","Cc":"Eric Dumazet <edumazet@google.com>,\n\t\"David S . Miller\" <davem@davemloft.net>,\n\tnetdev <netdev@vger.kernel.org>, Willem de Bruijn <willemb@google.com>","Date":"Thu, 31 Aug 2017 16:15:21 -0700","In-Reply-To":"<CAF=yD-KoztUEn-K5G9mvjE6wpq5+V9opAs5pim5cBr5cdvv3ig@mail.gmail.com>","References":"<20170831203013.9219-1-edumazet@google.com>\n\t<20170831203013.9219-3-edumazet@google.com>\n\t<CAF=yD-KoztUEn-K5G9mvjE6wpq5+V9opAs5pim5cBr5cdvv3ig@mail.gmail.com>","Content-Type":"text/plain; charset=\"UTF-8\"","X-Mailer":"Evolution 3.10.4-0ubuntu2 ","Mime-Version":"1.0","Content-Transfer-Encoding":"7bit","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1762198,"web_url":"http://patchwork.ozlabs.org/comment/1762198/","msgid":"<201709030556.Ye4qQehA%fengguang.wu@intel.com>","list_archive_url":null,"date":"2017-09-02T21:58:25","subject":"Re: [PATCH net-next 2/2] net: convert (struct ubuf_info)->refcnt to\n\trefcount_t","submitter":{"id":67315,"url":"http://patchwork.ozlabs.org/api/people/67315/","name":"kernel test robot","email":"lkp@intel.com"},"content":"Hi Eric,\n\n[auto build test ERROR on net-next/master]\n\nurl:    https://github.com/0day-ci/linux/commits/Eric-Dumazet/net-ubuf_info-refcnt-conversion/20170903-043506\nconfig: x86_64-acpi-redef (attached as .config)\ncompiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901\nreproduce:\n        # save the attached .config to linux build tree\n        make ARCH=x86_64 \n\nAll errors (new ones prefixed by >>):\n\n   drivers//vhost/net.c: In function 'handle_tx':\n>> drivers//vhost/net.c:536:15: error: passing argument 1 of 'atomic_set' from incompatible pointer type [-Werror=incompatible-pointer-types]\n       atomic_set(&ubuf->refcnt, 1);\n                  ^\n   In file included from include/linux/atomic.h:4:0,\n                    from include/linux/jump_label.h:183,\n                    from arch/x86/include/asm/string_64.h:5,\n                    from arch/x86/include/asm/string.h:4,\n                    from include/linux/string.h:18,\n                    from include/linux/bitmap.h:8,\n                    from include/linux/cpumask.h:11,\n                    from arch/x86/include/asm/cpumask.h:4,\n                    from arch/x86/include/asm/msr.h:10,\n                    from arch/x86/include/asm/processor.h:20,\n                    from arch/x86/include/asm/cpufeature.h:4,\n                    from arch/x86/include/asm/thread_info.h:52,\n                    from include/linux/thread_info.h:37,\n                    from arch/x86/include/asm/preempt.h:6,\n                    from include/linux/preempt.h:80,\n                    from include/linux/spinlock.h:50,\n                    from include/linux/seqlock.h:35,\n                    from include/linux/time.h:5,\n                    from include/linux/stat.h:18,\n                    from include/linux/compat.h:12,\n                    from drivers//vhost/net.c:9:\n   arch/x86/include/asm/atomic.h:36:29: note: expected 'atomic_t * {aka struct <anonymous> *}' but argument is of type 'refcount_t * {aka struct refcount_struct *}'\n    static __always_inline void atomic_set(atomic_t *v, int i)\n                                ^~~~~~~~~~\n   cc1: some warnings being treated as errors\n\nvim +/atomic_set +536 drivers//vhost/net.c\n\n0ed005ce0 Jason Wang         2017-01-18  442  \n3a4d5c94e Michael S. Tsirkin 2010-01-14  443  /* Expects to be always run from workqueue - which acts as\n3a4d5c94e Michael S. Tsirkin 2010-01-14  444   * read-size critical section for our kind of RCU. */\n3a4d5c94e Michael S. Tsirkin 2010-01-14  445  static void handle_tx(struct vhost_net *net)\n3a4d5c94e Michael S. Tsirkin 2010-01-14  446  {\n2839400f8 Asias He           2013-04-27  447  \tstruct vhost_net_virtqueue *nvq = &net->vqs[VHOST_NET_VQ_TX];\n81f95a558 Michael S. Tsirkin 2013-04-28  448  \tstruct vhost_virtqueue *vq = &nvq->vq;\n98a527aac Al Viro            2014-12-10  449  \tunsigned out, in;\nd5675bd20 Michael S. Tsirkin 2010-06-24  450  \tint head;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  451  \tstruct msghdr msg = {\n3a4d5c94e Michael S. Tsirkin 2010-01-14  452  \t\t.msg_name = NULL,\n3a4d5c94e Michael S. Tsirkin 2010-01-14  453  \t\t.msg_namelen = 0,\n3a4d5c94e Michael S. Tsirkin 2010-01-14  454  \t\t.msg_control = NULL,\n3a4d5c94e Michael S. Tsirkin 2010-01-14  455  \t\t.msg_controllen = 0,\n3a4d5c94e Michael S. Tsirkin 2010-01-14  456  \t\t.msg_flags = MSG_DONTWAIT,\n3a4d5c94e Michael S. Tsirkin 2010-01-14  457  \t};\n3a4d5c94e Michael S. Tsirkin 2010-01-14  458  \tsize_t len, total_len = 0;\n70181d512 Jason Wang         2013-04-10  459  \tint err;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  460  \tsize_t hdr_size;\n28457ee69 Arnd Bergmann      2010-03-09  461  \tstruct socket *sock;\nfe729a57c Asias He           2013-05-06  462  \tstruct vhost_net_ubuf_ref *uninitialized_var(ubufs);\ncedb9bdce Michael S. Tsirkin 2012-12-06  463  \tbool zcopy, zcopy_used;\n28457ee69 Arnd Bergmann      2010-03-09  464  \n2e26af79b Asias He           2013-05-07  465  \tmutex_lock(&vq->mutex);\n2e26af79b Asias He           2013-05-07  466  \tsock = vq->private_data;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  467  \tif (!sock)\n2e26af79b Asias He           2013-05-07  468  \t\tgoto out;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  469  \n6b1e6cc78 Jason Wang         2016-06-23  470  \tif (!vq_iotlb_prefetch(vq))\n6b1e6cc78 Jason Wang         2016-06-23  471  \t\tgoto out;\n6b1e6cc78 Jason Wang         2016-06-23  472  \n8ea8cf89e Michael S. Tsirkin 2011-05-20  473  \tvhost_disable_notify(&net->dev, vq);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  474  \n81f95a558 Michael S. Tsirkin 2013-04-28  475  \thdr_size = nvq->vhost_hlen;\n2839400f8 Asias He           2013-04-27  476  \tzcopy = nvq->ubufs;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  477  \n3a4d5c94e Michael S. Tsirkin 2010-01-14  478  \tfor (;;) {\nbab632d69 Michael S. Tsirkin 2011-07-18  479  \t\t/* Release DMAs done buffers first */\nbab632d69 Michael S. Tsirkin 2011-07-18  480  \t\tif (zcopy)\neaae8132e Michael S. Tsirkin 2012-11-01  481  \t\t\tvhost_zerocopy_signal_used(net, vq);\nbab632d69 Michael S. Tsirkin 2011-07-18  482  \nf7c6be404 Jason Wang         2013-09-02  483  \t\t/* If more outstanding DMAs, queue the work.\nf7c6be404 Jason Wang         2013-09-02  484  \t\t * Handle upend_idx wrap around\nf7c6be404 Jason Wang         2013-09-02  485  \t\t */\n0ed005ce0 Jason Wang         2017-01-18  486  \t\tif (unlikely(vhost_exceeds_maxpend(net)))\nf7c6be404 Jason Wang         2013-09-02  487  \t\t\tbreak;\nf7c6be404 Jason Wang         2013-09-02  488  \n030881372 Jason Wang         2016-03-04  489  \t\thead = vhost_net_tx_get_vq_desc(net, vq, vq->iov,\n3a4d5c94e Michael S. Tsirkin 2010-01-14  490  \t\t\t\t\t\tARRAY_SIZE(vq->iov),\n030881372 Jason Wang         2016-03-04  491  \t\t\t\t\t\t&out, &in);\nd5675bd20 Michael S. Tsirkin 2010-06-24  492  \t\t/* On error, stop handling until the next kick. */\n7b3384fc3 Michael S. Tsirkin 2010-07-01  493  \t\tif (unlikely(head < 0))\nd5675bd20 Michael S. Tsirkin 2010-06-24  494  \t\t\tbreak;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  495  \t\t/* Nothing new?  Wait for eventfd to tell us they refilled. */\n3a4d5c94e Michael S. Tsirkin 2010-01-14  496  \t\tif (head == vq->num) {\n8ea8cf89e Michael S. Tsirkin 2011-05-20  497  \t\t\tif (unlikely(vhost_enable_notify(&net->dev, vq))) {\n8ea8cf89e Michael S. Tsirkin 2011-05-20  498  \t\t\t\tvhost_disable_notify(&net->dev, vq);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  499  \t\t\t\tcontinue;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  500  \t\t\t}\n3a4d5c94e Michael S. Tsirkin 2010-01-14  501  \t\t\tbreak;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  502  \t\t}\n3a4d5c94e Michael S. Tsirkin 2010-01-14  503  \t\tif (in) {\n3a4d5c94e Michael S. Tsirkin 2010-01-14  504  \t\t\tvq_err(vq, \"Unexpected descriptor format for TX: \"\n3a4d5c94e Michael S. Tsirkin 2010-01-14  505  \t\t\t       \"out %d, int %d\\n\", out, in);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  506  \t\t\tbreak;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  507  \t\t}\n3a4d5c94e Michael S. Tsirkin 2010-01-14  508  \t\t/* Skip header. TODO: support TSO. */\n3a4d5c94e Michael S. Tsirkin 2010-01-14  509  \t\tlen = iov_length(vq->iov, out);\nc0371da60 Al Viro            2014-11-24  510  \t\tiov_iter_init(&msg.msg_iter, WRITE, vq->iov, out, len);\n98a527aac Al Viro            2014-12-10  511  \t\tiov_iter_advance(&msg.msg_iter, hdr_size);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  512  \t\t/* Sanity check */\n01e97e651 Al Viro            2014-12-15  513  \t\tif (!msg_data_left(&msg)) {\n3a4d5c94e Michael S. Tsirkin 2010-01-14  514  \t\t\tvq_err(vq, \"Unexpected header len for TX: \"\n3a4d5c94e Michael S. Tsirkin 2010-01-14  515  \t\t\t       \"%zd expected %zd\\n\",\n98a527aac Al Viro            2014-12-10  516  \t\t\t       len, hdr_size);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  517  \t\t\tbreak;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  518  \t\t}\n01e97e651 Al Viro            2014-12-15  519  \t\tlen = msg_data_left(&msg);\nce21a0291 Jason Wang         2013-09-02  520  \nce21a0291 Jason Wang         2013-09-02  521  \t\tzcopy_used = zcopy && len >= VHOST_GOODCOPY_LEN\nce21a0291 Jason Wang         2013-09-02  522  \t\t\t\t   && (nvq->upend_idx + 1) % UIO_MAXIOV !=\nce21a0291 Jason Wang         2013-09-02  523  \t\t\t\t      nvq->done_idx\nce21a0291 Jason Wang         2013-09-02  524  \t\t\t\t   && vhost_net_tx_select_zcopy(net);\ncedb9bdce Michael S. Tsirkin 2012-12-06  525  \nbab632d69 Michael S. Tsirkin 2011-07-18  526  \t\t/* use msg_control to pass vhost zerocopy ubuf info to skb */\ncedb9bdce Michael S. Tsirkin 2012-12-06  527  \t\tif (zcopy_used) {\n46aa92d1b Michael S. Tsirkin 2013-03-17  528  \t\t\tstruct ubuf_info *ubuf;\n2839400f8 Asias He           2013-04-27  529  \t\t\tubuf = nvq->ubuf_info + nvq->upend_idx;\nbab632d69 Michael S. Tsirkin 2011-07-18  530  \n8b38694a2 Michael S. Tsirkin 2014-10-24  531  \t\t\tvq->heads[nvq->upend_idx].id = cpu_to_vhost32(vq, head);\nce21a0291 Jason Wang         2013-09-02  532  \t\t\tvq->heads[nvq->upend_idx].len = VHOST_DMA_IN_PROGRESS;\nbab632d69 Michael S. Tsirkin 2011-07-18  533  \t\t\tubuf->callback = vhost_zerocopy_callback;\n2839400f8 Asias He           2013-04-27  534  \t\t\tubuf->ctx = nvq->ubufs;\n2839400f8 Asias He           2013-04-27  535  \t\t\tubuf->desc = nvq->upend_idx;\n1f8b977ab Willem de Bruijn   2017-08-03 @536  \t\t\tatomic_set(&ubuf->refcnt, 1);\nbab632d69 Michael S. Tsirkin 2011-07-18  537  \t\t\tmsg.msg_control = ubuf;\nbab632d69 Michael S. Tsirkin 2011-07-18  538  \t\t\tmsg.msg_controllen = sizeof(ubuf);\n2839400f8 Asias He           2013-04-27  539  \t\t\tubufs = nvq->ubufs;\n0ad8b480d Michael S. Tsirkin 2014-02-13  540  \t\t\tatomic_inc(&ubufs->refcount);\n2839400f8 Asias He           2013-04-27  541  \t\t\tnvq->upend_idx = (nvq->upend_idx + 1) % UIO_MAXIOV;\nce21a0291 Jason Wang         2013-09-02  542  \t\t} else {\n4364d5f96 Jason Wang         2013-06-05  543  \t\t\tmsg.msg_control = NULL;\nce21a0291 Jason Wang         2013-09-02  544  \t\t\tubufs = NULL;\nce21a0291 Jason Wang         2013-09-02  545  \t\t}\n0ed005ce0 Jason Wang         2017-01-18  546  \n0ed005ce0 Jason Wang         2017-01-18  547  \t\ttotal_len += len;\n0ed005ce0 Jason Wang         2017-01-18  548  \t\tif (total_len < VHOST_NET_WEIGHT &&\n0ed005ce0 Jason Wang         2017-01-18  549  \t\t    !vhost_vq_avail_empty(&net->dev, vq) &&\n0ed005ce0 Jason Wang         2017-01-18  550  \t\t    likely(!vhost_exceeds_maxpend(net))) {\n0ed005ce0 Jason Wang         2017-01-18  551  \t\t\tmsg.msg_flags |= MSG_MORE;\n0ed005ce0 Jason Wang         2017-01-18  552  \t\t} else {\n0ed005ce0 Jason Wang         2017-01-18  553  \t\t\tmsg.msg_flags &= ~MSG_MORE;\n0ed005ce0 Jason Wang         2017-01-18  554  \t\t}\n0ed005ce0 Jason Wang         2017-01-18  555  \n3a4d5c94e Michael S. Tsirkin 2010-01-14  556  \t\t/* TODO: Check specific error and bomb out unless ENOBUFS? */\n1b7841404 Ying Xue           2015-03-02  557  \t\terr = sock->ops->sendmsg(sock, &msg, len);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  558  \t\tif (unlikely(err < 0)) {\ncedb9bdce Michael S. Tsirkin 2012-12-06  559  \t\t\tif (zcopy_used) {\nfe729a57c Asias He           2013-05-06  560  \t\t\t\tvhost_net_ubuf_put(ubufs);\n2839400f8 Asias He           2013-04-27  561  \t\t\t\tnvq->upend_idx = ((unsigned)nvq->upend_idx - 1)\n2839400f8 Asias He           2013-04-27  562  \t\t\t\t\t% UIO_MAXIOV;\nbab632d69 Michael S. Tsirkin 2011-07-18  563  \t\t\t}\n8dd014adf David Stevens      2010-07-27  564  \t\t\tvhost_discard_vq_desc(vq, 1);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  565  \t\t\tbreak;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  566  \t\t}\n3a4d5c94e Michael S. Tsirkin 2010-01-14  567  \t\tif (err != len)\n95c0ec6a9 Michael S. Tsirkin 2010-06-24  568  \t\t\tpr_debug(\"Truncated TX packet: \"\n3a4d5c94e Michael S. Tsirkin 2010-01-14  569  \t\t\t\t \" len %d != %zd\\n\", err, len);\ncedb9bdce Michael S. Tsirkin 2012-12-06  570  \t\tif (!zcopy_used)\n3a4d5c94e Michael S. Tsirkin 2010-01-14  571  \t\t\tvhost_add_used_and_signal(&net->dev, vq, head, 0);\nc8fb217af Jason Wang         2012-05-02  572  \t\telse\neaae8132e Michael S. Tsirkin 2012-11-01  573  \t\t\tvhost_zerocopy_signal_used(net, vq);\neaae8132e Michael S. Tsirkin 2012-11-01  574  \t\tvhost_net_tx_packet(net);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  575  \t\tif (unlikely(total_len >= VHOST_NET_WEIGHT)) {\n3a4d5c94e Michael S. Tsirkin 2010-01-14  576  \t\t\tvhost_poll_queue(&vq->poll);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  577  \t\t\tbreak;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  578  \t\t}\n3a4d5c94e Michael S. Tsirkin 2010-01-14  579  \t}\n2e26af79b Asias He           2013-05-07  580  out:\n3a4d5c94e Michael S. Tsirkin 2010-01-14  581  \tmutex_unlock(&vq->mutex);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  582  }\n3a4d5c94e Michael S. Tsirkin 2010-01-14  583  \n\n:::::: The code at line 536 was first introduced by commit\n:::::: 1f8b977ab32dc5d148f103326e80d9097f1cefb5 sock: enable MSG_ZEROCOPY\n\n:::::: TO: Willem de Bruijn <willemb@google.com>\n:::::: CC: David S. Miller <davem@davemloft.net>\n\n---\n0-DAY kernel test infrastructure                Open Source Technology Center\nhttps://lists.01.org/pipermail/kbuild-all                   Intel Corporation","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xl94Y38jFz9sP3\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSun,  3 Sep 2017 07:59:25 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752833AbdIBV7V (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tSat, 2 Sep 2017 17:59:21 -0400","from mga03.intel.com ([134.134.136.65]:15847 \"EHLO mga03.intel.com\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1752817AbdIBV7U (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tSat, 2 Sep 2017 17:59:20 -0400","from fmsmga005.fm.intel.com ([10.253.24.32])\n\tby orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t02 Sep 2017 14:59:18 -0700","from bee.sh.intel.com (HELO bee) ([10.239.97.14])\n\tby fmsmga005.fm.intel.com with ESMTP; 02 Sep 2017 14:59:17 -0700","from kbuild by bee with local (Exim 4.84_2)\n\t(envelope-from <fengguang.wu@intel.com>)\n\tid 1doGWB-000BJV-36; Sun, 03 Sep 2017 06:03:55 +0800"],"X-ExtLoop1":"1","X-IronPort-AV":"E=Sophos;i=\"5.41,465,1498546800\"; \n\td=\"gz'50?scan'50,208,50\";a=\"146862025\"","Date":"Sun, 3 Sep 2017 05:58:25 +0800","From":"kbuild test robot <lkp@intel.com>","To":"Eric Dumazet <edumazet@google.com>","Cc":"kbuild-all@01.org, \"David S . Miller\" <davem@davemloft.net>,\n\tnetdev <netdev@vger.kernel.org>, Willem de Bruijn <willemb@google.com>,\n\tEric Dumazet <edumazet@google.com>, Eric Dumazet <eric.dumazet@gmail.com>","Subject":"Re: [PATCH net-next 2/2] net: convert (struct ubuf_info)->refcnt to\n\trefcount_t","Message-ID":"<201709030556.Ye4qQehA%fengguang.wu@intel.com>","MIME-Version":"1.0","Content-Type":"multipart/mixed; boundary=\"k1lZvvs/B4yU6o8G\"","Content-Disposition":"inline","In-Reply-To":"<20170831203013.9219-3-edumazet@google.com>","User-Agent":"Mutt/1.5.23 (2014-03-12)","X-SA-Exim-Connect-IP":"<locally generated>","X-SA-Exim-Mail-From":"fengguang.wu@intel.com","X-SA-Exim-Scanned":"No (on bee); SAEximRunCond expanded to false","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1762199,"web_url":"http://patchwork.ozlabs.org/comment/1762199/","msgid":"<201709030525.Cws08kPn%fengguang.wu@intel.com>","list_archive_url":null,"date":"2017-09-02T21:58:25","subject":"Re: [PATCH net-next 2/2] net: convert (struct ubuf_info)->refcnt to\n\trefcount_t","submitter":{"id":67315,"url":"http://patchwork.ozlabs.org/api/people/67315/","name":"kernel test robot","email":"lkp@intel.com"},"content":"Hi Eric,\n\n[auto build test WARNING on net-next/master]\n\nurl:    https://github.com/0day-ci/linux/commits/Eric-Dumazet/net-ubuf_info-refcnt-conversion/20170903-043506\nconfig: i386-randconfig-i1-201736 (attached as .config)\ncompiler: gcc-4.8 (Debian 4.8.4-1) 4.8.4\nreproduce:\n        # save the attached .config to linux build tree\n        make ARCH=i386 \n\nAll warnings (new ones prefixed by >>):\n\n   drivers//vhost/net.c: In function 'handle_tx':\n>> drivers//vhost/net.c:536:4: warning: passing argument 1 of 'atomic_set' from incompatible pointer type [enabled by default]\n       atomic_set(&ubuf->refcnt, 1);\n       ^\n   In file included from include/linux/atomic.h:4:0,\n                    from arch/x86/include/asm/thread_info.h:53,\n                    from include/linux/thread_info.h:37,\n                    from arch/x86/include/asm/preempt.h:6,\n                    from include/linux/preempt.h:80,\n                    from include/linux/spinlock.h:50,\n                    from include/linux/wait.h:8,\n                    from include/linux/eventfd.h:12,\n                    from drivers//vhost/net.c:10:\n   arch/x86/include/asm/atomic.h:36:29: note: expected 'struct atomic_t *' but argument is of type 'struct refcount_t *'\n    static __always_inline void atomic_set(atomic_t *v, int i)\n                                ^\n\nvim +/atomic_set +536 drivers//vhost/net.c\n\n0ed005ce0 Jason Wang         2017-01-18  442  \n3a4d5c94e Michael S. Tsirkin 2010-01-14  443  /* Expects to be always run from workqueue - which acts as\n3a4d5c94e Michael S. Tsirkin 2010-01-14  444   * read-size critical section for our kind of RCU. */\n3a4d5c94e Michael S. Tsirkin 2010-01-14  445  static void handle_tx(struct vhost_net *net)\n3a4d5c94e Michael S. Tsirkin 2010-01-14  446  {\n2839400f8 Asias He           2013-04-27  447  \tstruct vhost_net_virtqueue *nvq = &net->vqs[VHOST_NET_VQ_TX];\n81f95a558 Michael S. Tsirkin 2013-04-28  448  \tstruct vhost_virtqueue *vq = &nvq->vq;\n98a527aac Al Viro            2014-12-10  449  \tunsigned out, in;\nd5675bd20 Michael S. Tsirkin 2010-06-24  450  \tint head;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  451  \tstruct msghdr msg = {\n3a4d5c94e Michael S. Tsirkin 2010-01-14  452  \t\t.msg_name = NULL,\n3a4d5c94e Michael S. Tsirkin 2010-01-14  453  \t\t.msg_namelen = 0,\n3a4d5c94e Michael S. Tsirkin 2010-01-14  454  \t\t.msg_control = NULL,\n3a4d5c94e Michael S. Tsirkin 2010-01-14  455  \t\t.msg_controllen = 0,\n3a4d5c94e Michael S. Tsirkin 2010-01-14  456  \t\t.msg_flags = MSG_DONTWAIT,\n3a4d5c94e Michael S. Tsirkin 2010-01-14  457  \t};\n3a4d5c94e Michael S. Tsirkin 2010-01-14  458  \tsize_t len, total_len = 0;\n70181d512 Jason Wang         2013-04-10  459  \tint err;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  460  \tsize_t hdr_size;\n28457ee69 Arnd Bergmann      2010-03-09  461  \tstruct socket *sock;\nfe729a57c Asias He           2013-05-06  462  \tstruct vhost_net_ubuf_ref *uninitialized_var(ubufs);\ncedb9bdce Michael S. Tsirkin 2012-12-06  463  \tbool zcopy, zcopy_used;\n28457ee69 Arnd Bergmann      2010-03-09  464  \n2e26af79b Asias He           2013-05-07  465  \tmutex_lock(&vq->mutex);\n2e26af79b Asias He           2013-05-07  466  \tsock = vq->private_data;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  467  \tif (!sock)\n2e26af79b Asias He           2013-05-07  468  \t\tgoto out;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  469  \n6b1e6cc78 Jason Wang         2016-06-23  470  \tif (!vq_iotlb_prefetch(vq))\n6b1e6cc78 Jason Wang         2016-06-23  471  \t\tgoto out;\n6b1e6cc78 Jason Wang         2016-06-23  472  \n8ea8cf89e Michael S. Tsirkin 2011-05-20  473  \tvhost_disable_notify(&net->dev, vq);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  474  \n81f95a558 Michael S. Tsirkin 2013-04-28  475  \thdr_size = nvq->vhost_hlen;\n2839400f8 Asias He           2013-04-27  476  \tzcopy = nvq->ubufs;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  477  \n3a4d5c94e Michael S. Tsirkin 2010-01-14  478  \tfor (;;) {\nbab632d69 Michael S. Tsirkin 2011-07-18  479  \t\t/* Release DMAs done buffers first */\nbab632d69 Michael S. Tsirkin 2011-07-18  480  \t\tif (zcopy)\neaae8132e Michael S. Tsirkin 2012-11-01  481  \t\t\tvhost_zerocopy_signal_used(net, vq);\nbab632d69 Michael S. Tsirkin 2011-07-18  482  \nf7c6be404 Jason Wang         2013-09-02  483  \t\t/* If more outstanding DMAs, queue the work.\nf7c6be404 Jason Wang         2013-09-02  484  \t\t * Handle upend_idx wrap around\nf7c6be404 Jason Wang         2013-09-02  485  \t\t */\n0ed005ce0 Jason Wang         2017-01-18  486  \t\tif (unlikely(vhost_exceeds_maxpend(net)))\nf7c6be404 Jason Wang         2013-09-02  487  \t\t\tbreak;\nf7c6be404 Jason Wang         2013-09-02  488  \n030881372 Jason Wang         2016-03-04  489  \t\thead = vhost_net_tx_get_vq_desc(net, vq, vq->iov,\n3a4d5c94e Michael S. Tsirkin 2010-01-14  490  \t\t\t\t\t\tARRAY_SIZE(vq->iov),\n030881372 Jason Wang         2016-03-04  491  \t\t\t\t\t\t&out, &in);\nd5675bd20 Michael S. Tsirkin 2010-06-24  492  \t\t/* On error, stop handling until the next kick. */\n7b3384fc3 Michael S. Tsirkin 2010-07-01  493  \t\tif (unlikely(head < 0))\nd5675bd20 Michael S. Tsirkin 2010-06-24  494  \t\t\tbreak;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  495  \t\t/* Nothing new?  Wait for eventfd to tell us they refilled. */\n3a4d5c94e Michael S. Tsirkin 2010-01-14  496  \t\tif (head == vq->num) {\n8ea8cf89e Michael S. Tsirkin 2011-05-20  497  \t\t\tif (unlikely(vhost_enable_notify(&net->dev, vq))) {\n8ea8cf89e Michael S. Tsirkin 2011-05-20  498  \t\t\t\tvhost_disable_notify(&net->dev, vq);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  499  \t\t\t\tcontinue;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  500  \t\t\t}\n3a4d5c94e Michael S. Tsirkin 2010-01-14  501  \t\t\tbreak;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  502  \t\t}\n3a4d5c94e Michael S. Tsirkin 2010-01-14  503  \t\tif (in) {\n3a4d5c94e Michael S. Tsirkin 2010-01-14  504  \t\t\tvq_err(vq, \"Unexpected descriptor format for TX: \"\n3a4d5c94e Michael S. Tsirkin 2010-01-14  505  \t\t\t       \"out %d, int %d\\n\", out, in);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  506  \t\t\tbreak;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  507  \t\t}\n3a4d5c94e Michael S. Tsirkin 2010-01-14  508  \t\t/* Skip header. TODO: support TSO. */\n3a4d5c94e Michael S. Tsirkin 2010-01-14  509  \t\tlen = iov_length(vq->iov, out);\nc0371da60 Al Viro            2014-11-24  510  \t\tiov_iter_init(&msg.msg_iter, WRITE, vq->iov, out, len);\n98a527aac Al Viro            2014-12-10  511  \t\tiov_iter_advance(&msg.msg_iter, hdr_size);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  512  \t\t/* Sanity check */\n01e97e651 Al Viro            2014-12-15  513  \t\tif (!msg_data_left(&msg)) {\n3a4d5c94e Michael S. Tsirkin 2010-01-14  514  \t\t\tvq_err(vq, \"Unexpected header len for TX: \"\n3a4d5c94e Michael S. Tsirkin 2010-01-14  515  \t\t\t       \"%zd expected %zd\\n\",\n98a527aac Al Viro            2014-12-10  516  \t\t\t       len, hdr_size);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  517  \t\t\tbreak;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  518  \t\t}\n01e97e651 Al Viro            2014-12-15  519  \t\tlen = msg_data_left(&msg);\nce21a0291 Jason Wang         2013-09-02  520  \nce21a0291 Jason Wang         2013-09-02  521  \t\tzcopy_used = zcopy && len >= VHOST_GOODCOPY_LEN\nce21a0291 Jason Wang         2013-09-02  522  \t\t\t\t   && (nvq->upend_idx + 1) % UIO_MAXIOV !=\nce21a0291 Jason Wang         2013-09-02  523  \t\t\t\t      nvq->done_idx\nce21a0291 Jason Wang         2013-09-02  524  \t\t\t\t   && vhost_net_tx_select_zcopy(net);\ncedb9bdce Michael S. Tsirkin 2012-12-06  525  \nbab632d69 Michael S. Tsirkin 2011-07-18  526  \t\t/* use msg_control to pass vhost zerocopy ubuf info to skb */\ncedb9bdce Michael S. Tsirkin 2012-12-06  527  \t\tif (zcopy_used) {\n46aa92d1b Michael S. Tsirkin 2013-03-17  528  \t\t\tstruct ubuf_info *ubuf;\n2839400f8 Asias He           2013-04-27  529  \t\t\tubuf = nvq->ubuf_info + nvq->upend_idx;\nbab632d69 Michael S. Tsirkin 2011-07-18  530  \n8b38694a2 Michael S. Tsirkin 2014-10-24  531  \t\t\tvq->heads[nvq->upend_idx].id = cpu_to_vhost32(vq, head);\nce21a0291 Jason Wang         2013-09-02  532  \t\t\tvq->heads[nvq->upend_idx].len = VHOST_DMA_IN_PROGRESS;\nbab632d69 Michael S. Tsirkin 2011-07-18  533  \t\t\tubuf->callback = vhost_zerocopy_callback;\n2839400f8 Asias He           2013-04-27  534  \t\t\tubuf->ctx = nvq->ubufs;\n2839400f8 Asias He           2013-04-27  535  \t\t\tubuf->desc = nvq->upend_idx;\n1f8b977ab Willem de Bruijn   2017-08-03 @536  \t\t\tatomic_set(&ubuf->refcnt, 1);\nbab632d69 Michael S. Tsirkin 2011-07-18  537  \t\t\tmsg.msg_control = ubuf;\nbab632d69 Michael S. Tsirkin 2011-07-18  538  \t\t\tmsg.msg_controllen = sizeof(ubuf);\n2839400f8 Asias He           2013-04-27  539  \t\t\tubufs = nvq->ubufs;\n0ad8b480d Michael S. Tsirkin 2014-02-13  540  \t\t\tatomic_inc(&ubufs->refcount);\n2839400f8 Asias He           2013-04-27  541  \t\t\tnvq->upend_idx = (nvq->upend_idx + 1) % UIO_MAXIOV;\nce21a0291 Jason Wang         2013-09-02  542  \t\t} else {\n4364d5f96 Jason Wang         2013-06-05  543  \t\t\tmsg.msg_control = NULL;\nce21a0291 Jason Wang         2013-09-02  544  \t\t\tubufs = NULL;\nce21a0291 Jason Wang         2013-09-02  545  \t\t}\n0ed005ce0 Jason Wang         2017-01-18  546  \n0ed005ce0 Jason Wang         2017-01-18  547  \t\ttotal_len += len;\n0ed005ce0 Jason Wang         2017-01-18  548  \t\tif (total_len < VHOST_NET_WEIGHT &&\n0ed005ce0 Jason Wang         2017-01-18  549  \t\t    !vhost_vq_avail_empty(&net->dev, vq) &&\n0ed005ce0 Jason Wang         2017-01-18  550  \t\t    likely(!vhost_exceeds_maxpend(net))) {\n0ed005ce0 Jason Wang         2017-01-18  551  \t\t\tmsg.msg_flags |= MSG_MORE;\n0ed005ce0 Jason Wang         2017-01-18  552  \t\t} else {\n0ed005ce0 Jason Wang         2017-01-18  553  \t\t\tmsg.msg_flags &= ~MSG_MORE;\n0ed005ce0 Jason Wang         2017-01-18  554  \t\t}\n0ed005ce0 Jason Wang         2017-01-18  555  \n3a4d5c94e Michael S. Tsirkin 2010-01-14  556  \t\t/* TODO: Check specific error and bomb out unless ENOBUFS? */\n1b7841404 Ying Xue           2015-03-02  557  \t\terr = sock->ops->sendmsg(sock, &msg, len);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  558  \t\tif (unlikely(err < 0)) {\ncedb9bdce Michael S. Tsirkin 2012-12-06  559  \t\t\tif (zcopy_used) {\nfe729a57c Asias He           2013-05-06  560  \t\t\t\tvhost_net_ubuf_put(ubufs);\n2839400f8 Asias He           2013-04-27  561  \t\t\t\tnvq->upend_idx = ((unsigned)nvq->upend_idx - 1)\n2839400f8 Asias He           2013-04-27  562  \t\t\t\t\t% UIO_MAXIOV;\nbab632d69 Michael S. Tsirkin 2011-07-18  563  \t\t\t}\n8dd014adf David Stevens      2010-07-27  564  \t\t\tvhost_discard_vq_desc(vq, 1);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  565  \t\t\tbreak;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  566  \t\t}\n3a4d5c94e Michael S. Tsirkin 2010-01-14  567  \t\tif (err != len)\n95c0ec6a9 Michael S. Tsirkin 2010-06-24  568  \t\t\tpr_debug(\"Truncated TX packet: \"\n3a4d5c94e Michael S. Tsirkin 2010-01-14  569  \t\t\t\t \" len %d != %zd\\n\", err, len);\ncedb9bdce Michael S. Tsirkin 2012-12-06  570  \t\tif (!zcopy_used)\n3a4d5c94e Michael S. Tsirkin 2010-01-14  571  \t\t\tvhost_add_used_and_signal(&net->dev, vq, head, 0);\nc8fb217af Jason Wang         2012-05-02  572  \t\telse\neaae8132e Michael S. Tsirkin 2012-11-01  573  \t\t\tvhost_zerocopy_signal_used(net, vq);\neaae8132e Michael S. Tsirkin 2012-11-01  574  \t\tvhost_net_tx_packet(net);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  575  \t\tif (unlikely(total_len >= VHOST_NET_WEIGHT)) {\n3a4d5c94e Michael S. Tsirkin 2010-01-14  576  \t\t\tvhost_poll_queue(&vq->poll);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  577  \t\t\tbreak;\n3a4d5c94e Michael S. Tsirkin 2010-01-14  578  \t\t}\n3a4d5c94e Michael S. Tsirkin 2010-01-14  579  \t}\n2e26af79b Asias He           2013-05-07  580  out:\n3a4d5c94e Michael S. Tsirkin 2010-01-14  581  \tmutex_unlock(&vq->mutex);\n3a4d5c94e Michael S. Tsirkin 2010-01-14  582  }\n3a4d5c94e Michael S. Tsirkin 2010-01-14  583  \n\n:::::: The code at line 536 was first introduced by commit\n:::::: 1f8b977ab32dc5d148f103326e80d9097f1cefb5 sock: enable MSG_ZEROCOPY\n\n:::::: TO: Willem de Bruijn <willemb@google.com>\n:::::: CC: David S. Miller <davem@davemloft.net>\n\n---\n0-DAY kernel test infrastructure                Open Source Technology Center\nhttps://lists.01.org/pipermail/kbuild-all                   Intel Corporation","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xl94f3NvSz9sRY\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSun,  3 Sep 2017 07:59:30 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752827AbdIBV7U (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tSat, 2 Sep 2017 17:59:20 -0400","from mga11.intel.com ([192.55.52.93]:32929 \"EHLO mga11.intel.com\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1752761AbdIBV7T (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tSat, 2 Sep 2017 17:59:19 -0400","from fmsmga002.fm.intel.com ([10.253.24.26])\n\tby fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t02 Sep 2017 14:59:19 -0700","from bee.sh.intel.com (HELO bee) ([10.239.97.14])\n\tby fmsmga002.fm.intel.com with ESMTP; 02 Sep 2017 14:59:17 -0700","from kbuild by bee with local (Exim 4.84_2)\n\t(envelope-from <fengguang.wu@intel.com>)\n\tid 1doGWB-000BLY-8z; Sun, 03 Sep 2017 06:03:55 +0800"],"X-ExtLoop1":"1","X-IronPort-AV":"E=Sophos;i=\"5.41,465,1498546800\"; \n\td=\"gz'50?scan'50,208,50\";a=\"1213949849\"","Date":"Sun, 3 Sep 2017 05:58:25 +0800","From":"kbuild test robot <lkp@intel.com>","To":"Eric Dumazet <edumazet@google.com>","Cc":"kbuild-all@01.org, \"David S . Miller\" <davem@davemloft.net>,\n\tnetdev <netdev@vger.kernel.org>, Willem de Bruijn <willemb@google.com>,\n\tEric Dumazet <edumazet@google.com>, Eric Dumazet <eric.dumazet@gmail.com>","Subject":"Re: [PATCH net-next 2/2] net: convert (struct ubuf_info)->refcnt to\n\trefcount_t","Message-ID":"<201709030525.Cws08kPn%fengguang.wu@intel.com>","MIME-Version":"1.0","Content-Type":"multipart/mixed; boundary=\"k1lZvvs/B4yU6o8G\"","Content-Disposition":"inline","In-Reply-To":"<20170831203013.9219-3-edumazet@google.com>","User-Agent":"Mutt/1.5.23 (2014-03-12)","X-SA-Exim-Connect-IP":"<locally generated>","X-SA-Exim-Mail-From":"fengguang.wu@intel.com","X-SA-Exim-Scanned":"No (on bee); SAEximRunCond expanded to false","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1762214,"web_url":"http://patchwork.ozlabs.org/comment/1762214/","msgid":"<CAF=yD-J1tr=cikiFvf=y6=jHnZAZ_VhL+P04xfn7u4fZ0ki6Ow@mail.gmail.com>","list_archive_url":null,"date":"2017-09-03T03:39:02","subject":"Re: [PATCH net-next 2/2] net: convert (struct ubuf_info)->refcnt to\n\trefcount_t","submitter":{"id":67615,"url":"http://patchwork.ozlabs.org/api/people/67615/","name":"Willem de Bruijn","email":"willemdebruijn.kernel@gmail.com"},"content":"On Sat, Sep 2, 2017 at 5:58 PM, kbuild test robot <lkp@intel.com> wrote:\n> Hi Eric,\n>\n> [auto build test WARNING on net-next/master]\n>\n> url:    https://github.com/0day-ci/linux/commits/Eric-Dumazet/net-ubuf_info-refcnt-conversion/20170903-043506\n> config: i386-randconfig-i1-201736 (attached as .config)\n> compiler: gcc-4.8 (Debian 4.8.4-1) 4.8.4\n> reproduce:\n>         # save the attached .config to linux build tree\n>         make ARCH=i386\n>\n> All warnings (new ones prefixed by >>):\n>\n>    drivers//vhost/net.c: In function 'handle_tx':\n>>> drivers//vhost/net.c:536:4: warning: passing argument 1 of 'atomic_set' from incompatible pointer type [enabled by default]\n>        atomic_set(&ubuf->refcnt, 1);\n>        ^\n>    In file included from include/linux/atomic.h:4:0,\n>                     from arch/x86/include/asm/thread_info.h:53,\n>                     from include/linux/thread_info.h:37,\n>                     from arch/x86/include/asm/preempt.h:6,\n>                     from include/linux/preempt.h:80,\n>                     from include/linux/spinlock.h:50,\n>                     from include/linux/wait.h:8,\n>                     from include/linux/eventfd.h:12,\n>                     from drivers//vhost/net.c:10:\n>    arch/x86/include/asm/atomic.h:36:29: note: expected 'struct atomic_t *' but argument is of type 'struct refcount_t *'\n>     static __always_inline void atomic_set(atomic_t *v, int i)\n>                                 ^\n\nThis is a false positive. This patch\n\n  [net-next,2/2] net: convert (struct ubuf_info)->refcnt to refcount_t\n  http://patchwork.ozlabs.org/patch/808402/\n\nwas superseded by\n\n  [v2,net-next,2/2] net: convert (struct ubuf_info)->refcnt to refcount_t\n  http://patchwork.ozlabs.org/patch/808477/\n\nwhich has been merged into net-next as commit c1d1b437816f\n\nThat patch has the necessary change:\n\n-                      atomic_set(&ubuf->refcnt, 1);\n+                       refcount_set(&ubuf->refcnt, 1);","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"EKN8s3+w\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xlJdJ51P8z9sDB\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSun,  3 Sep 2017 13:39:48 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752886AbdICDjo (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tSat, 2 Sep 2017 23:39:44 -0400","from mail-oi0-f68.google.com ([209.85.218.68]:37067 \"EHLO\n\tmail-oi0-f68.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1752828AbdICDjn (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Sat, 2 Sep 2017 23:39:43 -0400","by mail-oi0-f68.google.com with SMTP id b184so2877674oih.4\n\tfor <netdev@vger.kernel.org>; Sat, 02 Sep 2017 20:39:43 -0700 (PDT)","by 10.168.52.10 with HTTP; Sat, 2 Sep 2017 20:39:02 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=mime-version:in-reply-to:references:from:date:message-id:subject:to\n\t:cc; bh=zYqfscwkBoNtlnTxNTpA7hDZcxUZgeFN6ffTnJLbuG4=;\n\tb=EKN8s3+wZ7bhbSETfEigYpcDMpUwzInMyxDsoULNpLWPTHRtV8+MCn5yRp6gZX59Gy\n\tlKlfY5SNzra//Te3BBeCl2tSDFhJOsLGKvbuaKZ1lt2nHyTsgHaQCmb+5niAqLxJtqTm\n\tMXSM4nwPFWYhdC0Edpe6FKtxEx4Alakyj5gLgpsvm0cj102/rQ4Krmlg88FpmTmB2iO7\n\t+HL57Y8DDhGnQ4HPmUI3GPJpfWczLZu+nblwhomTfnDBPJVGhd74StXXPr9jvRhR7lvt\n\tPheeFEIWk67sxbVtrq0zS3Vm8iBYK3YqVvIVdrz7UR2Z7hQo5OPgWNZkNqZuhbECbl5Z\n\tHSVw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to:cc;\n\tbh=zYqfscwkBoNtlnTxNTpA7hDZcxUZgeFN6ffTnJLbuG4=;\n\tb=JUZ9DoERvJfOqZ1DSfE7h/lNfdX4fDjHwM3ILKd9Dw6XEff3AgEP120rQnsRuWINwm\n\tx4QDA8F8se3KgNWpGlzDe6EYO2Td5hKIVxY48Xfij2Ova+QnqI01sN7wmKR4XvtNOjVA\n\ttrujfxKM26Dj3BJwdwBLi9tVQ+/DgqsJccmHGWt87WvqDO3W+2sH4Fwj0vQLngkb8ULM\n\tqRkIj/wrO31soMlVorcod/XI7dc3KAZxL4nQnIuvnvZd7IxF7WcAdtwlXnISUgBl71Ad\n\tpRlyntmAHN3hDKn0QKs4cGr+tN6oNm3aSwCY//q4cQHPl6VgQYyeLSfOJqRpE0c2WRJ1\n\ttngg==","X-Gm-Message-State":"AHPjjUiEXglk02QRMbfn2Hj3qNuITZXgO1KoAdj6SMDU5peI32qbK7Qt\n\tJG95PpMm1wOmb8SHu94dNUBK+3YUVA==","X-Google-Smtp-Source":"ADKCNb4U5bOe66Gyey3gkHsJOeX97nV3hTa4IjkJ7h0CWt9LX4AfsKR5HKaweglLRaN1d38h6TLo3hy+S9IzbD05Vw8=","X-Received":"by 10.202.79.88 with SMTP id d85mr537393oib.36.1504409983018;\n\tSat, 02 Sep 2017 20:39:43 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<201709030525.Cws08kPn%fengguang.wu@intel.com>","References":"<20170831203013.9219-3-edumazet@google.com>\n\t<201709030525.Cws08kPn%fengguang.wu@intel.com>","From":"Willem de Bruijn <willemdebruijn.kernel@gmail.com>","Date":"Sat, 2 Sep 2017 23:39:02 -0400","Message-ID":"<CAF=yD-J1tr=cikiFvf=y6=jHnZAZ_VhL+P04xfn7u4fZ0ki6Ow@mail.gmail.com>","Subject":"Re: [PATCH net-next 2/2] net: convert (struct ubuf_info)->refcnt to\n\trefcount_t","To":"kbuild test robot <lkp@intel.com>","Cc":"Eric Dumazet <edumazet@google.com>, kbuild-all@01.org,\n\t\"David S . Miller\" <davem@davemloft.net>,\n\tnetdev <netdev@vger.kernel.org>, Willem de Bruijn <willemb@google.com>,\n\tEric Dumazet <eric.dumazet@gmail.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}}]