[PATCH net-next] net: e100: replace silent 'hope for the best' with debug message

Ashwin Gundarapu posted 1 patch 3 days, 14 hours ago
drivers/net/ethernet/intel/e100.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
[PATCH net-next] net: e100: replace silent 'hope for the best' with debug message
Posted by Ashwin Gundarapu 3 days, 14 hours ago
From: Ashwin Gundarapu <linuxuser509@zohomail.in>
Date: Sun, 10 May 2026 15:09:12 +0530
Subject: [PATCH] net: e100: replace silent 'hope for the best' with debug
 message

Replace a silent return with a debug message when no MII PHY is
detected on known variants. This gives users visibility into the
failure instead of silently hoping for the best.

Found by checkpatch.pl inspection.

Signed-off-by: Ashwin Gundarapu <linuxuser509@zohomail.in>
---
 drivers/net/ethernet/intel/e100.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/e100.c b/drivers/net/ethernet/intel/e100.c
index 9074b558de35..bfacf877ca40 100644
--- a/drivers/net/ethernet/intel/e100.c
+++ b/drivers/net/ethernet/intel/e100.c
@@ -1450,7 +1450,9 @@ static int e100_phy_init(struct nic *nic)
 		 * But do this AFTER MII checking only, since this does
 		 * lookup of EEPROM values which may easily be unreliable. */
 		if (e100_phy_check_without_mii(nic))
