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] [day] [month] [year] [list]
Date:	Fri, 04 Dec 2009 10:10:35 +0100
From:	Sven Anders <sven@...uras.de>
To:	"Tantilov, Emil S" <emil.s.tantilov@...el.com>
CC:	Stefan Assmann <sassmann@...hat.com>,
	netdev <netdev@...r.kernel.org>, Andi Kleen <andi@...stfloor.org>
Subject: Re: [PATCH] e1000e: Fix usage under kexec

Tantilov, Emil S schrieb:
> Stefan Assmann wrote:
>> On 09.11.2009 21:25, Sven Anders wrote:
>>>
>>> We're experiencing the following problem:
>>>
>>> We start a minimal linux system, prepare the system and start the
>>> final system via kexec. On two different systems (one with a 82573
>>> and one with a 82574), the driver cannot initialize the network
>>> hardware, because the PHY is not recognized. 
>>>
>>> We get the following error:
>>>   e1000e: probe of 0000:02:00.0 failed with error -2
>> Hi Sven,
>>
>> have a look at the following thread, it seems very similar.
>> http://kerneltrap.org/mailarchive/linux-netdev/2009/3/7/5114394
> 
> There is already similar code in e1000e:
> http://git.kernel.org/?p=linux/kernel/git/davem/net-2.6.git;a=commit;h=4f9de721ab73a5271a79b126f7b5140b01a05c99

Yes it sound similar. We will test this when we upgrade the kernel for
our next OS release...

> Sven, could you provide some additional information about your system and 
> kernel/driver verison you used when the issue occurred?
> I have not been able to reproduce it on my setup.

Currently we are using the Linux kernel 2.6.29.6 for our appliances.
Which is/was the first officially released kernel with this patch?



Andi Kleen wrote:
>> We fixed it by adding a
>> >
>> > +       /* Reset PHY before initializing it. Allows re-init after kexec. */
>> > +       if (!e1000_check_reset_block(hw))
>> > +         e1000_phy_hw_reset(hw);
> 
> The problem of resetting PHYs in the driver init path is that it tends
> to lose link-state, and if the link takes some time to re-negotiate
> you can significantly slow down the "total time to network access"
> at boot.
> 
> Perhaps you could only reset when the message above would trigger
> and try again?
> 
> -Andi

Ok, know we are doing the following. But maybe it isn't needed with the
new kernel any more...

@@ -109,6 +109,13 @@ static s32 e1000_init_phy_params_82571(s
        /* This can only be done after all function pointers are setup. */
        ret_val = e1000_get_phy_id_82571(hw);

+       /* Could not determine PHY id. This can happen when booting
+          via kexec. So reset and try again. */
+       if (ret_val == -E1000_ERR_PHY) {
+               e1000_phy_hw_reset(hw);
+               ret_val = e1000_get_phy_id_82571(hw);
+       }
+
        /* Verify phy id */
        switch (hw->mac.type) {
        case e1000_82571:


Regards
 Sven Anders

-- 
 Sven Anders <anders@...uras.de>                 () Ascii Ribbon Campaign
                                                 /\ Support plain text e-mail
 ANDURAS service solutions AG
 Innstrasse 71 - 94036 Passau - Germany
 Web: www.anduras.de - Tel: +49 (0)851-4 90 50-0 - Fax: +49 (0)851-4 90 50-55

Those who would give up essential Liberty, to purchase a little
temporary Safety, deserve neither Liberty nor Safety.
  - Benjamin Franklin

View attachment "sven.vcf" of type "text/x-vcard" (307 bytes)

Download attachment "signature.asc" of type "application/pgp-signature" (261 bytes)

Powered by blists - more mailing lists