Re: [PATCH] rhashtable: Fix potential deadlock by moving schedule_work outside lock
From: Zaslonko Mikhail <hidden>
Date: 2025-01-10 14:47:20
Also in:
linux-hyperv, lkml
From: Zaslonko Mikhail <hidden>
Date: 2025-01-10 14:47:20
Also in:
linux-hyperv, lkml
Herbert and Breno, On 10.01.2025 10:27, Herbert Xu wrote:
On Thu, Jan 09, 2025 at 02:15:17AM -0800, Breno Leitao wrote: Reported-by: Michael Kelley <redacted> Fixes: e1d3422c95f0 ("rhashtable: Fix potential deadlock by moving schedule_work outside lock") Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>diff --git a/lib/rhashtable.c b/lib/rhashtable.c index bf956b85455a..e196b6f0e35a 100644 --- a/lib/rhashtable.c +++ b/lib/rhashtable.c@@ -621,7 +621,7 @@ static void *rhashtable_try_insert(struct rhashtable *ht, const void *key, rht_unlock(tbl, bkt, flags); - if (PTR_ERR(data) == -ENOENT && !new_tbl) { + if (!new_tbl) { atomic_inc(&ht->nelems); if (rht_grow_above_75(ht, tbl)) schedule_work(&ht->run_work);
I'd like to let you know that I was getting OOM failure on s390 when booting
the kernel (linux-next20250109) with limited memory (mem=1G kernel parameter).
Problem took place in both zVM and LPAR environments. Bisecting also revealed
the commit e1d3422c95f0 ("rhashtable: Fix potential deadlock by moving
schedule_work outside lock").
Afterwards, I tried the fix from Herbert above and the error does not appear
any more. So it seems to resolve the issue.
Thanks,
Mikhail