[<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