Hi Brad, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on net-next/master] url: https://github.com/0day-ci/linux/commits/Brad-Mouring/net-macb-Reorganize-macb_mii-bringup/20180311-133616 config: i386-randconfig-x012-201810 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 Note: it may well be a FALSE warning. FWIW you are at least aware of it now. http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings All warnings (new ones prefixed by >>): drivers/net/ethernet/cadence/macb_main.c: In function 'macb_probe': >> drivers/net/ethernet/cadence/macb_main.c:503:8: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized] if (ret) ^ drivers/net/ethernet/cadence/macb_main.c:477:6: note: 'ret' was declared here int ret, i; ^~~ vim +/ret +503 drivers/net/ethernet/cadence/macb_main.c 468 469 /* based on au1000_eth. c*/ 470 static int macb_mii_probe(struct net_device *dev) 471 { 472 struct macb *bp = netdev_priv(dev); 473 struct macb_platform_data *pdata = dev_get_platdata(&bp->pdev->dev); 474 struct phy_device *phydev; 475 struct device_node *np = bp->pdev->dev.of_node; 476 int phy_irq; 477 int ret, i; 478 479 if (np) { 480 if (of_phy_is_fixed_link(np)) { 481 if (of_phy_register_fixed_link(np) < 0) { 482 dev_err(&bp->pdev->dev, 483 "broken fixed-link specification\n"); 484 return -ENODEV; 485 } 486 bp->phy_node = of_node_get(np); 487 } else { 488 /* fallback to standard phy registration if no phy were 489 * found during dt phy registration 490 */ 491 if (!phy_find_first(bp->mii_bus)) { 492 for (i = 0; i < PHY_MAX_ADDR; i++) { 493 struct phy_device *phydev; 494 495 phydev = mdiobus_scan(bp->mii_bus, i); 496 if (IS_ERR(phydev) && 497 PTR_ERR(phydev) != -ENODEV) { 498 ret = PTR_ERR(phydev); 499 break; 500 } 501 } 502 > 503 if (ret) 504 return -ENODEV; 505 } 506 } 507 } else { 508 for (i = 0; i < PHY_MAX_ADDR; i++) 509 bp->mii_bus->irq[i] = PHY_POLL; 510 511 if (pdata) 512 bp->mii_bus->phy_mask = pdata->phy_mask; 513 514 } 515 516 if (bp->phy_node) { 517 phydev = of_phy_connect(dev, bp->phy_node, 518 &macb_handle_link_change, 0, 519 bp->phy_interface); 520 if (!phydev) 521 return -ENODEV; 522 } else { 523 phydev = phy_find_first(bp->mii_bus); 524 if (!phydev) { 525 netdev_err(dev, "no PHY found\n"); 526 return -ENXIO; 527 } 528 529 if (pdata) { 530 if (gpio_is_valid(pdata->phy_irq_pin)) { 531 ret = devm_gpio_request(&bp->pdev->dev, 532 pdata->phy_irq_pin, "phy int"); 533 if (!ret) { 534 phy_irq = gpio_to_irq(pdata->phy_irq_pin); 535 phydev->irq = (phy_irq < 0) ? PHY_POLL : phy_irq; 536 } 537 } else { 538 phydev->irq = PHY_POLL; 539 } 540 } 541 542 /* attach the mac to the phy */ 543 ret = phy_connect_direct(dev, phydev, &macb_handle_link_change, 544 bp->phy_interface); 545 if (ret) { 546 netdev_err(dev, "Could not attach to PHY\n"); 547 return ret; 548 } 549 } 550 551 /* mask with MAC supported features */ 552 if (macb_is_gem(bp) && bp->caps & MACB_CAPS_GIGABIT_MODE_AVAILABLE) 553 phydev->supported &= PHY_GBIT_FEATURES; 554 else 555 phydev->supported &= PHY_BASIC_FEATURES; 556 557 if (bp->caps & MACB_CAPS_NO_GIGABIT_HALF) 558 phydev->supported &= ~SUPPORTED_1000baseT_Half; 559 560 phydev->advertising = phydev->supported; 561 562 bp->link = 0; 563 bp->speed = 0; 564 bp->duplex = -1; 565 566 return 0; 567 } 568 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation