A trait for types that need a lock class during initialisation.
Implementers of this trait benefit from the [
init_with_lockdep] macro that generates a new
class for each initialisation call site.
Initialises the type instance so that it can be safely used.
Callers are encouraged to use the [
init_with_lockdep] macro as it automatically creates a
new lock class on each usage.
key must point to a valid memory location as it will be used by the kernel.