Better handle function qca8k_set_page. The original code requires a deleay of 5us and set the current page only if the bus write has not failed. Signed-off-by: Ansuel Smith <ansuelsmth@xxxxxxxxx> --- drivers/net/dsa/qca8k.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c index cdaf9f85a2cb..a6d35b825c0e 100644 --- a/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c @@ -133,9 +133,12 @@ qca8k_set_page(struct mii_bus *bus, u16 page) if (page == qca8k_current_page) return; - if (bus->write(bus, 0x18, 0, page) < 0) + if (bus->write(bus, 0x18, 0, page)) { dev_err_ratelimited(&bus->dev, "failed to set qca8k page\n"); + return; + } + qca8k_current_page = page; } -- 2.30.2