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-frame-preemption-support/20201020-121555 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/8793bdc51bda4de1362ea8e74db38e1a93ff6964 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 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(a)lists.01.org