Re: [PATCH -rc] workqueue: Reimplement UAF fix to avoid lockdep worning

From: Dan Williams
Date: Tue Jun 04 2024 - 11:21:53 EST


Imre Deak wrote:
> Hi,
>
> [Sorry for the previous message, resending it now
> with proper In-reply-to: header added.]
>
> I see a similar issue, a corruption in the lock_keys_hash while
> alloc_workqueue()->lockdep_register_key() iterates it, see [1] for the
> stacktrace.
>
> Not sure if related or even will solve [1], but [2] will revert
>
> commit 7e89efc6e9e4 ("PCI: Lock upstream bridge for pci_reset_function()")
>
> which does
>
> lockdep_register_key(&dev->cfg_access_key);
>
> in pci_device_add() and doesn't unregister the key when the pci device is
> removed (and potentially freed); so basically 7e89efc6e9e4 was missing a
>
> lockdep_unregister_key();
>
> in pci_destroy_dev().
>
> Based on the above I wonder if 7e89efc6e9e4 could also lead to the
> corruption of lock_keys_hash after a pci device is removed.o

Are you running with the revert applied and still seeing issues?