-			return 0; /* simply return and hope for the best */
+                        netif_dbg(nic, probe, nic->netdev,
+                                  "No MII PHY detected, continuing anyway\n");
+                        return 0;
 		else {
 			/* for unknown cases log a fatal error */
 			netif_err(nic, hw, nic->netdev,
-- 
2.43.0
Re: [PATCH net-next] net: e100: replace silent 'hope for the best' with debug message
Posted by kernel test robot 1 day, 22 hours ago
Hi Ashwin,

kernel test robot noticed the following build errors:

[auto build test ERROR on net-next/main]

url:    https://github.com/intel-lab-lkp/linux/commits/Ashwin-Gundarapu/net-e100-replace-silent-hope-for-the-best-with-debug-message/20260521-141158
base:   net-next/main
patch link:    https://lore.kernel.org/r/19e49280392.4757403170773.5767589851918809405%40zohomail.in
patch subject: [PATCH net-next] net: e100: replace silent 'hope for the best' with debug message
config: x86_64-defconfig (https://download.01.org/0day-ci/archive/20260523/202605230558.68aPIUbo-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260523/202605230558.68aPIUbo-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605230558.68aPIUbo-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/net/ethernet/intel/e100.c: In function 'e100_phy_init':
   drivers/net/ethernet/intel/e100.c:1455:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    1455 |                 if (e100_phy_check_without_mii(nic))
         |                 ^~
   drivers/net/ethernet/intel/e100.c:1458:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    1458 |                         return 0;
         |                         ^~~~~~
>> drivers/net/ethernet/intel/e100.c:1459:17: error: expected '}' before 'else'
    1459 |                 else {
         |                 ^~~~
   drivers/net/ethernet/intel/e100.c:1439:39: warning: unused variable 'cong' [-Wunused-variable]
    1439 |         u16 bmcr, stat, id_lo, id_hi, cong;
         |                                       ^~~~
   drivers/net/ethernet/intel/e100.c:1439:32: warning: unused variable 'id_hi' [-Wunused-variable]
    1439 |         u16 bmcr, stat, id_lo, id_hi, cong;
         |                                ^~~~~
   drivers/net/ethernet/intel/e100.c:1439:25: warning: unused variable 'id_lo' [-Wunused-variable]
    1439 |         u16 bmcr, stat, id_lo, id_hi, cong;
         |                         ^~~~~
   drivers/net/ethernet/intel/e100.c: At top level:
>> drivers/net/ethernet/intel/e100.c:1465:11: error: expected identifier or '(' before 'else'
    1465 |         } else
         |           ^~~~
   In file included from include/linux/skbuff.h:39,
                    from include/net/net_namespace.h:44,
                    from include/linux/netdevice.h:38,
                    from drivers/net/ethernet/intel/e100.c:140:
>> include/net/net_debug.h:88:3: error: expected identifier or '(' before 'while'
      88 | } while (0)
         |   ^~~~~
   drivers/net/ethernet/intel/e100.c:1466:17: note: in expansion of macro 'netif_printk'
    1466 |                 netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
         |                 ^~~~~~~~~~~~
   drivers/net/ethernet/intel/e100.c:1470:9: warning: data definition has no type or storage class
    1470 |         id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
         |         ^~~~~
>> drivers/net/ethernet/intel/e100.c:1470:9: error: type defaults to 'int' in declaration of 'id_lo' [-Wimplicit-int]
>> drivers/net/ethernet/intel/e100.c:1470:27: error: 'netdev' undeclared here (not in a function); did you mean 'net_eq'?
    1470 |         id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
         |                           ^~~~~~
         |                           net_eq
>> drivers/net/ethernet/intel/e100.c:1470:35: error: 'nic' undeclared here (not in a function)
    1470 |         id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
         |                                   ^~~
   drivers/net/ethernet/intel/e100.c:1471:9: warning: data definition has no type or storage class
    1471 |         id_hi = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID2);
         |         ^~~~~
>> drivers/net/ethernet/intel/e100.c:1471:9: error: type defaults to 'int' in declaration of 'id_hi' [-Wimplicit-int]
>> drivers/net/ethernet/intel/e100.c:1472:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
    1472 |         nic->phy = (u32)id_hi << 16 | (u32)id_lo;
         |            ^~
>> include/net/net_debug.h:85:1: error: expected identifier or '(' before 'do'
      85 | do {                                                            \
         | ^~
   drivers/net/ethernet/intel/e100.c:1473:9: note: in expansion of macro 'netif_printk'
    1473 |         netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
         |         ^~~~~~~~~~~~
>> include/net/net_debug.h:88:3: error: expected identifier or '(' before 'while'
      88 | } while (0)
         |   ^~~~~
   drivers/net/ethernet/intel/e100.c:1473:9: note: in expansion of macro 'netif_printk'
    1473 |         netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
         |         ^~~~~~~~~~~~
>> drivers/net/ethernet/intel/e100.c:1477:9: error: expected identifier or '(' before 'for'
    1477 |         for (addr = 0; addr < 32; addr++) {
         |         ^~~
   drivers/net/ethernet/intel/e100.c:1477:29: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token
    1477 |         for (addr = 0; addr < 32; addr++) {
         |                             ^
   drivers/net/ethernet/intel/e100.c:1477:39: error: expected '=', ',', ';', 'asm' or '__attribute__' before '++' token
    1477 |         for (addr = 0; addr < 32; addr++) {
         |                                       ^~
>> drivers/net/ethernet/intel/e100.c:1491:9: error: expected identifier or '(' before 'if'
    1491 |         if (nic->phy == phy_82552_v)
         |         ^~
   drivers/net/ethernet/intel/e100.c:1497:9: error: expected identifier or '(' before 'if'
    1497 |         if ((nic->phy & NCS_PHY_MODEL_MASK) == phy_nsc_tx) {
         |         ^~
   drivers/net/ethernet/intel/e100.c:1505:9: error: expected identifier or '(' before 'if'
    1505 |         if (nic->phy == phy_82552_v) {
         |         ^~
   drivers/net/ethernet/intel/e100.c:1519:11: error: expected identifier or '(' before 'else'
    1519 |         } else if ((nic->mac >= mac_82550_D102) || ((nic->flags & ich) &&
         |           ^~~~
>> drivers/net/ethernet/intel/e100.c:1527:9: error: expected identifier or '(' before 'return'
    1527 |         return 0;
         |         ^~~~~~
>> drivers/net/ethernet/intel/e100.c:1528:1: error: expected identifier or '(' before '}' token
    1528 | }
         | ^
   drivers/net/ethernet/intel/e100.c:958:12: warning: 'mdio_ctrl_phy_82552_v' defined but not used [-Wunused-function]
     958 | static u16 mdio_ctrl_phy_82552_v(struct nic *nic,
         |            ^~~~~~~~~~~~~~~~~~~~~


vim +1459 drivers/net/ethernet/intel/e100.c

720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1430  
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1431  #define NCONFIG_AUTO_SWITCH	0x0080
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1432  #define MII_NSC_CONG		MII_RESV1
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1433  #define NSC_CONG_ENABLE		0x0100
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1434  #define NSC_CONG_TXREADY	0x0400
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1435  static int e100_phy_init(struct nic *nic)
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1436  {
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1437  	struct net_device *netdev = nic->netdev;
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1438  	u32 addr;
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1439  	u16 bmcr, stat, id_lo, id_hi, cong;
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1440  
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1441  	/* Discover phy addr by searching addrs in order {1,0,2,..., 31} */
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1442  	for (addr = 0; addr < 32; addr++) {
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1443  		nic->mii.phy_id = (addr == 0) ? 1 : (addr == 1) ? 0 : addr;
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1444  		bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR);
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1445  		stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR);
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1446  		stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR);
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1447  		if (!((bmcr == 0xFFFF) || ((stat == 0) && (bmcr == 0))))
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1448  			break;
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1449  	}
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1450  	if (addr == 32) {
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1451  		/* uhoh, no PHY detected: check whether we seem to be some
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1452  		 * weird, rare variant which is *known* to not have any MII.
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1453  		 * But do this AFTER MII checking only, since this does
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1454  		 * lookup of EEPROM values which may easily be unreliable. */
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1455  		if (e100_phy_check_without_mii(nic))
e95e8b2860fba4c drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10  1456                          netif_dbg(nic, probe, nic->netdev,
e95e8b2860fba4c drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10  1457                                    "No MII PHY detected, continuing anyway\n");
e95e8b2860fba4c drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10  1458                          return 0;
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10 @1459  		else {
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1460  			/* for unknown cases log a fatal error */
fa05e1ad1b61b37 drivers/net/e100.c                Joe Perches      2010-03-16  1461  			netif_err(nic, hw, nic->netdev,
fa05e1ad1b61b37 drivers/net/e100.c                Joe Perches      2010-03-16  1462  				  "Failed to locate any known PHY, aborting\n");
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1463  			return -EAGAIN;
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1464  		}
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10 @1465  	} else
fa05e1ad1b61b37 drivers/net/e100.c                Joe Perches      2010-03-16  1466  		netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
fa05e1ad1b61b37 drivers/net/e100.c                Joe Perches      2010-03-16  1467  			     "phy_addr = %d\n", nic->mii.phy_id);
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1468  
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1469  	/* Get phy ID */
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16 @1470  	id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16 @1471  	id_hi = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID2);
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16 @1472  	nic->phy = (u32)id_hi << 16 | (u32)id_lo;
fa05e1ad1b61b37 drivers/net/e100.c                Joe Perches      2010-03-16  1473  	netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
fa05e1ad1b61b37 drivers/net/e100.c                Joe Perches      2010-03-16  1474  		     "phy ID = 0x%08X\n", nic->phy);
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1475  
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1476  	/* Select the phy and isolate the rest */
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29 @1477  	for (addr = 0; addr < 32; addr++) {
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1478  		if (addr != nic->mii.phy_id) {
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1479  			mdio_write(netdev, addr, MII_BMCR, BMCR_ISOLATE);
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1480  		} else if (nic->phy != phy_82552_v) {
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1481  			bmcr = mdio_read(netdev, addr, MII_BMCR);
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1482  			mdio_write(netdev, addr, MII_BMCR,
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1483  				bmcr & ~BMCR_ISOLATE);
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1484  		}
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1485  	}
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1486  	/*
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1487  	 * Workaround for 82552:
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1488  	 * Clear the ISOLATE bit on selected phy_id last (mirrored on all
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1489  	 * other phy_id's) using bmcr value from addr discovery loop above.
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1490  	 */
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29 @1491  	if (nic->phy == phy_82552_v)
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1492  		mdio_write(netdev, nic->mii.phy_id, MII_BMCR,
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1493  			bmcr & ~BMCR_ISOLATE);
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1494  
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1495  	/* Handle National tx phys */
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1496  #define NCS_PHY_MODEL_MASK	0xFFF0FFFF
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1497  	if ((nic->phy & NCS_PHY_MODEL_MASK) == phy_nsc_tx) {
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1498  		/* Disable congestion control */
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1499  		cong = mdio_read(netdev, nic->mii.phy_id, MII_NSC_CONG);
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1500  		cong |= NSC_CONG_TXREADY;
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1501  		cong &= ~NSC_CONG_ENABLE;
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1502  		mdio_write(netdev, nic->mii.phy_id, MII_NSC_CONG, cong);
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1503  	}
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1504  
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1505  	if (nic->phy == phy_82552_v) {
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1506  		u16 advert = mdio_read(netdev, nic->mii.phy_id, MII_ADVERTISE);
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1507  
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1508  		/* assign special tweaked mdio_ctrl() function */
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1509  		nic->mdio_ctrl = mdio_ctrl_phy_82552_v;
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1510  
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1511  		/* Workaround Si not advertising flow-control during autoneg */
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1512  		advert |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM;
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1513  		mdio_write(netdev, nic->mii.phy_id, MII_ADVERTISE, advert);
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1514  
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1515  		/* Reset for the above changes to take effect */
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1516  		bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR);
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1517  		bmcr |= BMCR_RESET;
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1518  		mdio_write(netdev, nic->mii.phy_id, MII_BMCR, bmcr);
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1519  	} else if ((nic->mac >= mac_82550_D102) || ((nic->flags & ich) &&
60ffa478759f39a drivers/net/e100.c                Jeff Kirsher     2006-08-16  1520  	   (mdio_read(netdev, nic->mii.phy_id, MII_TPISTATUS) & 0x8000) &&
d4ef55288aa2e1b drivers/net/ethernet/intel/e100.c Jesse Brandeburg 2021-03-25  1521  	   (le16_to_cpu(nic->eeprom[eeprom_cnfg_mdix]) & eeprom_mdix_enabled))) {
60ffa478759f39a drivers/net/e100.c                Jeff Kirsher     2006-08-16  1522  		/* enable/disable MDI/MDI-X auto-switching. */
60ffa478759f39a drivers/net/e100.c                Jeff Kirsher     2006-08-16  1523  		mdio_write(netdev, nic->mii.phy_id, MII_NCONFIG,
60ffa478759f39a drivers/net/e100.c                Jeff Kirsher     2006-08-16  1524  				nic->mii.force_media ? 0 : NCONFIG_AUTO_SWITCH);
648951451e6d2d5 drivers/net/e100.c                Malli Chilakala  2005-06-17  1525  	}
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1526  
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16 @1527  	return 0;
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16 @1528  }
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1529  

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
RE: [Intel-wired-lan] [PATCH net-next] net: e100: replace silent 'hope for the best' with debug message
Posted by Loktionov, Aleksandr 2 days, 12 hours ago

> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Ashwin Gundarapu via Intel-wired-lan
> Sent: Thursday, May 21, 2026 8:10 AM
> To: Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; andrewnetdev
> <andrew+netdev@lunn.ch>; davem <davem@davemloft.net>; edumazet
> <edumazet@google.com>; kuba <kuba@kernel.org>; pabeni
> <pabeni@redhat.com>
> Cc: intel-wired-lan <intel-wired-lan@lists.osuosl.org>; netdev
> <netdev@vger.kernel.org>; linux-kernel <linux-kernel@vger.kernel.org>
> Subject: [Intel-wired-lan] [PATCH net-next] net: e100: replace silent
> 'hope for the best' with debug message
> 
> From: Ashwin Gundarapu <linuxuser509@zohomail.in>
> Date: Sun, 10 May 2026 15:09:12 +0530
> Subject: [PATCH] net: e100: replace silent 'hope for the best' with
> debug  message
> 
> Replace a silent return with a debug message when no MII PHY is
> detected on known variants. This gives users visibility into the
> failure instead of silently hoping for the best.
> 
> Found by checkpatch.pl inspection.
> 
> Signed-off-by: Ashwin Gundarapu <linuxuser509@zohomail.in>
> ---
>  drivers/net/ethernet/intel/e100.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/intel/e100.c
> b/drivers/net/ethernet/intel/e100.c
> index 9074b558de35..bfacf877ca40 100644
> --- a/drivers/net/ethernet/intel/e100.c
> +++ b/drivers/net/ethernet/intel/e100.c
> @@ -1450,7 +1450,9 @@ static int e100_phy_init(struct nic *nic)
>  		 * But do this AFTER MII checking only, since this does
>  		 * lookup of EEPROM values which may easily be
> unreliable. */
>  		if (e100_phy_check_without_mii(nic))
> -			return 0; /* simply return and hope for the best
> */
> +                        netif_dbg(nic, probe, nic->netdev,
> +                                  "No MII PHY detected, continuing
> anyway\n");
> +                        return 0;
>  		else {
Does it compile without } else { ? 


>  			/* for unknown cases log a fatal error */
>  			netif_err(nic, hw, nic->netdev,
> --
> 2.43.0
Re: [PATCH net-next] net: e100: replace silent 'hope for the best' with debug message
Posted by kernel test robot 2 days, 13 hours ago
Hi Ashwin,

kernel test robot noticed the following build errors:

[auto build test ERROR on net-next/main]

url:    https://github.com/intel-lab-lkp/linux/commits/Ashwin-Gundarapu/net-e100-replace-silent-hope-for-the-best-with-debug-message/20260521-141158
base:   net-next/main
patch link:    https://lore.kernel.org/r/19e49280392.4757403170773.5767589851918809405%40zohomail.in
patch subject: [PATCH net-next] net: e100: replace silent 'hope for the best' with debug message
config: riscv-allyesconfig (https://download.01.org/0day-ci/archive/20260522/202605221404.6yAWlKOQ-lkp@intel.com/config)
compiler: clang version 16.0.6 (https://github.com/llvm/llvm-project 7cbf1a2591520c2491aa35339f227775f4d3adf6)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260522/202605221404.6yAWlKOQ-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605221404.6yAWlKOQ-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/net/ethernet/intel/e100.c:1459:3: error: expected expression
                   else {
                   ^
   1 error generated.


vim +1459 drivers/net/ethernet/intel/e100.c

720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1430  
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1431  #define NCONFIG_AUTO_SWITCH	0x0080
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1432  #define MII_NSC_CONG		MII_RESV1
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1433  #define NSC_CONG_ENABLE		0x0100
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1434  #define NSC_CONG_TXREADY	0x0400
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1435  static int e100_phy_init(struct nic *nic)
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1436  {
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1437  	struct net_device *netdev = nic->netdev;
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1438  	u32 addr;
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1439  	u16 bmcr, stat, id_lo, id_hi, cong;
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1440  
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1441  	/* Discover phy addr by searching addrs in order {1,0,2,..., 31} */
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1442  	for (addr = 0; addr < 32; addr++) {
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1443  		nic->mii.phy_id = (addr == 0) ? 1 : (addr == 1) ? 0 : addr;
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1444  		bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR);
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1445  		stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR);
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1446  		stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR);
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1447  		if (!((bmcr == 0xFFFF) || ((stat == 0) && (bmcr == 0))))
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1448  			break;
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1449  	}
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1450  	if (addr == 32) {
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1451  		/* uhoh, no PHY detected: check whether we seem to be some
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1452  		 * weird, rare variant which is *known* to not have any MII.
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1453  		 * But do this AFTER MII checking only, since this does
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1454  		 * lookup of EEPROM values which may easily be unreliable. */
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1455  		if (e100_phy_check_without_mii(nic))
e95e8b2860fba4 drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10  1456                          netif_dbg(nic, probe, nic->netdev,
e95e8b2860fba4 drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10  1457                                    "No MII PHY detected, continuing anyway\n");
e95e8b2860fba4 drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10  1458                          return 0;
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10 @1459  		else {
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1460  			/* for unknown cases log a fatal error */
fa05e1ad1b61b3 drivers/net/e100.c                Joe Perches      2010-03-16  1461  			netif_err(nic, hw, nic->netdev,
fa05e1ad1b61b3 drivers/net/e100.c                Joe Perches      2010-03-16  1462  				  "Failed to locate any known PHY, aborting\n");
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1463  			return -EAGAIN;
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1464  		}
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1465  	} else
fa05e1ad1b61b3 drivers/net/e100.c                Joe Perches      2010-03-16  1466  		netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
fa05e1ad1b61b3 drivers/net/e100.c                Joe Perches      2010-03-16  1467  			     "phy_addr = %d\n", nic->mii.phy_id);
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1468  
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1469  	/* Get phy ID */
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1470  	id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1471  	id_hi = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID2);
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1472  	nic->phy = (u32)id_hi << 16 | (u32)id_lo;
fa05e1ad1b61b3 drivers/net/e100.c                Joe Perches      2010-03-16  1473  	netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
fa05e1ad1b61b3 drivers/net/e100.c                Joe Perches      2010-03-16  1474  		     "phy ID = 0x%08X\n", nic->phy);
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1475  
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1476  	/* Select the phy and isolate the rest */
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1477  	for (addr = 0; addr < 32; addr++) {
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1478  		if (addr != nic->mii.phy_id) {
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1479  			mdio_write(netdev, addr, MII_BMCR, BMCR_ISOLATE);
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1480  		} else if (nic->phy != phy_82552_v) {
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1481  			bmcr = mdio_read(netdev, addr, MII_BMCR);
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1482  			mdio_write(netdev, addr, MII_BMCR,
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1483  				bmcr & ~BMCR_ISOLATE);
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1484  		}
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1485  	}
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1486  	/*
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1487  	 * Workaround for 82552:
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1488  	 * Clear the ISOLATE bit on selected phy_id last (mirrored on all
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1489  	 * other phy_id's) using bmcr value from addr discovery loop above.
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1490  	 */
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1491  	if (nic->phy == phy_82552_v)
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1492  		mdio_write(netdev, nic->mii.phy_id, MII_BMCR,
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1493  			bmcr & ~BMCR_ISOLATE);
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1494  
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1495  	/* Handle National tx phys */
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1496  #define NCS_PHY_MODEL_MASK	0xFFF0FFFF
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1497  	if ((nic->phy & NCS_PHY_MODEL_MASK) == phy_nsc_tx) {
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1498  		/* Disable congestion control */
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1499  		cong = mdio_read(netdev, nic->mii.phy_id, MII_NSC_CONG);
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1500  		cong |= NSC_CONG_TXREADY;
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1501  		cong &= ~NSC_CONG_ENABLE;
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1502  		mdio_write(netdev, nic->mii.phy_id, MII_NSC_CONG, cong);
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1503  	}
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1504  
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1505  	if (nic->phy == phy_82552_v) {
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1506  		u16 advert = mdio_read(netdev, nic->mii.phy_id, MII_ADVERTISE);
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1507  
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1508  		/* assign special tweaked mdio_ctrl() function */
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1509  		nic->mdio_ctrl = mdio_ctrl_phy_82552_v;
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1510  
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1511  		/* Workaround Si not advertising flow-control during autoneg */
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1512  		advert |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM;
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1513  		mdio_write(netdev, nic->mii.phy_id, MII_ADVERTISE, advert);
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1514  
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1515  		/* Reset for the above changes to take effect */
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1516  		bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR);
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1517  		bmcr |= BMCR_RESET;
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1518  		mdio_write(netdev, nic->mii.phy_id, MII_BMCR, bmcr);
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1519  	} else if ((nic->mac >= mac_82550_D102) || ((nic->flags & ich) &&
60ffa478759f39 drivers/net/e100.c                Jeff Kirsher     2006-08-16  1520  	   (mdio_read(netdev, nic->mii.phy_id, MII_TPISTATUS) & 0x8000) &&
d4ef55288aa2e1 drivers/net/ethernet/intel/e100.c Jesse Brandeburg 2021-03-25  1521  	   (le16_to_cpu(nic->eeprom[eeprom_cnfg_mdix]) & eeprom_mdix_enabled))) {
60ffa478759f39 drivers/net/e100.c                Jeff Kirsher     2006-08-16  1522  		/* enable/disable MDI/MDI-X auto-switching. */
60ffa478759f39 drivers/net/e100.c                Jeff Kirsher     2006-08-16  1523  		mdio_write(netdev, nic->mii.phy_id, MII_NCONFIG,
60ffa478759f39 drivers/net/e100.c                Jeff Kirsher     2006-08-16  1524  				nic->mii.force_media ? 0 : NCONFIG_AUTO_SWITCH);
648951451e6d2d drivers/net/e100.c                Malli Chilakala  2005-06-17  1525  	}
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1526  
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1527  	return 0;
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1528  }
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1529  

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Re: [PATCH net-next] net: e100: replace silent 'hope for the best' with debug message
Posted by kernel test robot 3 days, 7 hours ago
Hi Ashwin,

