lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200512111059.GA34497@piout.net>
Date:   Tue, 12 May 2020 13:10:59 +0200
From:   Alexandre Belloni <alexandre.belloni@...tlin.com>
To:     Guillaume Tucker <guillaume.tucker@...labora.com>
Cc:     Florian Fainelli <f.fainelli@...il.com>,
        "David S. Miller" <davem@...emloft.net>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        stable@...r.kernel.org, linux-kernel@...r.kernel.org,
        netdev@...r.kernel.org
Subject: Re: stable/linux-4.4.y bisection: baseline.login on
 at91-sama5d4_xplained

Hi,

On 12/05/2020 06:54:29+0100, Guillaume Tucker wrote:
> Please see the bisection report below about a boot failure.
> 
> Reports aren't automatically sent to the public while we're
> trialing new bisection features on kernelci.org but this one
> looks valid.
> 
> It appears to be due to the fact that the network interface is
> failing to get brought up:
> 
> [  114.385000] Waiting up to 10 more seconds for network.
> [  124.355000] Sending DHCP requests ...#
> ..#
> .#
>  timed out!
> [  212.355000] IP-Config: Reopening network devices...
> [  212.365000] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
> #
> 
> 
> I guess the board would boot fine without network if it didn't
> have ip=dhcp in the command line, so it's not strictly a kernel
> boot failure but still an ethernet issue.
> 

I think the resolution of this issue is
99f81afc139c6edd14d77a91ee91685a414a1c66. If this is taken, then I think
f5aba91d7f186cba84af966a741a0346de603cd4 should also be backported.


