[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <87ttg88r6j.ffs@tglx>
Date: Mon, 29 Jul 2024 11:48:20 +0200
From: Thomas Gleixner <tglx@...utronix.de>
To: Marc Zyngier <maz@...nel.org>
Cc: linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org, Zhou
Wang <wangzhou1@...ilicon.com>
Subject: Re: [PATCH] irqchip/gic-v4: Fix ordering between vmapp and vpe locks
On Mon, Jul 29 2024 at 08:25, Marc Zyngier wrote:
> On Fri, 26 Jul 2024 21:52:40 +0100,
> Thomas Gleixner <tglx@...utronix.de> wrote:
>> Confused. This changes the locking from unconditional to
>> conditional. What's the rationale here?
>
> Haven't managed to sleep much, but came to the conclusion that I
> wasn't that stupid in my initial patch. Let's look at the full
> picture, starting with its_send_vmovp():
>
> if (!its_list_map) {
> its = list_first_entry(&its_nodes, struct its_node, entry);
> desc.its_vmovp_cmd.col = &its->collections[col_id];
> its_send_single_vcommand(its, its_build_vmovp_cmd, &desc);
> return;
> }
>
> /*
> * Protect against concurrent updates of the mapping state on
> * individual VMs.
> */
> guard(raw_spinlock_irqsave)(&vpe->its_vm->vmapp_lock);
>
> The vmapp locking *is* conditional. Which makes a lot of sense as the
Misread the patch ...
Powered by blists - more mailing lists