On Thu, 2017-04-27 at 01:37:32 UTC, Michael Ellerman wrote: > In opal_export_attrs() we dynamically allocate some bin_attributes. They're > allocated with kmalloc() and although we initialise most of the fields, we > don't > initialise write() or mmap(), and in particular we don't initialise the > lockdep > related fields in the embedded struct attribute. > > This leads to a lockdep warning at boot: > > BUG: key c0000000f11906d8 not in .data! > WARNING: CPU: 0 PID: 1 at ../kernel/locking/lockdep.c:3136 > lockdep_init_map+0x28c/0x2a0 > ... > Call Trace: > lockdep_init_map+0x288/0x2a0 (unreliable) > __kernfs_create_file+0x8c/0x170 > sysfs_add_file_mode_ns+0xc8/0x240 > __machine_initcall_powernv_opal_init+0x60c/0x684 > do_one_initcall+0x60/0x1c0 > kernel_init_freeable+0x2f4/0x3d4 > kernel_init+0x24/0x160 > ret_from_kernel_thread+0x5c/0xb0 > > Fix it by kzalloc'ing the attr, which fixes the uninitialised write() and > mmap(), and calling sysfs_bin_attr_init() on it to initialise the lockdep > fields. > > Fixes: 11fe909d2362 ("powerpc/powernv: Add OPAL exports attributes to sysfs") > Signed-off-by: Michael Ellerman <m...@ellerman.id.au>
Applied to powerpc next. https://git.kernel.org/powerpc/c/83c4919058459c32138a1ebe35f72b cheers