kernel test robot noticed the following build warnings:

[auto build test WARNING on net-next/main]

url:    https://github.com/intel-lab-lkp/linux/commits/Ashwin-Gundarapu/net-e100-replace-silent-hope-for-the-best-with-debug-message/20260521-141158
base:   net-next/main
patch link:    https://lore.kernel.org/r/19e49280392.4757403170773.5767589851918809405%40zohomail.in
patch subject: [PATCH net-next] net: e100: replace silent 'hope for the best' with debug message
config: x86_64-defconfig (https://download.01.org/0day-ci/archive/20260521/202605212136.lOMqj24O-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260521/202605212136.lOMqj24O-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605212136.lOMqj24O-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/net/ethernet/intel/e100.c: In function 'e100_phy_init':
>> drivers/net/ethernet/intel/e100.c:1455:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    1455 |                 if (e100_phy_check_without_mii(nic))
         |                 ^~
   drivers/net/ethernet/intel/e100.c:1458:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    1458 |                         return 0;
         |                         ^~~~~~
   drivers/net/ethernet/intel/e100.c:1459:17: error: expected '}' before 'else'
    1459 |                 else {
         |                 ^~~~
>> drivers/net/ethernet/intel/e100.c:1439:39: warning: unused variable 'cong' [-Wunused-variable]
    1439 |         u16 bmcr, stat, id_lo, id_hi, cong;
         |                                       ^~~~
>> drivers/net/ethernet/intel/e100.c:1439:32: warning: unused variable 'id_hi' [-Wunused-variable]
    1439 |         u16 bmcr, stat, id_lo, id_hi, cong;
         |                                ^~~~~
>> drivers/net/ethernet/intel/e100.c:1439:25: warning: unused variable 'id_lo' [-Wunused-variable]
    1439 |         u16 bmcr, stat, id_lo, id_hi, cong;
         |                         ^~~~~
   drivers/net/ethernet/intel/e100.c: At top level:
   drivers/net/ethernet/intel/e100.c:1465:11: error: expected identifier or '(' before 'else'
    1465 |         } else
         |           ^~~~
   In file included from include/linux/skbuff.h:39,
                    from include/net/net_namespace.h:44,
                    from include/linux/netdevice.h:38,
                    from drivers/net/ethernet/intel/e100.c:140:
   include/net/net_debug.h:88:3: error: expected identifier or '(' before 'while'
      88 | } while (0)
         |   ^~~~~
   drivers/net/ethernet/intel/e100.c:1466:17: note: in expansion of macro 'netif_printk'
    1466 |                 netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
         |                 ^~~~~~~~~~~~
