tree:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 5191249f880367a4cd675825cd721a8d78f26a45
commit: 3ad4b7c81a992463c29ae130332c217607fe4452 [1524/2290] net: macb: Fix several edge
cases in validate
config: arm-randconfig-m031-20211116 (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
New smatch warnings:
drivers/net/ethernet/cadence/macb_main.c:540 macb_validate() error: uninitialized symbol
'have_1g'.
drivers/net/ethernet/cadence/macb_main.c:546 macb_validate() error: uninitialized symbol
'have_sgmii'.
drivers/net/ethernet/cadence/macb_main.c:552 macb_validate() error: uninitialized symbol
'have_10g'.
Old smatch warnings:
drivers/net/ethernet/cadence/macb_main.c:569 macb_validate() error: uninitialized symbol
'have_10g'.
drivers/net/ethernet/cadence/macb_main.c:579 macb_validate() error: uninitialized symbol
'have_sgmii'.
drivers/net/ethernet/cadence/macb_main.c:588 macb_validate() error: uninitialized symbol
'have_1g'.
vim +/have_1g +540 drivers/net/ethernet/cadence/macb_main.c
7897b071ac3b45a drivers/net/ethernet/cadence/macb_main.c Antoine Tenart 2019-11-13
509 static void macb_validate(struct phylink_config *config,
7897b071ac3b45a drivers/net/ethernet/cadence/macb_main.c Antoine Tenart 2019-11-13
510 unsigned long *supported,
7897b071ac3b45a drivers/net/ethernet/cadence/macb_main.c Antoine Tenart 2019-11-13
511 struct phylink_link_state *state)
6c36a7074436e18 drivers/net/macb.c frederic RODO 2007-07-12
512 {
7897b071ac3b45a drivers/net/ethernet/cadence/macb_main.c Antoine Tenart 2019-11-13
513 struct net_device *ndev = to_net_dev(config->dev);
7897b071ac3b45a drivers/net/ethernet/cadence/macb_main.c Antoine Tenart 2019-11-13
514 __ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };
7897b071ac3b45a drivers/net/ethernet/cadence/macb_main.c Antoine Tenart 2019-11-13
515 struct macb *bp = netdev_priv(ndev);
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
516 bool have_1g, have_sgmii, have_10g;
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
517
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
518 /* Determine what modes are supported */
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
519 if (macb_is_gem(bp) &&
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
520 (bp->caps & MACB_CAPS_GIGABIT_MODE_AVAILABLE)) {
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
521 have_1g = true;
have_1g is set to true, but it's never set to false. Same for other
warnings.
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
522 if (bp->caps & MACB_CAPS_PCS)
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
523 have_sgmii = true;
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
524 if (bp->caps & MACB_CAPS_HIGH_SPEED)
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
525 have_10g = true;
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
526 }
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
527
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
528 /* Eliminate unsupported modes */
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
529 switch (state->interface) {
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
530 case PHY_INTERFACE_MODE_NA:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
531 case PHY_INTERFACE_MODE_MII:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
532 case PHY_INTERFACE_MODE_RMII:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
533 break;
7897b071ac3b45a drivers/net/ethernet/cadence/macb_main.c Antoine Tenart 2019-11-13
534
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
535 case PHY_INTERFACE_MODE_GMII:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
536 case PHY_INTERFACE_MODE_RGMII:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
537 case PHY_INTERFACE_MODE_RGMII_ID:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
538 case PHY_INTERFACE_MODE_RGMII_RXID:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
539 case PHY_INTERFACE_MODE_RGMII_TXID:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
@540 if (have_1g)
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
541 break;
4973056cceacc70 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-10-22
542 linkmode_zero(supported);
7897b071ac3b45a drivers/net/ethernet/cadence/macb_main.c Antoine Tenart 2019-11-13
543 return;
89e5785fc8a6b9e drivers/net/macb.c Haavard Skinnemoen 2006-11-09
544
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
545 case PHY_INTERFACE_MODE_SGMII:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
@546 if (have_sgmii)
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
547 break;
4973056cceacc70 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-10-22
548 linkmode_zero(supported);
7897b071ac3b45a drivers/net/ethernet/cadence/macb_main.c Antoine Tenart 2019-11-13
549 return;
89e5785fc8a6b9e drivers/net/macb.c Haavard Skinnemoen 2006-11-09
550
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
551 case PHY_INTERFACE_MODE_10GBASER:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
@552 if (have_10g)
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
553 break;
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
554 fallthrough;
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
555
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
556 default:
4973056cceacc70 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-10-22
557 linkmode_zero(supported);
e4e143e26ce8f5f drivers/net/ethernet/cadence/macb_main.c Parshuram Thombare 2020-10-29
558 return;
e4e143e26ce8f5f drivers/net/ethernet/cadence/macb_main.c Parshuram Thombare 2020-10-29
559 }
e4e143e26ce8f5f drivers/net/ethernet/cadence/macb_main.c Parshuram Thombare 2020-10-29
560
7897b071ac3b45a drivers/net/ethernet/cadence/macb_main.c Antoine Tenart 2019-11-13
561 phylink_set_port_modes(mask);
7897b071ac3b45a drivers/net/ethernet/cadence/macb_main.c Antoine Tenart 2019-11-13
562 phylink_set(mask, Autoneg);
7897b071ac3b45a drivers/net/ethernet/cadence/macb_main.c Antoine Tenart 2019-11-13
563 phylink_set(mask, Asym_Pause);
6c36a7074436e18 drivers/net/macb.c frederic RODO 2007-07-12
564
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
565 /* And set the appropriate mask */
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
566 switch (state->interface) {
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
567 case PHY_INTERFACE_MODE_NA:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
568 case PHY_INTERFACE_MODE_10GBASER:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
569 if (have_10g) {
14ad41c74f6be0b drivers/net/ethernet/cadence/macb_main.c Russell King (Oracle 2021-10-04
570) phylink_set_10g_modes(mask);
e4e143e26ce8f5f drivers/net/ethernet/cadence/macb_main.c Parshuram Thombare 2020-10-29
571 phylink_set(mask, 10000baseKR_Full);
e4e143e26ce8f5f drivers/net/ethernet/cadence/macb_main.c Parshuram Thombare 2020-10-29
572 }
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
573 if (state->interface != PHY_INTERFACE_MODE_NA)
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
574 break;
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
575 fallthrough;
e4e143e26ce8f5f drivers/net/ethernet/cadence/macb_main.c Parshuram Thombare 2020-10-29
576
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
577 /* FIXME: Do we actually support 10/100 for SGMII? Half duplex? */
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
578 case PHY_INTERFACE_MODE_SGMII:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
579 if (!have_sgmii && state->interface != PHY_INTERFACE_MODE_NA)
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
580 break;
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
581 fallthrough;
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
582
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
583 case PHY_INTERFACE_MODE_GMII:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
584 case PHY_INTERFACE_MODE_RGMII:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
585 case PHY_INTERFACE_MODE_RGMII_ID:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
586 case PHY_INTERFACE_MODE_RGMII_RXID:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
587 case PHY_INTERFACE_MODE_RGMII_TXID:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
588 if (have_1g) {
7897b071ac3b45a drivers/net/ethernet/cadence/macb_main.c Antoine Tenart 2019-11-13
589 phylink_set(mask, 1000baseT_Full);
7897b071ac3b45a drivers/net/ethernet/cadence/macb_main.c Antoine Tenart 2019-11-13
590 phylink_set(mask, 1000baseX_Full);
6c36a7074436e18 drivers/net/macb.c frederic RODO 2007-07-12
591
7897b071ac3b45a drivers/net/ethernet/cadence/macb_main.c Antoine Tenart 2019-11-13
592 if (!(bp->caps & MACB_CAPS_NO_GIGABIT_HALF))
7897b071ac3b45a drivers/net/ethernet/cadence/macb_main.c Antoine Tenart 2019-11-13
593 phylink_set(mask, 1000baseT_Half);
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
594 } else if (state->interface != PHY_INTERFACE_MODE_NA) {
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
595 break;
6c36a7074436e18 drivers/net/macb.c frederic RODO 2007-07-12
596 }
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
597 fallthrough;
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
598
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
599 default:
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
600 phylink_set(mask, 10baseT_Half);
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
601 phylink_set(mask, 10baseT_Full);
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
602 phylink_set(mask, 100baseT_Half);
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
603 phylink_set(mask, 100baseT_Full);
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
604 break;
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
605 }
3ad4b7c81a99246 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-11-12
606
4973056cceacc70 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-10-22
607 linkmode_and(supported, supported, mask);
4973056cceacc70 drivers/net/ethernet/cadence/macb_main.c Sean Anderson 2021-10-22
608 linkmode_and(state->advertising, state->advertising, mask);
89e5785fc8a6b9e drivers/net/macb.c Haavard Skinnemoen 2006-11-09
609 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org