Re: [PATCH v3 00/24] gpio: rework locking and object life-time control

From: Bartosz Golaszewski
Date: Fri Apr 19 2024 - 17:29:36 EST


On Fri, 19 Apr 2024 at 09:04, Jiawen Wu <jiawenwu@xxxxxxxxxxxxxx> wrote:
>
> Hi Bartosz Golaszewski,
>
> I ran into a kernel crash problem when I pull the latest net-next.git, and
> finally it was found that is caused by this patch series merged.
>
> The kernel crashed because I got gpio=0 when I called irq_find_mapping()
> and then struct irq_data *d=null, as my driver describes:
>
> int gpio = irq_find_mapping(gc->irq.domain, hwirq);
> struct irq_data *d = irq_get_irq_data(gpio);
>
> txgbe_gpio_irq_ack(d);
>
> The deeper positioning is this line in __irq_resolve_mapping().
>
> data = rcu_dereference(domain->revmap[hwirq]);
>
> So, is it the addition of SRCU infrastructure that causes this issue?
>

This is irq-specific RCU that I did not add in the GPIO series. Please
provide us with more information. Bisect to the exact commit causing
the issue and post the kernel log (we don't know what kind of crash
you trigger and what the stack trace is).

Bart