On Tue, 5 May 2020 at 17:26, kbuild test robot <l...@intel.com> wrote: > > Hi Vladimir, > > I love your patch! Yet something to improve: > > [auto build test ERROR on net-next/master] > [also build test ERROR on net/master linus/master v5.7-rc4 next-20200505] > [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/tc-gate-offload-for-SJA1105-DSA-switch/20200505-040345 > base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git > 627642f07b3093f501495d226c7a0b9d56a0c870 > config: i386-randconfig-h001-20200503 (attached as .config) > compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0 > reproduce: > # save the attached .config to linux build tree > make ARCH=i386 > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kbuild test robot <l...@intel.com> > > All errors (new ones prefixed by >>): > > drivers/net/dsa/sja1105/sja1105_flower.c: In function > 'sja1105_cls_flower_add': > >> drivers/net/dsa/sja1105/sja1105_flower.c:406:9: error: implicit > >> declaration of function 'sja1105_init_scheduling'; did you mean > >> 'sja1105_get_strings'? [-Werror=implicit-function-declaration] > rc = sja1105_init_scheduling(priv); > ^~~~~~~~~~~~~~~~~~~~~~~ > sja1105_get_strings > cc1: some warnings being treated as errors > > vim +406 drivers/net/dsa/sja1105/sja1105_flower.c > > 303 > 304 int sja1105_cls_flower_add(struct dsa_switch *ds, int port, > 305 struct flow_cls_offload *cls, bool ingress) > 306 { > 307 struct flow_rule *rule = flow_cls_offload_flow_rule(cls); > 308 struct netlink_ext_ack *extack = cls->common.extack; > 309 struct sja1105_private *priv = ds->priv; > 310 const struct flow_action_entry *act; > 311 unsigned long cookie = cls->cookie; > 312 bool routing_rule = false; > 313 struct sja1105_key key; > 314 bool gate_rule = false; > 315 bool vl_rule = false; > 316 int rc, i; > 317 > 318 rc = sja1105_flower_parse_key(priv, extack, cls, &key); > 319 if (rc) > 320 return rc; > 321 > 322 rc = -EOPNOTSUPP; > 323 > 324 flow_action_for_each(i, act, &rule->action) { > 325 switch (act->id) { > 326 case FLOW_ACTION_POLICE: > 327 rc = sja1105_flower_policer(priv, port, > extack, cookie, > 328 &key, > 329 > act->police.rate_bytes_ps, > 330 > act->police.burst); > 331 if (rc) > 332 goto out; > 333 break; > 334 case FLOW_ACTION_TRAP: { > 335 int cpu = dsa_upstream_port(ds, port); > 336 > 337 routing_rule = true; > 338 vl_rule = true; > 339 > 340 rc = sja1105_vl_redirect(priv, port, extack, > cookie, > 341 &key, BIT(cpu), > true); > 342 if (rc) > 343 goto out; > 344 break; > 345 } > 346 case FLOW_ACTION_REDIRECT: { > 347 struct dsa_port *to_dp; > 348 > 349 if (!dsa_slave_dev_check(act->dev)) { > 350 NL_SET_ERR_MSG_MOD(extack, > 351 "Destination not a > switch port"); > 352 return -EOPNOTSUPP; > 353 } > 354 > 355 to_dp = dsa_slave_to_port(act->dev); > 356 routing_rule = true; > 357 vl_rule = true; > 358 > 359 rc = sja1105_vl_redirect(priv, port, extack, > cookie, > 360 &key, > BIT(to_dp->index), true); > 361 if (rc) > 362 goto out; > 363 break; > 364 } > 365 case FLOW_ACTION_DROP: > 366 vl_rule = true; > 367 > 368 rc = sja1105_vl_redirect(priv, port, extack, > cookie, > 369 &key, 0, false); > 370 if (rc) > 371 goto out; > 372 break; > 373 case FLOW_ACTION_GATE: > 374 gate_rule = true; > 375 vl_rule = true; > 376 > 377 rc = sja1105_vl_gate(priv, port, extack, > cookie, > 378 &key, act->gate.index, > 379 act->gate.prio, > 380 act->gate.basetime, > 381 act->gate.cycletime, > 382 act->gate.cycletimeext, > 383 act->gate.num_entries, > 384 act->gate.entries); > 385 if (rc) > 386 goto out; > 387 break; > 388 default: > 389 NL_SET_ERR_MSG_MOD(extack, > 390 "Action not supported"); > 391 rc = -EOPNOTSUPP; > 392 goto out; > 393 } > 394 } > 395 > 396 if (vl_rule && !rc) { > 397 /* Delay scheduling configuration until DESTPORTS has > been > 398 * populated by all other actions. > 399 */ > 400 if (gate_rule) { > 401 if (!routing_rule) { > 402 NL_SET_ERR_MSG_MOD(extack, > 403 "Can only offload > gate action together with redirect or trap"); > 404 return -EOPNOTSUPP; > 405 } > > 406 rc = sja1105_init_scheduling(priv); > 407 if (rc) > 408 goto out; > 409 } > 410 > 411 rc = sja1105_static_config_reload(priv, > SJA1105_VIRTUAL_LINKS); > 412 } > 413 > 414 out: > 415 return rc; > 416 } > 417 > > --- > 0-DAY CI Kernel Test Service, Intel Corporation > https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
Whoops, I forgot to provide a shim implementation sja1105_init_scheduling for the case where NET_DSA_SJA1105_TAS is not enabled. If there are no other comments I'll send a v3 soon with just this change. -Vladimir