netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vladimir Oltean <olteanv@gmail.com>
To: kbuild test robot <lkp@intel.com>
Cc: Andrew Lunn <andrew@lunn.ch>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Vivien Didelot <vivien.didelot@gmail.com>,
	kbuild-all@lists.01.org, "David S. Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>, Jiri Pirko <jiri@mellanox.com>,
	Ido Schimmel <idosch@idosch.org>,
	Russell King <rmk+kernel@armlinux.org.uk>,
	netdev <netdev@vger.kernel.org>,
	lkml <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 net-next 03/15] net: dsa: sja1105: keep the VLAN awareness state in a driver variable
Date: Tue, 12 May 2020 02:57:50 +0300	[thread overview]
Message-ID: <CA+h21ho7XpgQOkM9L64OLf--YKsz1j4tp6U+OpytkhBJX0Swog@mail.gmail.com> (raw)
In-Reply-To: <202005120607.z7yY4vNY%lkp@intel.com>

On Tue, 12 May 2020 at 01:59, kbuild test robot <lkp@intel.com> wrote:
>
> Hi Vladimir,
>
> I love your patch! Yet something to improve:
>
> [auto build test ERROR on net-next/master]
> [cannot apply to linus/master v5.7-rc5]
> [if your patch is applied to the wrong git tree, please drop us a note to help
> improve the system. BTW, we also suggest to use '--base' option to specify the
> base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
>
> url:    https://github.com/0day-ci/linux/commits/Vladimir-Oltean/Traffic-support-for-dsa_8021q-in-vlan_filtering-1-mode/20200512-024329
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git a6f0b26d6a5dcf27980e65f965779a929039f11d
> config: xtensa-randconfig-r021-20200511 (attached as .config)
> compiler: xtensa-linux-gcc (GCC) 9.3.0
> reproduce:
>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # save the attached .config to linux build tree
>         COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=xtensa
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kbuild test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>):
>
>    xtensa-linux-ld: net/dsa/tag_sja1105.o: in function `sja1105_rcv':
> >> net/dsa/tag_sja1105.c:305: undefined reference to `sja1105_can_use_vlan_as_tags'
>    xtensa-linux-ld: net/dsa/tag_sja1105.o: in function `sja1105_filter':
>    net/dsa/tag_sja1105.c:77: undefined reference to `sja1105_can_use_vlan_as_tags'
>

Argh, this is by compiling the tagger module without the driver, it
looks like I can't get away with doing this.
The issue is that I don't want to expose struct sja1105_private
publicly, but I do have a struct sja1105_port hanging off of dp->priv.
But I don't have access to a dp pointer in the .filter method... So
the only realistic idea I have is to provide a shim implementation for
the call.


