Hi Xiaoliang, [FYI, it's a private test report for your RFC patch.] [auto build test ERROR on net-next/master] url: https://github.com/0day-ci/linux/commits/Xiaoliang-Yang/net-dsa-felix-frame-preemption-support/20201020-121555 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 105faa8742437c28815b2a3eb8314ebc5fd9288c config: x86_64-allyesconfig (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/0dec712f56c9e925e1603711d1dad831e2820394 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Xiaoliang-Yang/net-dsa-felix-frame-preemption-support/20201020-121555 git checkout 0dec712f56c9e925e1603711d1dad831e2820394 # save the attached .config to linux build tree make W=1 ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All error/warnings (new ones prefixed by >>): In file included from include/soc/mscc/ocelot.h:12, from include/soc/mscc/ocelot_vcap.h:9, from drivers/net/dsa/ocelot/felix.c:9: include/net/dsa.h:506:18: warning: 'struct ethtool_fp' declared inside parameter list will not be visible outside of this definition or declaration 506 | struct ethtool_fp *fpcmd); | ^~~~~~~~~~ include/net/dsa.h:512:18: warning: 'struct ethtool_fp' declared inside parameter list will not be visible outside of this definition or declaration 512 | struct ethtool_fp *fpcmd); | ^~~~~~~~~~ In file included from drivers/net/dsa/ocelot/felix.c:25: >> drivers/net/dsa/ocelot/felix.h:41:16: warning: 'struct ethtool_fp' declared inside parameter list will not be visible outside of this definition or declaration 41 | struct ethtool_fp *fpcmd); | ^~~~~~~~~~ drivers/net/dsa/ocelot/felix.h:43:16: warning: 'struct ethtool_fp' declared inside parameter list will not be visible outside of this definition or declaration 43 | struct ethtool_fp *fpcmd); | ^~~~~~~~~~ >> drivers/net/dsa/ocelot/felix.c:354:16: warning: 'struct ethtool_fp' declared inside parameter list will not be visible outside of this definition or declaration 354 | struct ethtool_fp *fpcmd) | ^~~~~~~~~~ drivers/net/dsa/ocelot/felix.c: In function 'felix_set_preempt': >> drivers/net/dsa/ocelot/felix.c:360:54: error: passing argument 3 of 'felix->info->port_set_preempt' from incompatible pointer type [-Werror=incompatible-pointer-types] 360 | return felix->info->port_set_preempt(ocelot, port, fpcmd); | ^~~~~ | | | struct ethtool_fp * drivers/net/dsa/ocelot/felix.c:360:54: note: expected 'struct ethtool_fp *' but argument is of type 'struct ethtool_fp *' drivers/net/dsa/ocelot/felix.c: At top level: drivers/net/dsa/ocelot/felix.c:366:16: warning: 'struct ethtool_fp' declared inside parameter list will not be visible outside of this definition or declaration 366 | struct ethtool_fp *fpcmd) | ^~~~~~~~~~ drivers/net/dsa/ocelot/felix.c: In function 'felix_get_preempt': >> drivers/net/dsa/ocelot/felix.c:372:54: error: passing argument 3 of 'felix->info->port_get_preempt' from incompatible pointer type [-Werror=incompatible-pointer-types] 372 | return felix->info->port_get_preempt(ocelot, port, fpcmd); | ^~~~~ | | | struct ethtool_fp * drivers/net/dsa/ocelot/felix.c:372:54: note: expected 'struct ethtool_fp *' but argument is of type 'struct ethtool_fp *' drivers/net/dsa/ocelot/felix.c: At top level: >> drivers/net/dsa/ocelot/felix.c:804:18: error: initialization of 'int (*)(struct dsa_switch *, int, struct ethtool_fp *)' from incompatible pointer type 'int (*)(struct dsa_switch *, int, struct ethtool_fp *)' [-Werror=incompatible-pointer-types] 804 | .set_preempt = felix_set_preempt, | ^~~~~~~~~~~~~~~~~ drivers/net/dsa/ocelot/felix.c:804:18: note: (near initialization for 'felix_switch_ops.set_preempt') drivers/net/dsa/ocelot/felix.c:805:18: error: initialization of 'int (*)(struct dsa_switch *, int, struct ethtool_fp *)' from incompatible pointer type 'int (*)(struct dsa_switch *, int, struct ethtool_fp *)' [-Werror=incompatible-pointer-types] 805 | .get_preempt = felix_get_preempt, | ^~~~~~~~~~~~~~~~~ drivers/net/dsa/ocelot/felix.c:805:18: note: (near initialization for 'felix_switch_ops.get_preempt') cc1: some warnings being treated as errors -- In file included from include/soc/mscc/ocelot.h:12, from include/soc/mscc/ocelot_vcap.h:9, from drivers/net/dsa/ocelot/felix_vsc9959.c:7: include/net/dsa.h:506:18: warning: 'struct ethtool_fp' declared inside parameter list will not be visible outside of this definition or declaration 506 | struct ethtool_fp *fpcmd); | ^~~~~~~~~~ include/net/dsa.h:512:18: warning: 'struct ethtool_fp' declared inside parameter list will not be visible outside of this definition or declaration 512 | struct ethtool_fp *fpcmd); | ^~~~~~~~~~ In file included from drivers/net/dsa/ocelot/felix_vsc9959.c:18: >> drivers/net/dsa/ocelot/felix.h:41:16: warning: 'struct ethtool_fp' declared inside parameter list will not be visible outside of this definition or declaration 41 | struct ethtool_fp *fpcmd); | ^~~~~~~~~~ drivers/net/dsa/ocelot/felix.h:43:16: warning: 'struct ethtool_fp' declared inside parameter list will not be visible outside of this definition or declaration 43 | struct ethtool_fp *fpcmd); | ^~~~~~~~~~ >> drivers/net/dsa/ocelot/felix_vsc9959.c:1330:16: warning: 'struct ethtool_fp' declared inside parameter list will not be visible outside of this definition or declaration 1330 | struct ethtool_fp *fpcmd) | ^~~~~~~~~~ drivers/net/dsa/ocelot/felix_vsc9959.c: In function 'vsc9959_port_set_preempt': >> drivers/net/dsa/ocelot/felix_vsc9959.c:1333:25: error: dereferencing pointer to incomplete type 'struct ethtool_fp' 1333 | int mm_fragsize = fpcmd->min_frag_size_mult; | ^~ drivers/net/dsa/ocelot/felix_vsc9959.c: At top level: drivers/net/dsa/ocelot/felix_vsc9959.c:1356:16: warning: 'struct ethtool_fp' declared inside parameter list will not be visible outside of this definition or declaration 1356 | struct ethtool_fp *fpcmd) | ^~~~~~~~~~ drivers/net/dsa/ocelot/felix_vsc9959.c: In function 'vsc9959_port_get_preempt': drivers/net/dsa/ocelot/felix_vsc9959.c:1363:7: error: dereferencing pointer to incomplete type 'struct ethtool_fp' 1363 | fpcmd->enabled = (val ? 0 : 1); | ^~ drivers/net/dsa/ocelot/felix_vsc9959.c: At top level: >> drivers/net/dsa/ocelot/felix_vsc9959.c:1419:22: error: initialization of 'int (*)(struct ocelot *, int, struct ethtool_fp *)' from incompatible pointer type 'int (*)(struct ocelot *, int, struct ethtool_fp *)' [-Werror=incompatible-pointer-types] 1419 | .port_set_preempt = vsc9959_port_set_preempt, | ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/dsa/ocelot/felix_vsc9959.c:1419:22: note: (near initialization for 'felix_info_vsc9959.port_set_preempt') drivers/net/dsa/ocelot/felix_vsc9959.c:1420:22: error: initialization of 'int (*)(struct ocelot *, int, struct ethtool_fp *)' from incompatible pointer type 'int (*)(struct ocelot *, int, struct ethtool_fp *)' [-Werror=incompatible-pointer-types] 1420 | .port_get_preempt = vsc9959_port_get_preempt, | ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/dsa/ocelot/felix_vsc9959.c:1420:22: note: (near initialization for 'felix_info_vsc9959.port_get_preempt') cc1: some warnings being treated as errors -- In file included from include/soc/mscc/ocelot.h:12, from include/soc/mscc/ocelot_vcap.h:9, from drivers/net/dsa/ocelot/seville_vsc9953.c:6: include/net/dsa.h:506:18: warning: 'struct ethtool_fp' declared inside parameter list will not be visible outside of this definition or declaration 506 | struct ethtool_fp *fpcmd); | ^~~~~~~~~~ include/net/dsa.h:512:18: warning: 'struct ethtool_fp' declared inside parameter list will not be visible outside of this definition or declaration 512 | struct ethtool_fp *fpcmd); | ^~~~~~~~~~ In file included from drivers/net/dsa/ocelot/seville_vsc9953.c:13: >> drivers/net/dsa/ocelot/felix.h:41:16: warning: 'struct ethtool_fp' declared inside parameter list will not be visible outside of this definition or declaration 41 | struct ethtool_fp *fpcmd); | ^~~~~~~~~~ drivers/net/dsa/ocelot/felix.h:43:16: warning: 'struct ethtool_fp' declared inside parameter list will not be visible outside of this definition or declaration 43 | struct ethtool_fp *fpcmd); | ^~~~~~~~~~ vim +360 drivers/net/dsa/ocelot/felix.c 352 353 static int felix_set_preempt(struct dsa_switch *ds, int port, > 354 struct ethtool_fp *fpcmd) 355 { 356 struct ocelot *ocelot = ds->priv; 357 struct felix *felix = ocelot_to_felix(ocelot); 358 359 if (felix->info->port_set_preempt) > 360 return felix->info->port_set_preempt(ocelot, port, fpcmd); 361 362 return -EOPNOTSUPP; 363 } 364 365 static int felix_get_preempt(struct dsa_switch *ds, int port, 366 struct ethtool_fp *fpcmd) 367 { 368 struct ocelot *ocelot = ds->priv; 369 struct felix *felix = ocelot_to_felix(ocelot); 370 371 if (felix->info->port_get_preempt) > 372 return felix->info->port_get_preempt(ocelot, port, fpcmd); 373 374 return -EOPNOTSUPP; 375 } 376 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org