[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2023072538-corned-falsify-d054@gregkh>
Date: Tue, 25 Jul 2023 09:08:10 +0200
From: Greg KH <gregkh@...uxfoundation.org>
To: Alex Elder <elder@...aro.org>
Cc: davem@...emloft.net, edumazet@...gle.com, kuba@...nel.org,
pabeni@...hat.com, dianders@...omium.org,
caleb.connolly@...aro.org, mka@...omium.org, evgreen@...omium.org,
andersson@...nel.org, quic_cpratapa@...cinc.com,
quic_avuyyuru@...cinc.com, quic_jponduru@...cinc.com,
quic_subashab@...cinc.com, elder@...nel.org,
netdev@...r.kernel.org, linux-arm-msm@...r.kernel.org,
linux-kernel@...r.kernel.org, stable@...r.kernel.org
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@...r.kernel.org> # 6.1.x
> Tested-by: Douglas Anderson <dianders@...omium.org>
> Signed-off-by: Alex Elder <elder@...aro.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
Powered by blists - more mailing lists