Re: [PATCH v5 1/7] gpiolib: wait for pending label frees before cleaning up desc_srcu

From: Andy Shevchenko

Date: Tue Nov 03 2026 - 06:10:14 EST


On Tue, Nov 03, 2026 at 12:48:51PM +0200, Andy Shevchenko wrote:
> On Tue, Nov 03, 2026 at 12:32:34PM +0200, Adrian Ambrozewicz wrote:
> > desc_set_label() frees the old label with call_srcu() on
> > gdev->desc_srcu, and gpiodev_release() calls synchronize_srcu() before
> > cleanup_srcu_struct(). synchronize_srcu() waits for a grace period, not
> > for queued callbacks. Once the srcu_struct uses per-CPU callback lists,
> > a label freed by gpiochip_free_hogs() can still be pending, and
> > cleanup_srcu_struct() warns:
> >
> > WARNING: kernel/rcu/srcutree.c:706 at cleanup_srcu_struct+0x239/0x330, CPU#0: init/1
> > Call Trace:
> > gpiodev_release
> > device_release
> > kobject_put
> > devres_release_all
> > device_release_driver_internal
> > platform_device_unregister
> > gpio_sim_device_deactivate
> >
> > Use srcu_barrier(), which waits for them.
> >
> > Reproduced with a hogged gpio-sim line, setting the chip live and back
> > on a 4-CPU guest with srcutree.convert_to_big=1: it warns within 60
> > cycles; with this change, 1000 cycles pass.

...

> > Assisted-by: LLM
>
> This tag is obsoleted. Instead explain under '---' how AI has been used to
> generate this contribution.

Actually do it in the cover letter, as seems the whole series tagged with it.

--
With Best Regards,
Andy Shevchenko