diff options
author | Kazuya Mizuguchi <kazuya.mizuguchi.ks@renesas.com> | 2018-09-18 12:22:26 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-10-20 09:47:07 +0200 |
commit | 6b7d727a2d185a6197bdf413ff6369e3ba2b0d0b (patch) | |
tree | 20e9090223e6d7507050bd1cf1a1789160e73184 /drivers/net/ethernet/renesas/ravb_ptp.c | |
parent | 14bbe1ab20acb74bf197a8e1f4a9f6fd7a1b4c3e (diff) | |
download | linux-stable-6b7d727a2d185a6197bdf413ff6369e3ba2b0d0b.tar.gz linux-stable-6b7d727a2d185a6197bdf413ff6369e3ba2b0d0b.tar.bz2 linux-stable-6b7d727a2d185a6197bdf413ff6369e3ba2b0d0b.zip |
ravb: do not write 1 to reserved bits
[ Upstream commit 2fe397a3959de8a472f165e6d152f64cb77fa2cc ]
EtherAVB hardware requires 0 to be written to status register bits in
order to clear them, however, care must be taken not to:
1. Clear other bits, by writing zero to them
2. Write one to reserved bits
This patch corrects the ravb driver with respect to the second point above.
This is done by defining reserved bit masks for the affected registers and,
after auditing the code, ensure all sites that may write a one to a
reserved bit use are suitably masked.
Signed-off-by: Kazuya Mizuguchi <kazuya.mizuguchi.ks@renesas.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Reviewed-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/net/ethernet/renesas/ravb_ptp.c')
-rw-r--r-- | drivers/net/ethernet/renesas/ravb_ptp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/renesas/ravb_ptp.c b/drivers/net/ethernet/renesas/ravb_ptp.c index eede70ec37f8..9e3222fd69f9 100644 --- a/drivers/net/ethernet/renesas/ravb_ptp.c +++ b/drivers/net/ethernet/renesas/ravb_ptp.c @@ -319,7 +319,7 @@ void ravb_ptp_interrupt(struct net_device *ndev) } } - ravb_write(ndev, ~gis, GIS); + ravb_write(ndev, ~(gis | GIS_RESERVED), GIS); } void ravb_ptp_init(struct net_device *ndev, struct platform_device *pdev) |