Re: [PATCH net 2/3] net: dsa: qca8k: drop MIB autocast frames once the request is over
From: Stanislaw Pal
Date: Wed Nov 04 2026 - 16:45:03 EST
Thanks for the review. The sequence is right: a frame carries nothing
that ties it to a cast, so after a timeout the frames of the previous
cast are taken for the next request's. v2 polls QCA8K_MIB_BUSY before
sending a cast, as qca8k_mib_init() does for the flush, so the switch
never has two casts in flight, and the handler records the ports it
has seen in a bitmap instead of counting frames down, so an extra frame
can neither underflow the count nor complete the request early. What
remains is that a frame of the previous cast which was still queued on
the host side can serve the next request; its counters are then one
cast old, which the commit message now says instead of claiming that
every late frame is dropped.
v2 also carries two fixes for the issues you found in the same
handlers: the MDIO fallback of qca8k_bulk_read() storing each register
one byte after the previous one, and qca8k_rw_reg_ack_handler() reading
past a short frame and past its 16-byte buffer. It goes to net-next, as
Andrew asked for the related MTU series: the problems were found by
review, not seen in production. Patch 1 of this series, the regmap
locking, is not in v2: Yongzhao Chen carries it in his net-next v8.
pw-bot: cr