On Tue, Jan 17, 2023 at 10:23:20PM +0100, Thomas Gleixner wrote: > On Mon, Jan 16 2023 at 14:50, Johan Hovold wrote: > > The global irq_domain_mutex is now held in all paths that update the > > revmap structures so there is no longer any need for the revmap mutex. > > This can also go after the 3rd race fix, but ... > > > static void irq_domain_clear_mapping(struct irq_domain *domain, > > irq_hw_number_t hwirq) > > { > > + lockdep_assert_held(&irq_domain_mutex); > > these lockdep asserts want to be part of the [dis]association race > fixes. They are completely unrelated to the removal of the revmap_mutex. No, they are very much related to the removal of the revmap_mutex. These functions deal with the revmap structures which before this patch were clearly only modified with the revmap_mutex held. The lockdep assert is here to guarantee that my claim that all current (and future) paths that end up modifying these structures do so under the irq_domain_mutex instead. > Your race fixes change the locking and you want to ensure that all > callers comply right there, no? I want to make sure that all callers of these function comply, yes. That's why the asserts belong in this patch. Johan