[linux-next:master 2707/3150] net/bridge/br_input.c:135:8: error: too many arguments to function 'br_multicast_is_router'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Linus,

FYI, the error/warning still remains.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   cd557f1c605fc5a2c0eb0b540610f50dc67dd849
commit: 1a3065a26807b4cdd65d3b696ddb18385610f7da [2707/3150] net: bridge: mcast: prepare is-router function for mcast router split
config: mips-randconfig-r012-20210514 (attached as .config)
compiler: mips-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=1a3065a26807b4cdd65d3b696ddb18385610f7da
        git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout 1a3065a26807b4cdd65d3b696ddb18385610f7da
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

   net/bridge/br_input.c: In function 'br_handle_frame_finish':
>> net/bridge/br_input.c:135:8: error: too many arguments to function 'br_multicast_is_router'
     135 |        br_multicast_is_router(br, skb)) {
         |        ^~~~~~~~~~~~~~~~~~~~~~
   In file included from net/bridge/br_input.c:23:
   net/bridge/br_private.h:1059:20: note: declared here
    1059 | static inline bool br_multicast_is_router(struct net_bridge *br)
         |                    ^~~~~~~~~~~~~~~~~~~~~~


vim +/br_multicast_is_router +135 net/bridge/br_input.c

    65	
    66	/* note: already called with rcu_read_lock */
    67	int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
    68	{
    69		struct net_bridge_port *p = br_port_get_rcu(skb->dev);
    70		enum br_pkt_type pkt_type = BR_PKT_UNICAST;
    71		struct net_bridge_fdb_entry *dst = NULL;
    72		struct net_bridge_mdb_entry *mdst;
    73		bool local_rcv, mcast_hit = false;
    74		struct net_bridge *br;
    75		u16 vid = 0;
    76		u8 state;
    77	
    78		if (!p || p->state == BR_STATE_DISABLED)
    79			goto drop;
    80	
    81		state = p->state;
    82		if (!br_allowed_ingress(p->br, nbp_vlan_group_rcu(p), skb, &vid,
    83					&state))
    84			goto out;
    85	
    86		nbp_switchdev_frame_mark(p, skb);
    87	
    88		/* insert into forwarding database after filtering to avoid spoofing */
    89		br = p->br;
    90		if (p->flags & BR_LEARNING)
    91			br_fdb_update(br, p, eth_hdr(skb)->h_source, vid, 0);
    92	
    93		local_rcv = !!(br->dev->flags & IFF_PROMISC);
    94		if (is_multicast_ether_addr(eth_hdr(skb)->h_dest)) {
    95			/* by definition the broadcast is also a multicast address */
    96			if (is_broadcast_ether_addr(eth_hdr(skb)->h_dest)) {
    97				pkt_type = BR_PKT_BROADCAST;
    98				local_rcv = true;
    99			} else {
   100				pkt_type = BR_PKT_MULTICAST;
   101				if (br_multicast_rcv(br, p, skb, vid))
   102					goto drop;
   103			}
   104		}
   105	
   106		if (state == BR_STATE_LEARNING)
   107			goto drop;
   108	
   109		BR_INPUT_SKB_CB(skb)->brdev = br->dev;
   110		BR_INPUT_SKB_CB(skb)->src_port_isolated = !!(p->flags & BR_ISOLATED);
   111	
   112		if (IS_ENABLED(CONFIG_INET) &&
   113		    (skb->protocol == htons(ETH_P_ARP) ||
   114		     skb->protocol == htons(ETH_P_RARP))) {
   115			br_do_proxy_suppress_arp(skb, br, vid, p);
   116		} else if (IS_ENABLED(CONFIG_IPV6) &&
   117			   skb->protocol == htons(ETH_P_IPV6) &&
   118			   br_opt_get(br, BROPT_NEIGH_SUPPRESS_ENABLED) &&
   119			   pskb_may_pull(skb, sizeof(struct ipv6hdr) +
   120					 sizeof(struct nd_msg)) &&
   121			   ipv6_hdr(skb)->nexthdr == IPPROTO_ICMPV6) {
   122				struct nd_msg *msg, _msg;
   123	
   124				msg = br_is_nd_neigh_msg(skb, &_msg);
   125				if (msg)
   126					br_do_suppress_nd(skb, br, vid, p, msg);
   127		}
   128	
   129		switch (pkt_type) {
   130		case BR_PKT_MULTICAST:
   131			mdst = br_mdb_get(br, skb, vid);
   132			if ((mdst || BR_INPUT_SKB_CB_MROUTERS_ONLY(skb)) &&
   133			    br_multicast_querier_exists(br, eth_hdr(skb), mdst)) {
   134				if ((mdst && mdst->host_joined) ||
 > 135				    br_multicast_is_router(br, skb)) {
   136					local_rcv = true;
   137					br->dev->stats.multicast++;
   138				}
   139				mcast_hit = true;
   140			} else {
   141				local_rcv = true;
   142				br->dev->stats.multicast++;
   143			}
   144			break;
   145		case BR_PKT_UNICAST:
   146			dst = br_fdb_find_rcu(br, eth_hdr(skb)->h_dest, vid);
   147			break;
   148		default:
   149			break;
   150		}
   151	
   152		if (dst) {
   153			unsigned long now = jiffies;
   154	
   155			if (test_bit(BR_FDB_LOCAL, &dst->flags))
   156				return br_pass_frame_up(skb);
   157	
   158			if (now != dst->used)
   159				dst->used = now;
   160			br_forward(dst->dst, skb, local_rcv, false);
   161		} else {
   162			if (!mcast_hit)
   163				br_flood(br, skb, pkt_type, local_rcv, false);
   164			else
   165				br_multicast_flood(mdst, skb, local_rcv, false);
   166		}
   167	
   168		if (local_rcv)
   169			return br_pass_frame_up(skb);
   170	
   171	out:
   172		return 0;
   173	drop:
   174		kfree_skb(skb);
   175		goto out;
   176	}
   177	EXPORT_SYMBOL_GPL(br_handle_frame_finish);
   178	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux