Message ID | 20200403102329.0690d7b2@xhacker (mailing list archive) |
---|---|
State | Mainlined |
Commit | 3e1221acf6a8f8595b5ce354bab4327a69d54d18 |
Headers | show |
Series | net: stmmac: dwmac1000: fix out-of-bounds mac address reg setting | expand |
From: Jisheng Zhang <jszhang3@mail.ustc.edu.cn> Date: Fri, 3 Apr 2020 10:23:29 +0800 > From: Jisheng Zhang <Jisheng.Zhang@synaptics.com> > > Commit 9463c4455900 ("net: stmmac: dwmac1000: Clear unused address > entries") cleared the unused mac address entries, but introduced an > out-of bounds mac address register programming bug -- After setting > the secondary unicast mac addresses, the "reg" value has reached > netdev_uc_count() + 1, thus we should only clear address entries > if (addr < perfect_addr_number) > > Fixes: 9463c4455900 ("net: stmmac: dwmac1000: Clear unused address entries") > Signed-off-by: Jisheng Zhang <Jisheng.Zhang@synaptics.com> Applied and queued up for -stable, thanks.
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c b/drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c index 542784300620..efc6ec1b8027 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c @@ -207,7 +207,7 @@ static void dwmac1000_set_filter(struct mac_device_info *hw, reg++; } - while (reg <= perfect_addr_number) { + while (reg < perfect_addr_number) { writel(0, ioaddr + GMAC_ADDR_HIGH(reg)); writel(0, ioaddr + GMAC_ADDR_LOW(reg)); reg++;