> vim +305 net/dsa/tag_sja1105.c
>
> f3097be21bf17a Vladimir Oltean 2019-06-08  246
> 227d07a07ef126 Vladimir Oltean 2019-05-05  247  static struct sk_buff *sja1105_rcv(struct sk_buff *skb,
> 227d07a07ef126 Vladimir Oltean 2019-05-05  248                                     struct net_device *netdev,
> 227d07a07ef126 Vladimir Oltean 2019-05-05  249                                     struct packet_type *pt)
> 227d07a07ef126 Vladimir Oltean 2019-05-05  250  {
> e53e18a6fe4d3a Vladimir Oltean 2019-06-08  251          struct sja1105_meta meta = {0};
> d461933638ae9f Vladimir Oltean 2019-06-08  252          int source_port, switch_id;
> e80f40cbe4dd51 Vladimir Oltean 2020-03-24  253          struct ethhdr *hdr;
> 227d07a07ef126 Vladimir Oltean 2019-05-05  254          u16 tpid, vid, tci;
> 42824463d38d27 Vladimir Oltean 2019-06-08  255          bool is_link_local;
> 227d07a07ef126 Vladimir Oltean 2019-05-05  256          bool is_tagged;
> e53e18a6fe4d3a Vladimir Oltean 2019-06-08  257          bool is_meta;
> 227d07a07ef126 Vladimir Oltean 2019-05-05  258
> e80f40cbe4dd51 Vladimir Oltean 2020-03-24  259          hdr = eth_hdr(skb);
> e80f40cbe4dd51 Vladimir Oltean 2020-03-24  260          tpid = ntohs(hdr->h_proto);
> d461933638ae9f Vladimir Oltean 2019-06-08  261          is_tagged = (tpid == ETH_P_SJA1105);
> 42824463d38d27 Vladimir Oltean 2019-06-08  262          is_link_local = sja1105_is_link_local(skb);
> e53e18a6fe4d3a Vladimir Oltean 2019-06-08  263          is_meta = sja1105_is_meta_frame(skb);
> 227d07a07ef126 Vladimir Oltean 2019-05-05  264
> 227d07a07ef126 Vladimir Oltean 2019-05-05  265          skb->offload_fwd_mark = 1;
> 227d07a07ef126 Vladimir Oltean 2019-05-05  266
> 42824463d38d27 Vladimir Oltean 2019-06-08  267          if (is_tagged) {
> 42824463d38d27 Vladimir Oltean 2019-06-08  268                  /* Normal traffic path. */
> e80f40cbe4dd51 Vladimir Oltean 2020-03-24  269                  skb_push_rcsum(skb, ETH_HLEN);
> e80f40cbe4dd51 Vladimir Oltean 2020-03-24  270                  __skb_vlan_pop(skb, &tci);
> e80f40cbe4dd51 Vladimir Oltean 2020-03-24  271                  skb_pull_rcsum(skb, ETH_HLEN);
> e80f40cbe4dd51 Vladimir Oltean 2020-03-24  272                  skb_reset_network_header(skb);
> e80f40cbe4dd51 Vladimir Oltean 2020-03-24  273                  skb_reset_transport_header(skb);
> e80f40cbe4dd51 Vladimir Oltean 2020-03-24  274
> 42824463d38d27 Vladimir Oltean 2019-06-08  275                  vid = tci & VLAN_VID_MASK;
> 42824463d38d27 Vladimir Oltean 2019-06-08  276                  source_port = dsa_8021q_rx_source_port(vid);
> 42824463d38d27 Vladimir Oltean 2019-06-08  277                  switch_id = dsa_8021q_rx_switch_id(vid);
> 42824463d38d27 Vladimir Oltean 2019-06-08  278                  skb->priority = (tci & VLAN_PRIO_MASK) >> VLAN_PRIO_SHIFT;
> 42824463d38d27 Vladimir Oltean 2019-06-08  279          } else if (is_link_local) {
> 227d07a07ef126 Vladimir Oltean 2019-05-05  280                  /* Management traffic path. Switch embeds the switch ID and
> 227d07a07ef126 Vladimir Oltean 2019-05-05  281                   * port ID into bytes of the destination MAC, courtesy of
> 227d07a07ef126 Vladimir Oltean 2019-05-05  282                   * the incl_srcpt options.
> 227d07a07ef126 Vladimir Oltean 2019-05-05  283                   */
> 227d07a07ef126 Vladimir Oltean 2019-05-05  284                  source_port = hdr->h_dest[3];
> 227d07a07ef126 Vladimir Oltean 2019-05-05  285                  switch_id = hdr->h_dest[4];
> 227d07a07ef126 Vladimir Oltean 2019-05-05  286                  /* Clear the DMAC bytes that were mangled by the switch */
> 227d07a07ef126 Vladimir Oltean 2019-05-05  287                  hdr->h_dest[3] = 0;
> 227d07a07ef126 Vladimir Oltean 2019-05-05  288                  hdr->h_dest[4] = 0;
> e53e18a6fe4d3a Vladimir Oltean 2019-06-08  289          } else if (is_meta) {
> e53e18a6fe4d3a Vladimir Oltean 2019-06-08  290                  sja1105_meta_unpack(skb, &meta);
> e53e18a6fe4d3a Vladimir Oltean 2019-06-08  291                  source_port = meta.source_port;
> e53e18a6fe4d3a Vladimir Oltean 2019-06-08  292                  switch_id = meta.switch_id;
> 227d07a07ef126 Vladimir Oltean 2019-05-05  293          } else {
> 42824463d38d27 Vladimir Oltean 2019-06-08  294                  return NULL;
> 227d07a07ef126 Vladimir Oltean 2019-05-05  295          }
> 227d07a07ef126 Vladimir Oltean 2019-05-05  296
> 227d07a07ef126 Vladimir Oltean 2019-05-05  297          skb->dev = dsa_master_find_slave(netdev, switch_id, source_port);
> 227d07a07ef126 Vladimir Oltean 2019-05-05  298          if (!skb->dev) {
> 227d07a07ef126 Vladimir Oltean 2019-05-05  299                  netdev_warn(netdev, "Couldn't decode source port\n");
> 227d07a07ef126 Vladimir Oltean 2019-05-05  300                  return NULL;
> 227d07a07ef126 Vladimir Oltean 2019-05-05  301          }
> 227d07a07ef126 Vladimir Oltean 2019-05-05  302
> f3097be21bf17a Vladimir Oltean 2019-06-08  303          return sja1105_rcv_meta_state_machine(skb, &meta, is_link_local,
> f3097be21bf17a Vladimir Oltean 2019-06-08  304                                                is_meta);
> 227d07a07ef126 Vladimir Oltean 2019-05-05 @305  }
> 227d07a07ef126 Vladimir Oltean 2019-05-05  306
>
> :::::: The code at line 305 was first introduced by commit
> :::::: 227d07a07ef126272ea2eed97fd136cd7a803d81 net: dsa: sja1105: Add support for traffic through standalone ports
>
> :::::: TO: Vladimir Oltean <olteanv@gmail.com>
> :::::: CC: David S. Miller <davem@davemloft.net>
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

  reply	other threads:[~2020-05-11 23:58 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-11 13:53 [PATCH v2 net-next 00/15] Traffic support for dsa_8021q in vlan_filtering=1 mode Vladimir Oltean
2020-05-11 13:53 ` [PATCH v2 net-next 01/15] net: dsa: provide an option for drivers to always receive bridge VLANs Vladimir Oltean
2020-05-11 22:58   ` Florian Fainelli
2020-05-11 13:53 ` [PATCH v2 net-next 02/15] net: dsa: tag_8021q: introduce a vid_is_dsa_8021q helper Vladimir Oltean
2020-05-11 22:59   ` Florian Fainelli
2020-05-11 13:53 ` [PATCH v2 net-next 03/15] net: dsa: sja1105: keep the VLAN awareness state in a driver variable Vladimir Oltean
2020-05-11 22:59   ` kbuild test robot
2020-05-11 23:57     ` Vladimir Oltean [this message]
2020-05-12  3:26   ` Florian Fainelli
2020-05-11 13:53 ` [PATCH v2 net-next 04/15] net: dsa: sja1105: deny alterations of dsa_8021q VLANs from the bridge Vladimir Oltean
2020-05-12  3:28   ` Florian Fainelli
2020-05-11 13:53 ` [PATCH v2 net-next 05/15] net: dsa: sja1105: save/restore VLANs using a delta commit method Vladimir Oltean
2020-05-12  3:31   ` Florian Fainelli
2020-05-11 13:53 ` [PATCH v2 net-next 06/15] net: dsa: sja1105: allow VLAN configuration from the bridge in all states Vladimir Oltean
2020-05-12  3:25   ` Florian Fainelli
2020-05-11 13:53 ` [PATCH v2 net-next 07/15] net: dsa: sja1105: exit sja1105_vlan_filtering when called multiple times Vladimir Oltean
2020-05-12  3:32   ` Florian Fainelli
2020-05-11 13:53 ` [PATCH v2 net-next 08/15] net: dsa: sja1105: prepare tagger for handling DSA tags and VLAN simultaneously Vladimir Oltean
2020-05-12  3:34   ` Florian Fainelli
2020-05-11 13:53 ` [PATCH v2 net-next 09/15] net: dsa: tag_8021q: support up to 8 VLANs per port using sub-VLANs Vladimir Oltean
2020-05-12  3:35   ` Florian Fainelli
2020-05-11 13:53 ` [PATCH v2 net-next 10/15] net: dsa: tag_sja1105: implement sub-VLAN decoding Vladimir Oltean
2020-05-12  3:36   ` Florian Fainelli
2020-05-11 13:53 ` [PATCH v2 net-next 11/15] net: dsa: sja1105: add a new best_effort_vlan_filtering devlink parameter Vladimir Oltean
2020-05-12  3:37   ` Florian Fainelli
2020-05-11 13:53 ` [PATCH v2 net-next 12/15] net: dsa: sja1105: add packing ops for the Retagging Table Vladimir Oltean
2020-05-12  3:38   ` Florian Fainelli
2020-05-11 13:53 ` [PATCH v2 net-next 13/15] net: dsa: sja1105: implement a common frame memory partitioning function Vladimir Oltean
2020-05-12  3:39   ` Florian Fainelli
2020-05-11 13:53 ` [PATCH v2 net-next 14/15] net: dsa: sja1105: implement VLAN retagging for dsa_8021q sub-VLANs Vladimir Oltean
2020-05-12  3:41   ` Florian Fainelli
2020-05-11 13:53 ` [PATCH v2 net-next 15/15] docs: net: dsa: sja1105: document the best_effort_vlan_filtering option Vladimir Oltean
2020-05-12  3:43   ` Florian Fainelli

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=CA+h21ho7XpgQOkM9L64OLf--YKsz1j4tp6U+OpytkhBJX0Swog@mail.gmail.com \
    --to=olteanv@gmail.com \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=f.fainelli@gmail.com \
    --cc=idosch@idosch.org \
    --cc=jiri@mellanox.com \
    --cc=kbuild-all@lists.01.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=rmk+kernel@armlinux.org.uk \
    --cc=vivien.didelot@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).