> There wasn't any failure reported by kernelci on linux-4.9.y so
> maybe this patch was applied by mistake on linux-4.4.y but I
> haven't investigated enough to prove this.
> 
> Thanks,
> Guillaume
> 
> 
> On 10/05/2020 18:27, kernelci.org bot wrote:
> > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> > * This automated bisection report was sent to you on the basis  *
> > * that you may be involved with the breaking commit it has      *
> > * found.  No manual investigation has been done to verify it,   *
> > * and the root cause of the problem may be somewhere else.      *
> > *                                                               *
> > * If you do send a fix, please include this trailer:            *
> > *   Reported-by: "kernelci.org bot" <bot@...nelci.org>          *
> > *                                                               *
> > * Hope this helps!                                              *
> > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> > 
> > stable/linux-4.4.y bisection: baseline.login on at91-sama5d4_xplained
> > 
> > Summary:
> >   Start:      e157447efd85b Linux 4.4.223
> >   Plain log:  https://storage.kernelci.org/stable/linux-4.4.y/v4.4.223/arm/multi_v7_defconfig/gcc-8/lab-baylibre/baseline-at91-sama5d4_xplained.txt
> >   HTML log:   https://storage.kernelci.org/stable/linux-4.4.y/v4.4.223/arm/multi_v7_defconfig/gcc-8/lab-baylibre/baseline-at91-sama5d4_xplained.html
> >   Result:     0d1951fa23ba0 net: phy: Avoid polling PHY with PHY_IGNORE_INTERRUPTS
> > 
> > Checks:
> >   revert:     PASS
> >   verify:     PASS
> > 
> > Parameters:
> >   Tree:       stable
> >   URL:        https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
> >   Branch:     linux-4.4.y
> >   Target:     at91-sama5d4_xplained
> >   CPU arch:   arm
> >   Lab:        lab-baylibre
> >   Compiler:   gcc-8
> >   Config:     multi_v7_defconfig
> >   Test case:  baseline.login
> > 
> > Breaking commit found:
> > 
> > -------------------------------------------------------------------------------
> > commit 0d1951fa23ba0d35a4c5498ff28d1c5206d6fcdd
> > Author: Florian Fainelli <f.fainelli@...il.com>
> > Date:   Mon Jan 18 19:33:06 2016 -0800
> > 
> >     net: phy: Avoid polling PHY with PHY_IGNORE_INTERRUPTS
> >     
> >     commit d5c3d84657db57bd23ecd58b97f1c99dd42a7b80 upstream.
> >     
> >     Commit 2c7b49212a86 ("phy: fix the use of PHY_IGNORE_INTERRUPT") changed
> >     a hunk in phy_state_machine() in the PHY_RUNNING case which was not
> >     needed. The change essentially makes the PHY library treat PHY devices
> >     with PHY_IGNORE_INTERRUPT to keep polling for the PHY device, even
> >     though the intent is not to do it.
> >     
> >     Fix this by reverting that specific hunk, which makes the PHY state
> >     machine wait for state changes, and stay in the PHY_RUNNING state for as
> >     long as needed.
> >     
> >     Fixes: 2c7b49212a86 ("phy: fix the use of PHY_IGNORE_INTERRUPT")
> >     Signed-off-by: Florian Fainelli <f.fainelli@...il.com>
> >     Signed-off-by: David S. Miller <davem@...emloft.net>
> >     Signed-off-by: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
> > 
> > diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
> > index 7d2cf015c5e76..b242bec834f4b 100644
> > --- a/drivers/net/phy/phy.c
> > +++ b/drivers/net/phy/phy.c
> > @@ -912,10 +912,10 @@ void phy_state_machine(struct work_struct *work)
> >  		phydev->adjust_link(phydev->attached_dev);
> >  		break;
> >  	case PHY_RUNNING:
> > -		/* Only register a CHANGE if we are polling or ignoring
> > -		 * interrupts and link changed since latest checking.
> > +		/* Only register a CHANGE if we are polling and link changed
> > +		 * since latest checking.
> >  		 */
> > -		if (!phy_interrupt_is_valid(phydev)) {
> > +		if (phydev->irq == PHY_POLL) {
> >  			old_link = phydev->link;
> >  			err = phy_read_status(phydev);
> >  			if (err)
> > @@ -1015,8 +1015,13 @@ void phy_state_machine(struct work_struct *work)
> >  	dev_dbg(&phydev->dev, "PHY state change %s -> %s\n",
> >  		phy_state_to_str(old_state), phy_state_to_str(phydev->state));
> >  
> > -	queue_delayed_work(system_power_efficient_wq, &phydev->state_queue,
> > -			   PHY_STATE_TIME * HZ);
> > +	/* Only re-schedule a PHY state machine change if we are polling the
> > +	 * PHY, if PHY_IGNORE_INTERRUPT is set, then we will be moving
> > +	 * between states from phy_mac_interrupt()
> > +	 */
> > +	if (phydev->irq == PHY_POLL)
> > +		queue_delayed_work(system_power_efficient_wq, &phydev->state_queue,
> > +				   PHY_STATE_TIME * HZ);
> >  }
> >  
> >  void phy_mac_interrupt(struct phy_device *phydev, int new_link)
> > -------------------------------------------------------------------------------
> > 
> > 
> > Git bisection log:
> > 
> > -------------------------------------------------------------------------------
> > git bisect start
> > # good: [b63f449e18b130fdc372b9717e72c19b83fc4876] Linux 4.4.222
> > git bisect good b63f449e18b130fdc372b9717e72c19b83fc4876
> > # bad: [e157447efd85bb2e6f8deaabbb62663bccd9bad2] Linux 4.4.223
> > git bisect bad e157447efd85bb2e6f8deaabbb62663bccd9bad2
> > # bad: [5733a9f4a3df384097c92c532aed34bc698a9acd] net: dsa: slave: fix of-node leak and phy priority
> > git bisect bad 5733a9f4a3df384097c92c532aed34bc698a9acd
> > # good: [1ce6993b857318a4b8c674b1bbaaf79aced34136] net/mlx5e: Fix blue flame quota logic
> > git bisect good 1ce6993b857318a4b8c674b1bbaaf79aced34136
> > # good: [c32532162f8ea4beed50a20cf4f9b205c75fe1b1] serial: samsung: Fix possible out of bounds access on non-DT platform
> > git bisect good c32532162f8ea4beed50a20cf4f9b205c75fe1b1
> > # good: [25e8aad6f491da6ae330148da09585371a3790f2] Revert "ACPI / LPSS: allow to use specific PM domain during ->probe()"
> > git bisect good 25e8aad6f491da6ae330148da09585371a3790f2
> > # good: [2f3e56e4b6020812350190f1cada230d790ce0e8] powerpc/tm: Fix stack pointer corruption in __tm_recheckpoint()
> > git bisect good 2f3e56e4b6020812350190f1cada230d790ce0e8
> > # bad: [0d1951fa23ba0d35a4c5498ff28d1c5206d6fcdd] net: phy: Avoid polling PHY with PHY_IGNORE_INTERRUPTS
> > git bisect bad 0d1951fa23ba0d35a4c5498ff28d1c5206d6fcdd
> > # good: [4ebef63e925e37f5de2f9da8fc86a545e4e0b945] sctp: fix the transports round robin issue when init is retransmitted
> > git bisect good 4ebef63e925e37f5de2f9da8fc86a545e4e0b945
> > # good: [c175435fdf50c81ca2b6576f090cba31c3489209] NFC: nci: memory leak in nci_core_conn_create()
> > git bisect good c175435fdf50c81ca2b6576f090cba31c3489209
> > # first bad commit: [0d1951fa23ba0d35a4c5498ff28d1c5206d6fcdd] net: phy: Avoid polling PHY with PHY_IGNORE_INTERRUPTS
> > -------------------------------------------------------------------------------
> > 
> 

-- 
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