Hello, Matthew. On Tue, Jul 30, 2024 at 03:17:40PM -0700, Matthew Brost wrote: > +/** > + * wq_init_user_lockdep_map - init user lockdep map for workqueue > + * @wq: workqueue to init lockdep map for > + * @lockdep_map: lockdep map to use for workqueue > + * > + * Initialize workqueue with a user defined lockdep map. WQ_USER_OWNED_LOCKDEP > + * must be set for workqueue. > + */ > +void wq_init_user_lockdep_map(struct workqueue_struct *wq, > + struct lockdep_map *lockdep_map) > +{ > + if (WARN_ON_ONCE(!(wq->flags & WQ_USER_OWNED_LOCKDEP))) > + return; > + > + wq->lockdep_map = lockdep_map; > +} > +EXPORT_SYMBOL_GPL(wq_init_user_lockdep_map); Would it be possible to make it a one-piece interface - ie. add alloc_workqueue_lockdep_map() which takes an external lockdep map rather than splitting it over two calls? Thanks. -- tejun