Hi Xiaoliang,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on net-next/master]
url:
https://github.com/0day-ci/linux/commits/Xiaoliang-Yang/net-dsa-felix-fra...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
105faa8742437c28815b2a3eb8314ebc5fd9288c
config: x86_64-randconfig-a001-20201020 (attached as .config)
compiler: clang version 12.0.0 (
https://github.com/llvm/llvm-project
ea693a162786d933863ab079648d4261ac0ead47)
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
#
https://github.com/0day-ci/linux/commit/8793bdc51bda4de1362ea8e74db38e1a9...
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 8793bdc51bda4de1362ea8e74db38e1a93ff6964
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from net/core/flow_dissector.c:8:
> include/net/dsa.h:506:18: warning: declaration of 'struct
ethtool_fp' will not be visible outside of this function [-Wvisibility]
struct ethtool_fp *fpcmd);
^
include/net/dsa.h:512:18: warning: declaration of 'struct ethtool_fp' will not
be visible outside of this function [-Wvisibility]
struct ethtool_fp *fpcmd);
^
2 warnings generated.
--
In file included from net/core/dev.c:101:
> include/net/dsa.h:506:18: warning: declaration of 'struct
ethtool_fp' will not be visible outside of this function [-Wvisibility]
struct ethtool_fp *fpcmd);
^
include/net/dsa.h:512:18: warning: declaration of 'struct ethtool_fp' will not
be visible outside of this function [-Wvisibility]
struct ethtool_fp *fpcmd);
^
net/core/dev.c:4932:1: warning: unused function 'sch_handle_ingress'
[-Wunused-function]
sch_handle_ingress(struct sk_buff *skb, struct packet_type **pt_prev, int *ret,
^
net/core/dev.c:5080:19: warning: unused function 'nf_ingress'
[-Wunused-function]
static inline int nf_ingress(struct sk_buff *skb, struct packet_type **pt_prev,
^
4 warnings generated.
vim +506 include/net/dsa.h
427
428 typedef int dsa_fdb_dump_cb_t(const unsigned char *addr, u16 vid,
429 bool is_static, void *data);
430 struct dsa_switch_ops {
431 enum dsa_tag_protocol (*get_tag_protocol)(struct dsa_switch *ds,
432 int port,
433 enum dsa_tag_protocol mprot);
434
435 int (*setup)(struct dsa_switch *ds);
436 void (*teardown)(struct dsa_switch *ds);
437 u32 (*get_phy_flags)(struct dsa_switch *ds, int port);
438
439 /*
440 * Access to the switch's PHY registers.
441 */
442 int (*phy_read)(struct dsa_switch *ds, int port, int regnum);
443 int (*phy_write)(struct dsa_switch *ds, int port,
444 int regnum, u16 val);
445
446 /*
447 * Link state adjustment (called from libphy)
448 */
449 void (*adjust_link)(struct dsa_switch *ds, int port,
450 struct phy_device *phydev);
451 void (*fixed_link_update)(struct dsa_switch *ds, int port,
452 struct fixed_phy_status *st);
453
454 /*
455 * PHYLINK integration
456 */
457 void (*phylink_validate)(struct dsa_switch *ds, int port,
458 unsigned long *supported,
459 struct phylink_link_state *state);
460 int (*phylink_mac_link_state)(struct dsa_switch *ds, int port,
461 struct phylink_link_state *state);
462 void (*phylink_mac_config)(struct dsa_switch *ds, int port,
463 unsigned int mode,
464 const struct phylink_link_state *state);
465 void (*phylink_mac_an_restart)(struct dsa_switch *ds, int port);
466 void (*phylink_mac_link_down)(struct dsa_switch *ds, int port,
467 unsigned int mode,
468 phy_interface_t interface);
469 void (*phylink_mac_link_up)(struct dsa_switch *ds, int port,
470 unsigned int mode,
471 phy_interface_t interface,
472 struct phy_device *phydev,
473 int speed, int duplex,
474 bool tx_pause, bool rx_pause);
475 void (*phylink_fixed_state)(struct dsa_switch *ds, int port,
476 struct phylink_link_state *state);
477 /*
478 * ethtool hardware statistics.
479 */
480 void (*get_strings)(struct dsa_switch *ds, int port,
481 u32 stringset, uint8_t *data);
482 void (*get_ethtool_stats)(struct dsa_switch *ds,
483 int port, uint64_t *data);
484 int (*get_sset_count)(struct dsa_switch *ds, int port, int sset);
485 void (*get_ethtool_phy_stats)(struct dsa_switch *ds,
486 int port, uint64_t *data);
487
488 /*
489 * ethtool Wake-on-LAN
490 */
491 void (*get_wol)(struct dsa_switch *ds, int port,
492 struct ethtool_wolinfo *w);
493 int (*set_wol)(struct dsa_switch *ds, int port,
494 struct ethtool_wolinfo *w);
495
496 /*
497 * ethtool timestamp info
498 */
499 int (*get_ts_info)(struct dsa_switch *ds, int port,
500 struct ethtool_ts_info *ts);
501
502 /*
503 * ethtool --set-frame-preemption
504 */
505 int (*set_preempt)(struct dsa_switch *ds, int port,
506 struct ethtool_fp *fpcmd);
507
508 /*
509 * ethtool --show-frame-preemption
510 */
511 int (*get_preempt)(struct dsa_switch *ds, int port,
512 struct ethtool_fp *fpcmd);
513
514 /*
515 * Suspend and resume
516 */
517 int (*suspend)(struct dsa_switch *ds);
518 int (*resume)(struct dsa_switch *ds);
519
520 /*
521 * Port enable/disable
522 */
523 int (*port_enable)(struct dsa_switch *ds, int port,
524 struct phy_device *phy);
525 void (*port_disable)(struct dsa_switch *ds, int port);
526
527 /*
528 * Port's MAC EEE settings
529 */
530 int (*set_mac_eee)(struct dsa_switch *ds, int port,
531 struct ethtool_eee *e);
532 int (*get_mac_eee)(struct dsa_switch *ds, int port,
533 struct ethtool_eee *e);
534
535 /* EEPROM access */
536 int (*get_eeprom_len)(struct dsa_switch *ds);
537 int (*get_eeprom)(struct dsa_switch *ds,
538 struct ethtool_eeprom *eeprom, u8 *data);
539 int (*set_eeprom)(struct dsa_switch *ds,
540 struct ethtool_eeprom *eeprom, u8 *data);
541
542 /*
543 * Register access.
544 */
545 int (*get_regs_len)(struct dsa_switch *ds, int port);
546 void (*get_regs)(struct dsa_switch *ds, int port,
547 struct ethtool_regs *regs, void *p);
548
549 /*
550 * Bridge integration
551 */
552 int (*set_ageing_time)(struct dsa_switch *ds, unsigned int msecs);
553 int (*port_bridge_join)(struct dsa_switch *ds, int port,
554 struct net_device *bridge);
555 void (*port_bridge_leave)(struct dsa_switch *ds, int port,
556 struct net_device *bridge);
557 void (*port_stp_state_set)(struct dsa_switch *ds, int port,
558 u8 state);
559 void (*port_fast_age)(struct dsa_switch *ds, int port);
560 int (*port_egress_floods)(struct dsa_switch *ds, int port,
561 bool unicast, bool multicast);
562
563 /*
564 * VLAN support
565 */
566 int (*port_vlan_filtering)(struct dsa_switch *ds, int port,
567 bool vlan_filtering,
568 struct switchdev_trans *trans);
569 int (*port_vlan_prepare)(struct dsa_switch *ds, int port,
570 const struct switchdev_obj_port_vlan *vlan);
571 void (*port_vlan_add)(struct dsa_switch *ds, int port,
572 const struct switchdev_obj_port_vlan *vlan);
573 int (*port_vlan_del)(struct dsa_switch *ds, int port,
574 const struct switchdev_obj_port_vlan *vlan);
575 /*
576 * Forwarding database
577 */
578 int (*port_fdb_add)(struct dsa_switch *ds, int port,
579 const unsigned char *addr, u16 vid);
580 int (*port_fdb_del)(struct dsa_switch *ds, int port,
581 const unsigned char *addr, u16 vid);
582 int (*port_fdb_dump)(struct dsa_switch *ds, int port,
583 dsa_fdb_dump_cb_t *cb, void *data);
584
585 /*
586 * Multicast database
587 */
588 int (*port_mdb_prepare)(struct dsa_switch *ds, int port,
589 const struct switchdev_obj_port_mdb *mdb);
590 void (*port_mdb_add)(struct dsa_switch *ds, int port,
591 const struct switchdev_obj_port_mdb *mdb);
592 int (*port_mdb_del)(struct dsa_switch *ds, int port,
593 const struct switchdev_obj_port_mdb *mdb);
594 /*
595 * RXNFC
596 */
597 int (*get_rxnfc)(struct dsa_switch *ds, int port,
598 struct ethtool_rxnfc *nfc, u32 *rule_locs);
599 int (*set_rxnfc)(struct dsa_switch *ds, int port,
600 struct ethtool_rxnfc *nfc);
601
602 /*
603 * TC integration
604 */
605 int (*cls_flower_add)(struct dsa_switch *ds, int port,
606 struct flow_cls_offload *cls, bool ingress);
607 int (*cls_flower_del)(struct dsa_switch *ds, int port,
608 struct flow_cls_offload *cls, bool ingress);
609 int (*cls_flower_stats)(struct dsa_switch *ds, int port,
610 struct flow_cls_offload *cls, bool ingress);
611 int (*port_mirror_add)(struct dsa_switch *ds, int port,
612 struct dsa_mall_mirror_tc_entry *mirror,
613 bool ingress);
614 void (*port_mirror_del)(struct dsa_switch *ds, int port,
615 struct dsa_mall_mirror_tc_entry *mirror);
616 int (*port_policer_add)(struct dsa_switch *ds, int port,
617 struct dsa_mall_policer_tc_entry *policer);
618 void (*port_policer_del)(struct dsa_switch *ds, int port);
619 int (*port_setup_tc)(struct dsa_switch *ds, int port,
620 enum tc_setup_type type, void *type_data);
621
622 /*
623 * Cross-chip operations
624 */
625 int (*crosschip_bridge_join)(struct dsa_switch *ds, int tree_index,
626 int sw_index, int port,
627 struct net_device *br);
628 void (*crosschip_bridge_leave)(struct dsa_switch *ds, int tree_index,
629 int sw_index, int port,
630 struct net_device *br);
631
632 /*
633 * PTP functionality
634 */
635 int (*port_hwtstamp_get)(struct dsa_switch *ds, int port,
636 struct ifreq *ifr);
637 int (*port_hwtstamp_set)(struct dsa_switch *ds, int port,
638 struct ifreq *ifr);
639 bool (*port_txtstamp)(struct dsa_switch *ds, int port,
640 struct sk_buff *clone, unsigned int type);
641 bool (*port_rxtstamp)(struct dsa_switch *ds, int port,
642 struct sk_buff *skb, unsigned int type);
643
644 /* Devlink parameters, etc */
645 int (*devlink_param_get)(struct dsa_switch *ds, u32 id,
646 struct devlink_param_gset_ctx *ctx);
647 int (*devlink_param_set)(struct dsa_switch *ds, u32 id,
648 struct devlink_param_gset_ctx *ctx);
649 int (*devlink_info_get)(struct dsa_switch *ds,
650 struct devlink_info_req *req,
651 struct netlink_ext_ack *extack);
652
653 /*
654 * MTU change functionality. Switches can also adjust their MRU through
655 * this method. By MTU, one understands the SDU (L2 payload) length.
656 * If the switch needs to account for the DSA tag on the CPU port, this
657 * method needs to do so privately.
658 */
659 int (*port_change_mtu)(struct dsa_switch *ds, int port,
660 int new_mtu);
661 int (*port_max_mtu)(struct dsa_switch *ds, int port);
662 };
663
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org