>> drivers/net/ethernet/intel/e100.c:1470:9: warning: data definition has no type or storage class
    1470 |         id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
         |         ^~~~~
   drivers/net/ethernet/intel/e100.c:1470:9: error: type defaults to 'int' in declaration of 'id_lo' [-Wimplicit-int]
   drivers/net/ethernet/intel/e100.c:1470:27: error: 'netdev' undeclared here (not in a function); did you mean 'net_eq'?
    1470 |         id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
         |                           ^~~~~~
         |                           net_eq
   drivers/net/ethernet/intel/e100.c:1470:35: error: 'nic' undeclared here (not in a function)
    1470 |         id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
         |                                   ^~~
   drivers/net/ethernet/intel/e100.c:1471:9: warning: data definition has no type or storage class
    1471 |         id_hi = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID2);
         |         ^~~~~
   drivers/net/ethernet/intel/e100.c:1471:9: error: type defaults to 'int' in declaration of 'id_hi' [-Wimplicit-int]
   drivers/net/ethernet/intel/e100.c:1472:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
    1472 |         nic->phy = (u32)id_hi << 16 | (u32)id_lo;
         |            ^~
   include/net/net_debug.h:85:1: error: expected identifier or '(' before 'do'
      85 | do {                                                            \
         | ^~
   drivers/net/ethernet/intel/e100.c:1473:9: note: in expansion of macro 'netif_printk'
    1473 |         netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
         |         ^~~~~~~~~~~~
   include/net/net_debug.h:88:3: error: expected identifier or '(' before 'while'
      88 | } while (0)
         |   ^~~~~
   drivers/net/ethernet/intel/e100.c:1473:9: note: in expansion of macro 'netif_printk'
    1473 |         netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
         |         ^~~~~~~~~~~~
   drivers/net/ethernet/intel/e100.c:1477:9: error: expected identifier or '(' before 'for'
    1477 |         for (addr = 0; addr < 32; addr++) {
         |         ^~~
   drivers/net/ethernet/intel/e100.c:1477:29: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token
    1477 |         for (addr = 0; addr < 32; addr++) {
         |                             ^
   drivers/net/ethernet/intel/e100.c:1477:39: error: expected '=', ',', ';', 'asm' or '__attribute__' before '++' token
    1477 |         for (addr = 0; addr < 32; addr++) {
         |                                       ^~
   drivers/net/ethernet/intel/e100.c:1491:9: error: expected identifier or '(' before 'if'
    1491 |         if (nic->phy == phy_82552_v)
         |         ^~
   drivers/net/ethernet/intel/e100.c:1497:9: error: expected identifier or '(' before 'if'
    1497 |         if ((nic->phy & NCS_PHY_MODEL_MASK) == phy_nsc_tx) {
         |         ^~
   drivers/net/ethernet/intel/e100.c:1505:9: error: expected identifier or '(' before 'if'
    1505 |         if (nic->phy == phy_82552_v) {
         |         ^~
   drivers/net/ethernet/intel/e100.c:1519:11: error: expected identifier or '(' before 'else'
    1519 |         } else if ((nic->mac >= mac_82550_D102) || ((nic->flags & ich) &&
         |           ^~~~
   drivers/net/ethernet/intel/e100.c:1527:9: error: expected identifier or '(' before 'return'
    1527 |         return 0;
         |         ^~~~~~
   drivers/net/ethernet/intel/e100.c:1528:1: error: expected identifier or '(' before '}' token
    1528 | }
         | ^
>> drivers/net/ethernet/intel/e100.c:958:12: warning: 'mdio_ctrl_phy_82552_v' defined but not used [-Wunused-function]
     958 | static u16 mdio_ctrl_phy_82552_v(struct nic *nic,
         |            ^~~~~~~~~~~~~~~~~~~~~


vim +/if +1455 drivers/net/ethernet/intel/e100.c

720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1430  
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1431  #define NCONFIG_AUTO_SWITCH	0x0080
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1432  #define MII_NSC_CONG		MII_RESV1
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1433  #define NSC_CONG_ENABLE		0x0100
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1434  #define NSC_CONG_TXREADY	0x0400
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1435  static int e100_phy_init(struct nic *nic)
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1436  {
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1437  	struct net_device *netdev = nic->netdev;
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1438  	u32 addr;
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16 @1439  	u16 bmcr, stat, id_lo, id_hi, cong;
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1440  
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1441  	/* Discover phy addr by searching addrs in order {1,0,2,..., 31} */
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1442  	for (addr = 0; addr < 32; addr++) {
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1443  		nic->mii.phy_id = (addr == 0) ? 1 : (addr == 1) ? 0 : addr;
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1444  		bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR);
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1445  		stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR);
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1446  		stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR);
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1447  		if (!((bmcr == 0xFFFF) || ((stat == 0) && (bmcr == 0))))
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1448  			break;
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1449  	}
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1450  	if (addr == 32) {
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1451  		/* uhoh, no PHY detected: check whether we seem to be some
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1452  		 * weird, rare variant which is *known* to not have any MII.
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1453  		 * But do this AFTER MII checking only, since this does
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1454  		 * lookup of EEPROM values which may easily be unreliable. */
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10 @1455  		if (e100_phy_check_without_mii(nic))
e95e8b2860fba4c drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10  1456                          netif_dbg(nic, probe, nic->netdev,
e95e8b2860fba4c drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10  1457                                    "No MII PHY detected, continuing anyway\n");
e95e8b2860fba4c drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10 @1458                          return 0;
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10 @1459  		else {
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1460  			/* for unknown cases log a fatal error */
fa05e1ad1b61b37 drivers/net/e100.c                Joe Perches      2010-03-16  1461  			netif_err(nic, hw, nic->netdev,
fa05e1ad1b61b37 drivers/net/e100.c                Joe Perches      2010-03-16  1462  				  "Failed to locate any known PHY, aborting\n");
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1463  			return -EAGAIN;
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1464  		}
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1465  	} else
fa05e1ad1b61b37 drivers/net/e100.c                Joe Perches      2010-03-16  1466  		netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
fa05e1ad1b61b37 drivers/net/e100.c                Joe Perches      2010-03-16  1467  			     "phy_addr = %d\n", nic->mii.phy_id);
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1468  
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1469  	/* Get phy ID */
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16 @1470  	id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1471  	id_hi = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID2);
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1472  	nic->phy = (u32)id_hi << 16 | (u32)id_lo;
fa05e1ad1b61b37 drivers/net/e100.c                Joe Perches      2010-03-16  1473  	netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
fa05e1ad1b61b37 drivers/net/e100.c                Joe Perches      2010-03-16  1474  		     "phy ID = 0x%08X\n", nic->phy);
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1475  
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1476  	/* Select the phy and isolate the rest */
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1477  	for (addr = 0; addr < 32; addr++) {
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1478  		if (addr != nic->mii.phy_id) {
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1479  			mdio_write(netdev, addr, MII_BMCR, BMCR_ISOLATE);
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1480  		} else if (nic->phy != phy_82552_v) {
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1481  			bmcr = mdio_read(netdev, addr, MII_BMCR);
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1482  			mdio_write(netdev, addr, MII_BMCR,
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1483  				bmcr & ~BMCR_ISOLATE);
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1484  		}
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1485  	}
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1486  	/*
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1487  	 * Workaround for 82552:
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1488  	 * Clear the ISOLATE bit on selected phy_id last (mirrored on all
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1489  	 * other phy_id's) using bmcr value from addr discovery loop above.
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1490  	 */
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1491  	if (nic->phy == phy_82552_v)
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1492  		mdio_write(netdev, nic->mii.phy_id, MII_BMCR,
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1493  			bmcr & ~BMCR_ISOLATE);
8fbd962e39517df drivers/net/e100.c                Bruce Allan      2009-10-29  1494  
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1495  	/* Handle National tx phys */
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1496  #define NCS_PHY_MODEL_MASK	0xFFF0FFFF
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1497  	if ((nic->phy & NCS_PHY_MODEL_MASK) == phy_nsc_tx) {
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1498  		/* Disable congestion control */
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1499  		cong = mdio_read(netdev, nic->mii.phy_id, MII_NSC_CONG);
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1500  		cong |= NSC_CONG_TXREADY;
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1501  		cong &= ~NSC_CONG_ENABLE;
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1502  		mdio_write(netdev, nic->mii.phy_id, MII_NSC_CONG, cong);
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1503  	}
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1504  
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1505  	if (nic->phy == phy_82552_v) {
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1506  		u16 advert = mdio_read(netdev, nic->mii.phy_id, MII_ADVERTISE);
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1507  
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1508  		/* assign special tweaked mdio_ctrl() function */
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1509  		nic->mdio_ctrl = mdio_ctrl_phy_82552_v;
720017623ab294b drivers/net/e100.c                Andreas Mohr     2009-06-10  1510  
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1511  		/* Workaround Si not advertising flow-control during autoneg */
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1512  		advert |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM;
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1513  		mdio_write(netdev, nic->mii.phy_id, MII_ADVERTISE, advert);
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1514  
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1515  		/* Reset for the above changes to take effect */
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1516  		bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR);
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1517  		bmcr |= BMCR_RESET;
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21  1518  		mdio_write(netdev, nic->mii.phy_id, MII_BMCR, bmcr);
b55de80e4989200 drivers/net/e100.c                Bruce Allan      2009-03-21 @1519  	} else if ((nic->mac >= mac_82550_D102) || ((nic->flags & ich) &&
60ffa478759f39a drivers/net/e100.c                Jeff Kirsher     2006-08-16  1520  	   (mdio_read(netdev, nic->mii.phy_id, MII_TPISTATUS) & 0x8000) &&
d4ef55288aa2e1b drivers/net/ethernet/intel/e100.c Jesse Brandeburg 2021-03-25  1521  	   (le16_to_cpu(nic->eeprom[eeprom_cnfg_mdix]) & eeprom_mdix_enabled))) {
60ffa478759f39a drivers/net/e100.c                Jeff Kirsher     2006-08-16  1522  		/* enable/disable MDI/MDI-X auto-switching. */
60ffa478759f39a drivers/net/e100.c                Jeff Kirsher     2006-08-16  1523  		mdio_write(netdev, nic->mii.phy_id, MII_NCONFIG,
60ffa478759f39a drivers/net/e100.c                Jeff Kirsher     2006-08-16  1524  				nic->mii.force_media ? 0 : NCONFIG_AUTO_SWITCH);
648951451e6d2d5 drivers/net/e100.c                Malli Chilakala  2005-06-17  1525  	}
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1526  
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1527  	return 0;
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1528  }
^1da177e4c3f415 drivers/net/e100.c                Linus Torvalds   2005-04-16  1529  

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Re: [PATCH net-next] net: e100: replace silent 'hope for the best' with debug message
Posted by Maxime Chevallier 3 days, 8 hours ago
Hi,

