Re: [PATCH] hazptr: handle NULL address in hazptr_detach
From: Mathieu Desnoyers
Date: Tue Sep 08 2026 - 13:36:16 EST
On 2026-09-08 12:22, Paul E. McKenney wrote:
On Tue, Sep 08, 2026 at 11:29:31AM -0400, Mathieu Desnoyers wrote:
On 2026-09-08 11:24, Bradley Morgan wrote:
On 8 September 2026 16:22:14 BST, Mathieu Desnoyers
<mathieu.desnoyers@xxxxxxxxxxxx> wrote:
When hazptr_acquire loads a NULL pointer, it sets:
- slot_item->slot.addr = NULL,
- slot_item->ctx.ctx = ctx
- ctx->slot = slot
And it returns NULL.
Then hazptr_detach is called on this ctx, it will act on the ctx as if
needed to be promoted to backup slot, even though it has a NULL addr.
Looking at what hazptr_note_context_switch() does before promoting
to backup slot, it checks for a NULL slot->addr, which is exactly
what is missing from hazptr_detach.
With this in place there would be no need to explicitly check the
hazptr_acquire() return value before calling hazptr_detach().
hazptr_release() has a early return check for NULL addr as well, so it
makes sense that detach does an early return (no-op) similarly.
You shall kill me for this!!
Could you perhaps do a splat in ze commit description pls?
The splat is available at the "Closes" URL below. I'm not sure whether
we should duplicate this verbose information ?
Paul ?
I am fine either way, as long as the information is reasonably easily
accessible. Which is the case either way. ;-)
Then I favor a concise commit message, leaving the splat details to the
"Closes" link. Feel free to pick up this patch for testing.
Thank you!
Mathieu
--
Mathieu Desnoyers
EfficiOS Inc.
https://www.efficios.com