Messages in this thread | | | Date | Tue, 25 Jul 2023 09:08:10 +0200 | From | Greg KH <> | Subject | Re: [PATCH net] net: ipa: only reset hashed tables when supported |
| |
On Mon, Jul 24, 2023 at 05:41:06PM -0500, Alex Elder wrote: > Last year, the code that manages GSI channel transactions switched > from using spinlock-protected linked lists to using indexes into the > ring buffer used for a channel. Recently, Google reported seeing > transaction reference count underflows occasionally during shutdown. > > Doug Anderson found a way to reproduce the issue reliably, and > bisected the issue to the commit that eliminated the linked lists > and the lock. The root cause was ultimately determined to be > related to unused transactions being committed as part of the modem > shutdown cleanup activity. Unused transactions are not normally > expected (except in error cases). > > The modem uses some ranges of IPA-resident memory, and whenever it > shuts down we zero those ranges. In ipa_filter_reset_table() a > transaction is allocated to zero modem filter table entries. If > hashing is not supported, hashed table memory should not be zeroed. > But currently nothing prevents that, and the result is an unused > transaction. Something similar occurs when we zero routing table > entries for the modem. > > By preventing any attempt to clear hashed tables when hashing is not > supported, the reference count underflow is avoided in this case. > > Note that there likely remains an issue with properly freeing unused > transactions (if they occur due to errors). This patch addresses > only the underflows that Google originally reported. > > Fixes: d338ae28d8a8 ("net: ipa: kill all other transaction lists") > Cc: <stable@vger.kernel.org> # 6.1.x > Tested-by: Douglas Anderson <dianders@chromium.org> > Signed-off-by: Alex Elder <elder@linaro.org> > --- > drivers/net/ipa/ipa_table.c | 26 ++++++++++++++------------ > 1 file changed, 14 insertions(+), 12 deletions(-)
You sent 2 different versions of this patch? Which one is for what tree? Is this in Linus's tree already? If so, what's the git id?
confused,
greg k-h
| |