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]
Message-Id: <20161130.124457.1899469473708436247.davem@davemloft.net>
Date:   Wed, 30 Nov 2016 12:44:57 -0500 (EST)
From:   David Miller <davem@...emloft.net>
To:     nikita.yoush@...entembedded.com
Cc:     fugang.duan@....com, troy.kisky@...ndarydevices.com,
        andrew@...n.ch, eric@...int.com, tremyfr@...il.com,
        johannes@...solutions.net, netdev@...r.kernel.org,
        cphealy@...il.com, fabio.estevam@....com,
        linux-kernel@...r.kernel.org
Subject: Re: [patch net v2] net: fec: cache statistics while device is down

From: Nikita Yushchenko <nikita.yoush@...entembedded.com>
Date: Tue, 29 Nov 2016 09:44:51 +0300

> Execution 'ethtool -S' on fec device that is down causes OOPS on Vybrid
> board:
> 
> Unhandled fault: external abort on non-linefetch (0x1008) at 0xe0898200
> pgd = ddecc000
> [e0898200] *pgd=9e406811, *pte=400d1653, *ppte=400d1453
> Internal error: : 1008 [#1] SMP ARM
> ...
> 
> Reason of OOPS is that fec_enet_get_ethtool_stats() accesses fec
> registers while IPG clock is stopped by PM.
> 
> Fix that by caching statistics in fec_enet_private. Cache is initialized
> at device probe time, and updated at statistics request time if device
> is up, and also just before turning device off on down path.
> 
> Additional locking is not needed, since cached statistics is accessed
> either before device is registered, or under rtnl_lock().
> 
> Signed-off-by: Nikita Yushchenko <nikita.yoush@...entembedded.com>

Applied, thanks.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