On 5/21/26 08:10, Ashwin Gundarapu wrote:
> From: Ashwin Gundarapu <linuxuser509@zohomail.in>
> Date: Sun, 10 May 2026 15:09:12 +0530
> Subject: [PATCH] net: e100: replace silent 'hope for the best' with debug
>   message
> 
> Replace a silent return with a debug message when no MII PHY is
> detected on known variants. This gives users visibility into the
> failure instead of silently hoping for the best.

It's not silent actually, e100_phy_check_without_mii() already prints a 
message when returning 1.

Not sure this patch achieves anything meaningful...

Maxime

> 
> Found by checkpatch.pl inspection.
> 
> Signed-off-by: Ashwin Gundarapu <linuxuser509@zohomail.in>
> ---
>   drivers/net/ethernet/intel/e100.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/intel/e100.c b/drivers/net/ethernet/intel/e100.c
> index 9074b558de35..bfacf877ca40 100644
> --- a/drivers/net/ethernet/intel/e100.c
> +++ b/drivers/net/ethernet/intel/e100.c
> @@ -1450,7 +1450,9 @@ static int e100_phy_init(struct nic *nic)
>   		 * But do this AFTER MII checking only, since this does
>   		 * lookup of EEPROM values which may easily be unreliable. */
>   		if (e100_phy_check_without_mii(nic))
> -			return 0; /* simply return and hope for the best */
> +                        netif_dbg(nic, probe, nic->netdev,
> +                                  "No MII PHY detected, continuing anyway\n");
> +                        return 0;
>   		else {
>   			/* for unknown cases log a fatal error */
>   			netif_err(nic, hw, nic->netdev,
Re: [PATCH net-next] net: e100: replace silent 'hope for the best' with debug message
Posted by Andrew Lunn 3 days, 8 hours ago
On Thu, May 21, 2026 at 11:40:19AM +0530, Ashwin Gundarapu wrote:
> From: Ashwin Gundarapu <linuxuser509@zohomail.in>
> Date: Sun, 10 May 2026 15:09:12 +0530
> Subject: [PATCH] net: e100: replace silent 'hope for the best' with debug
>  message
> 
> Replace a silent return with a debug message when no MII PHY is
> detected on known variants. This gives users visibility into the
> failure instead of silently hoping for the best.
> 
> Found by checkpatch.pl inspection.

Please make sure you really do compile test your changes.

Also, look at the history of a driver. How old is e100? I guess this
driver has been around 20 years? If this was an issue, somebody would
of fixed it 15 years ago? 10 years ago?

Please consider checkpatch as a tool which says there _might_ be an
issue at this line of code, not there _is_ an issue at this line of
code. You need to look at it, think about it, consider all the ways
checkpatch could be wrong, and only once you have convinced yourself
checkpatch is correct, fix it.

    Andrew

---
pw-bot: cr
Re: [PATCH net-next] net: e100: replace silent 'hope for the best' with debug message
Posted by kernel test robot 3 days, 8 hours ago
Hi Ashwin,

kernel test robot noticed the following build errors:

[auto build test ERROR on net-next/main]

url:    https://github.com/intel-lab-lkp/linux/commits/Ashwin-Gundarapu/net-e100-replace-silent-hope-for-the-best-with-debug-message/20260521-141158
base:   net-next/main
patch link:    https://lore.kernel.org/r/19e49280392.4757403170773.5767589851918809405%40zohomail.in
patch subject: [PATCH net-next] net: e100: replace silent 'hope for the best' with debug message
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20260521/202605211409.vFzkDRoq-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260521/202605211409.vFzkDRoq-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605211409.vFzkDRoq-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/net/ethernet/intel/e100.c:1459:3: error: expected expression
    1459 |                 else {
         |                 ^
   1 error generated.


vim +1459 drivers/net/ethernet/intel/e100.c

720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1430  
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1431  #define NCONFIG_AUTO_SWITCH	0x0080
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1432  #define MII_NSC_CONG		MII_RESV1
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1433  #define NSC_CONG_ENABLE		0x0100
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1434  #define NSC_CONG_TXREADY	0x0400
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1435  static int e100_phy_init(struct nic *nic)
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1436  {
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1437  	struct net_device *netdev = nic->netdev;
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1438  	u32 addr;
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1439  	u16 bmcr, stat, id_lo, id_hi, cong;
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1440  
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1441  	/* Discover phy addr by searching addrs in order {1,0,2,..., 31} */
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1442  	for (addr = 0; addr < 32; addr++) {
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1443  		nic->mii.phy_id = (addr == 0) ? 1 : (addr == 1) ? 0 : addr;
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1444  		bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR);
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1445  		stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR);
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1446  		stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR);
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1447  		if (!((bmcr == 0xFFFF) || ((stat == 0) && (bmcr == 0))))
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1448  			break;
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1449  	}
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1450  	if (addr == 32) {
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1451  		/* uhoh, no PHY detected: check whether we seem to be some
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1452  		 * weird, rare variant which is *known* to not have any MII.
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1453  		 * But do this AFTER MII checking only, since this does
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1454  		 * lookup of EEPROM values which may easily be unreliable. */
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1455  		if (e100_phy_check_without_mii(nic))
e95e8b2860fba4 drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10  1456                          netif_dbg(nic, probe, nic->netdev,
e95e8b2860fba4 drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10  1457                                    "No MII PHY detected, continuing anyway\n");
e95e8b2860fba4 drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10  1458                          return 0;
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10 @1459  		else {
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1460  			/* for unknown cases log a fatal error */
fa05e1ad1b61b3 drivers/net/e100.c                Joe Perches      2010-03-16  1461  			netif_err(nic, hw, nic->netdev,
fa05e1ad1b61b3 drivers/net/e100.c                Joe Perches      2010-03-16  1462  				  "Failed to locate any known PHY, aborting\n");
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1463  			return -EAGAIN;
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1464  		}
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1465  	} else
fa05e1ad1b61b3 drivers/net/e100.c                Joe Perches      2010-03-16  1466  		netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
fa05e1ad1b61b3 drivers/net/e100.c                Joe Perches      2010-03-16  1467  			     "phy_addr = %d\n", nic->mii.phy_id);
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1468  
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1469  	/* Get phy ID */
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1470  	id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1471  	id_hi = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID2);
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1472  	nic->phy = (u32)id_hi << 16 | (u32)id_lo;
fa05e1ad1b61b3 drivers/net/e100.c                Joe Perches      2010-03-16  1473  	netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
fa05e1ad1b61b3 drivers/net/e100.c                Joe Perches      2010-03-16  1474  		     "phy ID = 0x%08X\n", nic->phy);
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1475  
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1476  	/* Select the phy and isolate the rest */
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1477  	for (addr = 0; addr < 32; addr++) {
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1478  		if (addr != nic->mii.phy_id) {
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1479  			mdio_write(netdev, addr, MII_BMCR, BMCR_ISOLATE);
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1480  		} else if (nic->phy != phy_82552_v) {
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1481  			bmcr = mdio_read(netdev, addr, MII_BMCR);
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1482  			mdio_write(netdev, addr, MII_BMCR,
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1483  				bmcr & ~BMCR_ISOLATE);
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1484  		}
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1485  	}
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1486  	/*
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1487  	 * Workaround for 82552:
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1488  	 * Clear the ISOLATE bit on selected phy_id last (mirrored on all
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1489  	 * other phy_id's) using bmcr value from addr discovery loop above.
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1490  	 */
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1491  	if (nic->phy == phy_82552_v)
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1492  		mdio_write(netdev, nic->mii.phy_id, MII_BMCR,
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1493  			bmcr & ~BMCR_ISOLATE);
8fbd962e39517d drivers/net/e100.c                Bruce Allan      2009-10-29  1494  
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1495  	/* Handle National tx phys */
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1496  #define NCS_PHY_MODEL_MASK	0xFFF0FFFF
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1497  	if ((nic->phy & NCS_PHY_MODEL_MASK) == phy_nsc_tx) {
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1498  		/* Disable congestion control */
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1499  		cong = mdio_read(netdev, nic->mii.phy_id, MII_NSC_CONG);
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1500  		cong |= NSC_CONG_TXREADY;
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1501  		cong &= ~NSC_CONG_ENABLE;
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1502  		mdio_write(netdev, nic->mii.phy_id, MII_NSC_CONG, cong);
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1503  	}
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1504  
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1505  	if (nic->phy == phy_82552_v) {
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1506  		u16 advert = mdio_read(netdev, nic->mii.phy_id, MII_ADVERTISE);
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1507  
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1508  		/* assign special tweaked mdio_ctrl() function */
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1509  		nic->mdio_ctrl = mdio_ctrl_phy_82552_v;
720017623ab294 drivers/net/e100.c                Andreas Mohr     2009-06-10  1510  
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1511  		/* Workaround Si not advertising flow-control during autoneg */
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1512  		advert |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM;
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1513  		mdio_write(netdev, nic->mii.phy_id, MII_ADVERTISE, advert);
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1514  
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1515  		/* Reset for the above changes to take effect */
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1516  		bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR);
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1517  		bmcr |= BMCR_RESET;
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1518  		mdio_write(netdev, nic->mii.phy_id, MII_BMCR, bmcr);
b55de80e498920 drivers/net/e100.c                Bruce Allan      2009-03-21  1519  	} else if ((nic->mac >= mac_82550_D102) || ((nic->flags & ich) &&
60ffa478759f39 drivers/net/e100.c                Jeff Kirsher     2006-08-16  1520  	   (mdio_read(netdev, nic->mii.phy_id, MII_TPISTATUS) & 0x8000) &&
d4ef55288aa2e1 drivers/net/ethernet/intel/e100.c Jesse Brandeburg 2021-03-25  1521  	   (le16_to_cpu(nic->eeprom[eeprom_cnfg_mdix]) & eeprom_mdix_enabled))) {
60ffa478759f39 drivers/net/e100.c                Jeff Kirsher     2006-08-16  1522  		/* enable/disable MDI/MDI-X auto-switching. */
60ffa478759f39 drivers/net/e100.c                Jeff Kirsher     2006-08-16  1523  		mdio_write(netdev, nic->mii.phy_id, MII_NCONFIG,
60ffa478759f39 drivers/net/e100.c                Jeff Kirsher     2006-08-16  1524  				nic->mii.force_media ? 0 : NCONFIG_AUTO_SWITCH);
648951451e6d2d drivers/net/e100.c                Malli Chilakala  2005-06-17  1525  	}
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1526  
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1527  	return 0;
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1528  }
^1da177e4c3f41 drivers/net/e100.c                Linus Torvalds   2005-04-16  1529  

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki