Re: [PATCH net] net: dsa: motorcomm: Isolate all ports during chip setup
From: kernel test robot
Date: Sat Oct 24 2026 - 18:54:17 EST
Hi David,
kernel test robot noticed the following build warnings:
[auto build test WARNING on net/main]
url: https://github.com/intel-lab-lkp/linux/commits/David-Yang/net-dsa-motorcomm-Isolate-all-ports-during-chip-setup/20261024-224021
base: net/main
patch link: https://lore.kernel.org/r/20261024144023.1010237-1-mmyangfl%40gmail.com
patch subject: [PATCH net] net: dsa: motorcomm: Isolate all ports during chip setup
config: arm64-randconfig-1000-20261025 (https://download.01.org/0day-ci/archive/20261025/202610250645.V7tGJ85r-lkp@xxxxxxxxx/config)
compiler: aarch64-linux-gcc (GCC) 8.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261025/202610250645.V7tGJ85r-lkp@xxxxxxxxx/reproduce)
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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202610250645.V7tGJ85r-lkp@xxxxxxxxx/
All warnings (new ones prefixed by >>):
drivers/net/dsa/motorcomm/chip.c: In function 'yt921x_chip_setup_dsa':
>> drivers/net/dsa/motorcomm/chip.c:2262:6: warning: unused variable 'port' [-Wunused-variable]
int port;
^~~~
>> drivers/net/dsa/motorcomm/chip.c:2259:16: warning: unused variable 'cpu_ports_mask' [-Wunused-variable]
unsigned long cpu_ports_mask;
^~~~~~~~~~~~~~
vim +/port +2262 drivers/net/dsa/motorcomm/chip.c
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2255
95e6bcab3c08e8 drivers/net/dsa/yt921x.c David Yang 2026-01-31 2256 static int yt921x_chip_setup_dsa(struct yt921x_priv *priv)
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2257 {
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2258 struct dsa_switch *ds = &priv->ds;
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 @2259 unsigned long cpu_ports_mask;
9f8888984eb095 drivers/net/dsa/yt921x.c David Yang 2026-04-30 2260 u32 ctrls[2];
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2261 u32 ctrl;
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 @2262 int port;
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2263 int res;
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2264
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2265 /* Enable DSA */
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2266 priv->cpu_ports_mask = dsa_cpu_ports(ds);
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2267
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2268 ctrl = YT921X_EXT_CPU_PORT_TAG_EN | YT921X_EXT_CPU_PORT_PORT_EN |
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2269 YT921X_EXT_CPU_PORT_PORT(__ffs(priv->cpu_ports_mask));
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2270 res = yt921x_reg_write(priv, YT921X_EXT_CPU_PORT, ctrl);
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2271 if (res)
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2272 return res;
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2273
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2274 /* Setup software switch */
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2275 ctrl = YT921X_CPU_COPY_TO_EXT_CPU;
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2276 res = yt921x_reg_write(priv, YT921X_CPU_COPY, ctrl);
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2277 if (res)
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2278 return res;
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2279
47373f4f561962 drivers/net/dsa/motorcomm/chip.c David Yang 2026-10-24 2280 ctrl = GENMASK(10, 0) & ~priv->cpu_ports_mask;
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2281 res = yt921x_reg_write(priv, YT921X_FILTER_UNK_UCAST, ctrl);
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2282 if (res)
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2283 return res;
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2284 res = yt921x_reg_write(priv, YT921X_FILTER_UNK_MCAST, ctrl);
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2285 if (res)
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2286 return res;
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2287
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2288 /* YT921x does not support native DSA port bridging, so we use port
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2289 * isolation to emulate it. However, be especially careful that port
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2290 * isolation takes _after_ FDB lookups, i.e. if an FDB entry (from
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2291 * another bridge) is matched and the destination port (in another
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2292 * bridge) is blocked, the packet will be dropped instead of flooding to
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2293 * the "bridged" ports, thus we need to trap and handle those packets by
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2294 * software.
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2295 *
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2296 * If there is no more than one bridge, we might be able to drop them
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2297 * directly given some conditions are met, but we trap them in all cases
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2298 * for now.
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2299 */
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2300 ctrl = 0;
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2301 for (int i = 0; i < YT921X_PORT_NUM; i++)
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2302 ctrl |= YT921X_ACT_UNK_ACTn_TRAP(i);
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2303 res = yt921x_reg_write(priv, YT921X_ACT_UNK_UCAST, ctrl);
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2304 if (res)
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2305 return res;
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2306 res = yt921x_reg_write(priv, YT921X_ACT_UNK_MCAST, ctrl);
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2307 if (res)
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2308 return res;
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2309
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2310 /* Tagged VID 0 should be treated as untagged, which confuses the
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2311 * hardware a lot
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2312 */
9f8888984eb095 drivers/net/dsa/yt921x.c David Yang 2026-04-30 2313 ctrls[0] = YT921X_VLAN_CTRLa_LEARN_DIS | YT921X_VLAN_CTRLa_PORTS_M;
9f8888984eb095 drivers/net/dsa/yt921x.c David Yang 2026-04-30 2314 ctrls[1] = 0;
9f8888984eb095 drivers/net/dsa/yt921x.c David Yang 2026-04-30 2315 res = yt921x_reg64_write(priv, YT921X_VLANn_CTRL(0), ctrls);
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2316 if (res)
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2317 return res;
186623f4aa724c drivers/net/dsa/yt921x.c David Yang 2025-10-17 2318
95e6bcab3c08e8 drivers/net/dsa/yt921x.c David Yang 2026-01-31 2319 return 0;
95e6bcab3c08e8 drivers/net/dsa/yt921x.c David Yang 2026-01-31 2320 }
95e6bcab3c08e8 drivers/net/dsa/yt921x.c David Yang 2026-01-31 2321
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki