All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [RFC net-next 1/1] net: sched: prevent duplicate flower rules from tcf_proto destroy race
Date: Sun, 27 Oct 2019 17:56:07 +0800	[thread overview]
Message-ID: <201910271703.YDNQXI4F%lkp@intel.com> (raw)
In-Reply-To: <1571914887-1364-1-git-send-email-john.hurley@netronome.com>

[-- Attachment #1: Type: text/plain, Size: 4267 bytes --]

Hi John,

[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on net-next/master]

url:    https://github.com/0day-ci/linux/commits/John-Hurley/net-sched-prevent-duplicate-flower-rules-from-tcf_proto-destroy-race/20191027-155130
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 503a64635d5ef7351657c78ad77f8b5ff658d5fc
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-dirty
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)

   net/sched/cls_api.c:282:22: sparse: sparse: incorrect type in assignment (different base types) @@    expected restricted __be16 [usertype] protocol @@    got icted __be16 [usertype] protocol @@
   net/sched/cls_api.c:282:22: sparse:    expected restricted __be16 [usertype] protocol
   net/sched/cls_api.c:282:22: sparse:    got unsigned int [usertype] protocol
   net/sched/cls_api.c:1689:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
   net/sched/cls_api.c:1689:16: sparse:    struct tcf_proto *
   net/sched/cls_api.c:1689:16: sparse:    struct tcf_proto [noderef] <asn:4> *
   net/sched/cls_api.c:1790:20: sparse: sparse: incompatible types in comparison expression (different address spaces):
   net/sched/cls_api.c:1790:20: sparse:    struct tcf_proto [noderef] <asn:4> *
   net/sched/cls_api.c:1790:20: sparse:    struct tcf_proto *
>> net/sched/cls_api.c:1716:41: sparse: sparse: incorrect type in argument 4 (different base types) @@    expected restricted __be16 [usertype] proto @@    got icted __be16 [usertype] proto @@
   net/sched/cls_api.c:1752:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   net/sched/cls_api.c:1752:25: sparse:    struct tcf_proto [noderef] <asn:4> *
   net/sched/cls_api.c:1752:25: sparse:    struct tcf_proto *
   net/sched/cls_api.c:1772:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
   net/sched/cls_api.c:1772:16: sparse:    struct tcf_proto *
   net/sched/cls_api.c:1772:16: sparse:    struct tcf_proto [noderef] <asn:4> *
   net/sched/cls_api.c:1837:25: sparse: sparse: restricted __be16 degrades to integer
   net/sched/cls_api.c:2502:50: sparse: sparse: restricted __be16 degrades to integer

vim +1716 net/sched/cls_api.c

  1693	
  1694	static struct tcf_proto *tcf_chain_tp_find(struct tcf_chain *chain,
  1695						   struct tcf_chain_info *chain_info,
  1696						   u32 protocol, u32 prio,
  1697						   bool prio_allocate);
  1698	
  1699	/* Try to insert new proto.
  1700	 * If proto with specified priority already exists, free new proto
  1701	 * and return existing one.
  1702	 */
  1703	
  1704	static struct tcf_proto *tcf_chain_tp_insert_unique(struct tcf_chain *chain,
  1705							    struct tcf_proto *tp_new,
  1706							    u32 protocol, u32 prio,
  1707							    bool rtnl_held)
  1708	{
  1709		struct tcf_chain_info chain_info;
  1710		struct tcf_proto *tp;
  1711		int err = 0;
  1712	
  1713		mutex_lock(&chain->filter_chain_lock);
  1714	
  1715		if (tcf_proto_lookup_destroying(chain->block, chain->index, prio,
> 1716						protocol)) {
  1717			mutex_unlock(&chain->filter_chain_lock);
  1718			tcf_proto_destroy(tp_new, rtnl_held, false, NULL);
  1719			return ERR_PTR(-EAGAIN);
  1720		}
  1721	
  1722		tp = tcf_chain_tp_find(chain, &chain_info,
  1723				       protocol, prio, false);
  1724		if (!tp)
  1725			err = tcf_chain_tp_insert(chain, &chain_info, tp_new);
  1726		mutex_unlock(&chain->filter_chain_lock);
  1727	
  1728		if (tp) {
  1729			tcf_proto_destroy(tp_new, rtnl_held, false, NULL);
  1730			tp_new = tp;
  1731		} else if (err) {
  1732			tcf_proto_destroy(tp_new, rtnl_held, false, NULL);
  1733			tp_new = ERR_PTR(err);
  1734		}
  1735	
  1736		return tp_new;
  1737	}
  1738	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

      parent reply	other threads:[~2019-10-27  9:56 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-24 11:01 [RFC net-next 1/1] net: sched: prevent duplicate flower rules from tcf_proto destroy race John Hurley
2019-10-24 18:39 ` Vlad Buslov
2019-10-24 22:27   ` John Hurley
2019-10-25  7:08     ` Vlad Buslov
2019-10-25  8:23       ` John Hurley
2019-10-27  9:56 ` kbuild test robot [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201910271703.YDNQXI4F%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.