Re: [PATCH] um: Add winch to winch_handlers before registering winch IRQ

From: Richard Weinberger
Date: Tue Apr 23 2024 - 04:11:17 EST


----- Ursprüngliche Mail -----
> Von: "Roberto Sassu" <roberto.sassu@xxxxxxxxxxxxxxx>
> An: "Johannes Berg" <johannes@xxxxxxxxxxxxxxxx>, "richard" <richard@xxxxxx>, "anton ivanov"
> <anton.ivanov@xxxxxxxxxxxxxxxxxx>
> CC: "linux-kernel" <linux-kernel@xxxxxxxxxxxxxxx>, "linux-um" <linux-um@xxxxxxxxxxxxxxxxxxx>, "Roberto Sassu"
> <roberto.sassu@xxxxxxxxxx>
> Gesendet: Dienstag, 23. April 2024 09:22:31
> Betreff: Re: [PATCH] um: Add winch to winch_handlers before registering winch IRQ

> On Thu, 2024-03-28 at 09:25 +0100, Johannes Berg wrote:
>> On Thu, 2024-03-07 at 11:49 +0100, Roberto Sassu wrote:
>> > From: Roberto Sassu <roberto.sassu@xxxxxxxxxx>
>> >
>> > Registering a winch IRQ is racy, an interrupt may occur before the winch is
>> > added to the winch_handlers list.
>> >
>> > If that happens, register_winch_irq() adds to that list a winch that is
>> > scheduled to be (or has already been) freed, causing a panic later in
>> > winch_cleanup().
>> >
>> > Avoid the race by adding the winch to the winch_handlers list before
>> > registering the IRQ, and rolling back if um_request_irq() fails.
>> >
>>
>> Reviewed-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx>
>
> Thank you! Richard, are you going to pick this up?

Yes, it's already in my local queue.

Thanks,
//richard