All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: Re: [PATCH net-next 2/3] net: dsa: vsc73xx: implement packet reception via control interface
Date: Sat, 26 Oct 2024 05:06:52 +0800	[thread overview]
Message-ID: <202410260438.P3jDdLQI-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20241020205452.2660042-2-paweldembicki@gmail.com>
References: <20241020205452.2660042-2-paweldembicki@gmail.com>
TO: Pawel Dembicki <paweldembicki@gmail.com>
TO: netdev@vger.kernel.org
CC: Linus Walleij <linus.walleij@linaro.org>
CC: Pawel Dembicki <paweldembicki@gmail.com>
CC: Andrew Lunn <andrew@lunn.ch>
CC: Florian Fainelli <f.fainelli@gmail.com>
CC: Vladimir Oltean <olteanv@gmail.com>
CC: Eric Dumazet <edumazet@google.com>
CC: Jakub Kicinski <kuba@kernel.org>
CC: Paolo Abeni <pabeni@redhat.com>
CC: linux-kernel@vger.kernel.org

Hi Pawel,

kernel test robot noticed the following build warnings:

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

url:    https://github.com/intel-lab-lkp/linux/commits/Pawel-Dembicki/net-dsa-vsc73xx-implement-packet-reception-via-control-interface/20241021-050041
base:   net-next/main
patch link:    https://lore.kernel.org/r/20241020205452.2660042-2-paweldembicki%40gmail.com
patch subject: [PATCH net-next 2/3] net: dsa: vsc73xx: implement packet reception via control interface
:::::: branch date: 5 days ago
:::::: commit date: 5 days ago
config: arm-randconfig-r072-20241024 (https://download.01.org/0day-ci/archive/20241026/202410260438.P3jDdLQI-lkp@intel.com/config)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 5886454669c3c9026f7f27eab13509dd0241f2d6)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202410260438.P3jDdLQI-lkp@intel.com/

New smatch warnings:
drivers/net/dsa/vitesse-vsc73xx-core.c:935 vsc73xx_polled_rcv() error: uninitialized symbol 'len'.

Old smatch warnings:
drivers/net/dsa/vitesse-vsc73xx-core.c:839 vsc73xx_inject_frame() error: uninitialized symbol 'ret'.

vim +/len +935 drivers/net/dsa/vitesse-vsc73xx-core.c

ffd38d14c3235e Pawel Dembicki 2024-10-20  879  
2fcbacbba1b072 Pawel Dembicki 2024-10-20  880  static void vsc73xx_polled_rcv(struct kthread_work *work)
2fcbacbba1b072 Pawel Dembicki 2024-10-20  881  {
2fcbacbba1b072 Pawel Dembicki 2024-10-20  882  	struct vsc73xx *vsc = container_of(work, struct vsc73xx, dwork.work);
2fcbacbba1b072 Pawel Dembicki 2024-10-20  883  	u16 ptr = VSC73XX_CAPT_FRAME_DATA;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  884  	struct dsa_switch *ds = vsc->ds;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  885  	int ret, buf_len, len, part;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  886  	struct vsc73xx_ifh ifh;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  887  	struct net_device *dev;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  888  	struct dsa_port *dp;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  889  	struct sk_buff *skb;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  890  	u32 val, *buf;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  891  	u16 count;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  892  
2fcbacbba1b072 Pawel Dembicki 2024-10-20  893  	ret = vsc73xx_read(vsc, VSC73XX_BLOCK_SYSTEM, 0, VSC73XX_CAPCTRL, &val);
2fcbacbba1b072 Pawel Dembicki 2024-10-20  894  	if (ret)
2fcbacbba1b072 Pawel Dembicki 2024-10-20  895  		goto queue;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  896  
2fcbacbba1b072 Pawel Dembicki 2024-10-20  897  	if (!(val & VSC73XX_CAPCTRL_QUEUE0_READY))
2fcbacbba1b072 Pawel Dembicki 2024-10-20  898  		/* No frame to read */
2fcbacbba1b072 Pawel Dembicki 2024-10-20  899  		goto queue;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  900  
2fcbacbba1b072 Pawel Dembicki 2024-10-20  901  	/* Initialise reading */
2fcbacbba1b072 Pawel Dembicki 2024-10-20  902  	ret = vsc73xx_read(vsc, VSC73XX_BLOCK_CAPTURE, VSC73XX_BLOCK_CAPT_Q0,
2fcbacbba1b072 Pawel Dembicki 2024-10-20  903  			   VSC73XX_CAPT_CAPREADP, &val);
2fcbacbba1b072 Pawel Dembicki 2024-10-20  904  	if (ret)
2fcbacbba1b072 Pawel Dembicki 2024-10-20  905  		goto queue;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  906  
2fcbacbba1b072 Pawel Dembicki 2024-10-20  907  	/* Get internal frame header */
2fcbacbba1b072 Pawel Dembicki 2024-10-20  908  	ret = vsc73xx_read(vsc, VSC73XX_BLOCK_CAPTURE,
2fcbacbba1b072 Pawel Dembicki 2024-10-20  909  			   VSC73XX_BLOCK_CAPT_FRAME0, ptr++, &ifh.datah);
2fcbacbba1b072 Pawel Dembicki 2024-10-20  910  	if (ret)
2fcbacbba1b072 Pawel Dembicki 2024-10-20  911  		goto queue;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  912  
2fcbacbba1b072 Pawel Dembicki 2024-10-20  913  	ret = vsc73xx_read(vsc, VSC73XX_BLOCK_CAPTURE,
2fcbacbba1b072 Pawel Dembicki 2024-10-20  914  			   VSC73XX_BLOCK_CAPT_FRAME0, ptr++, &ifh.datal);
2fcbacbba1b072 Pawel Dembicki 2024-10-20  915  	if (ret)
2fcbacbba1b072 Pawel Dembicki 2024-10-20  916  		goto queue;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  917  
2fcbacbba1b072 Pawel Dembicki 2024-10-20  918  	if (ifh.magic != VSC73XX_IFH_MAGIC) {
2fcbacbba1b072 Pawel Dembicki 2024-10-20  919  		/* Something goes wrong with buffer. Reset capture block */
2fcbacbba1b072 Pawel Dembicki 2024-10-20  920  		vsc73xx_write(vsc, VSC73XX_BLOCK_CAPTURE,
2fcbacbba1b072 Pawel Dembicki 2024-10-20  921  			      VSC73XX_BLOCK_CAPT_RST, VSC73XX_CAPT_CAPRST, 1);
2fcbacbba1b072 Pawel Dembicki 2024-10-20  922  		goto queue;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  923  	}
2fcbacbba1b072 Pawel Dembicki 2024-10-20  924  
2fcbacbba1b072 Pawel Dembicki 2024-10-20  925  	if (!dsa_is_user_port(ds, ifh.port))
2fcbacbba1b072 Pawel Dembicki 2024-10-20  926  		goto release_frame;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  927  
2fcbacbba1b072 Pawel Dembicki 2024-10-20  928  	dp = dsa_to_port(ds, ifh.port);
2fcbacbba1b072 Pawel Dembicki 2024-10-20  929  	dev = dp->user;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  930  	if (!dev)
2fcbacbba1b072 Pawel Dembicki 2024-10-20  931  		goto release_frame;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  932  
2fcbacbba1b072 Pawel Dembicki 2024-10-20  933  	count = (ifh.frame_length + 7 + VSC73XX_IFH_SIZE - ETH_FCS_LEN) >> 2;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  934  
2fcbacbba1b072 Pawel Dembicki 2024-10-20 @935  	skb = netdev_alloc_skb(dev, len);
2fcbacbba1b072 Pawel Dembicki 2024-10-20  936  	if (unlikely(!skb)) {
2fcbacbba1b072 Pawel Dembicki 2024-10-20  937  		netdev_err(dev, "Unable to allocate sk_buff\n");
2fcbacbba1b072 Pawel Dembicki 2024-10-20  938  		goto release_frame;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  939  	}
2fcbacbba1b072 Pawel Dembicki 2024-10-20  940  
2fcbacbba1b072 Pawel Dembicki 2024-10-20  941  	buf_len = ifh.frame_length - ETH_FCS_LEN;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  942  	buf = (u32 *)skb_put(skb, buf_len);
2fcbacbba1b072 Pawel Dembicki 2024-10-20  943  	len = 0;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  944  	part = 0;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  945  
2fcbacbba1b072 Pawel Dembicki 2024-10-20  946  	while (ptr < count) {
2fcbacbba1b072 Pawel Dembicki 2024-10-20  947  		ret = vsc73xx_read(vsc, VSC73XX_BLOCK_CAPTURE,
2fcbacbba1b072 Pawel Dembicki 2024-10-20  948  				   VSC73XX_BLOCK_CAPT_FRAME0 + part, ptr++,
2fcbacbba1b072 Pawel Dembicki 2024-10-20  949  				   buf + len);
2fcbacbba1b072 Pawel Dembicki 2024-10-20  950  		if (ret)
2fcbacbba1b072 Pawel Dembicki 2024-10-20  951  			goto free_skb;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  952  		len++;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  953  		if (ptr > VSC73XX_CAPT_FRAME_DATA_MAX &&
2fcbacbba1b072 Pawel Dembicki 2024-10-20  954  		    count != VSC73XX_CAPT_FRAME_DATA_MAX) {
2fcbacbba1b072 Pawel Dembicki 2024-10-20  955  			ptr = VSC73XX_CAPT_FRAME_DATA;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  956  			part++;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  957  			count -= VSC73XX_CAPT_FRAME_DATA_MAX;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  958  		}
2fcbacbba1b072 Pawel Dembicki 2024-10-20  959  	}
2fcbacbba1b072 Pawel Dembicki 2024-10-20  960  
2fcbacbba1b072 Pawel Dembicki 2024-10-20  961  	/* Get FCS */
2fcbacbba1b072 Pawel Dembicki 2024-10-20  962  	ret = vsc73xx_read(vsc, VSC73XX_BLOCK_CAPTURE,
2fcbacbba1b072 Pawel Dembicki 2024-10-20  963  			   VSC73XX_BLOCK_CAPT_FRAME0, ptr++, &val);
2fcbacbba1b072 Pawel Dembicki 2024-10-20  964  	if (ret)
2fcbacbba1b072 Pawel Dembicki 2024-10-20  965  		goto free_skb;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  966  
2fcbacbba1b072 Pawel Dembicki 2024-10-20  967  	/* Everything we see on an interface that is in the HW bridge
2fcbacbba1b072 Pawel Dembicki 2024-10-20  968  	 * has already been forwarded.
2fcbacbba1b072 Pawel Dembicki 2024-10-20  969  	 */
2fcbacbba1b072 Pawel Dembicki 2024-10-20  970  	if (dp->bridge)
2fcbacbba1b072 Pawel Dembicki 2024-10-20  971  		skb->offload_fwd_mark = 1;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  972  
2fcbacbba1b072 Pawel Dembicki 2024-10-20  973  	skb->protocol = eth_type_trans(skb, dev);
2fcbacbba1b072 Pawel Dembicki 2024-10-20  974  
2fcbacbba1b072 Pawel Dembicki 2024-10-20  975  	netif_rx(skb);
2fcbacbba1b072 Pawel Dembicki 2024-10-20  976  	goto release_frame;
2fcbacbba1b072 Pawel Dembicki 2024-10-20  977  
2fcbacbba1b072 Pawel Dembicki 2024-10-20  978  free_skb:
2fcbacbba1b072 Pawel Dembicki 2024-10-20  979  	kfree_skb(skb);
2fcbacbba1b072 Pawel Dembicki 2024-10-20  980  release_frame:
2fcbacbba1b072 Pawel Dembicki 2024-10-20  981  	/* Release the frame from internal buffer */
2fcbacbba1b072 Pawel Dembicki 2024-10-20  982  	vsc73xx_write(vsc, VSC73XX_BLOCK_CAPTURE, VSC73XX_BLOCK_CAPT_Q0,
2fcbacbba1b072 Pawel Dembicki 2024-10-20  983  		      VSC73XX_CAPT_CAPREADP, 0);
2fcbacbba1b072 Pawel Dembicki 2024-10-20  984  queue:
2fcbacbba1b072 Pawel Dembicki 2024-10-20  985  	kthread_queue_delayed_work(vsc->rcv_worker, &vsc->dwork,
2fcbacbba1b072 Pawel Dembicki 2024-10-20  986  				   msecs_to_jiffies(VSC73XX_RCV_POLL_INTERVAL));
2fcbacbba1b072 Pawel Dembicki 2024-10-20  987  }
2fcbacbba1b072 Pawel Dembicki 2024-10-20  988  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

             reply	other threads:[~2024-10-25 21:07 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-25 21:06 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-10-20 20:54 [PATCH net-next 1/3] net: dsa: vsc73xx: implement transmit via control interface Pawel Dembicki
2024-10-20 20:54 ` [PATCH net-next 2/3] net: dsa: vsc73xx: implement packet reception " Pawel Dembicki
2024-10-21 10:42   ` Simon Horman
2024-10-21 11:38   ` Vladimir Oltean
2024-10-21 11:42   ` Vladimir Oltean
2024-10-22  2:18   ` kernel test robot

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=202410260438.P3jDdLQI-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=error27@gmail.com \
    --cc=oe-kbuild@lists.linux.dev \
    /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.