Re: [PATCH net] net: ipa: only reset hashed tables when supported

From: Greg KH
Date: Tue Jul 25 2023 - 03:08:17 EST


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@xxxxxxxxxxxxxxx> # 6.1.x
> Tested-by: Douglas Anderson <dianders@xxxxxxxxxxxx>
> Signed-off-by: Alex Elder <elder@xxxxxxxxxx>
> ---
> 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