In the Linux kernel, the following vulnerability has been resolved:
RDMA/hfi1: Prevent use of lock before it is initialized
If there is a failure during probe of hfi1 before the sdmamaplock is initialized, the call to hfi1freedevdata() will attempt to use a lock that has not been initialized. If the locking correctness validator is on then an INFO message and stack trace resembling the following may be seen:
INFO: trying to register non-static key. The code is fine but needs lockdep annotation, or maybe you didn't initialize this object before use? turning off the locking correctness validator. Call Trace: registerlockclass+0x11b/0x880 _lockacquire+0xf3/0x7930 lockacquire+0xff/0x2d0 _rawspinlockirq+0x46/0x60 sdmaclean+0x42a/0x660 [hfi1] hfi1freedevdata+0x3a7/0x420 [hfi1] initone+0x867/0x11a0 [hfi1] pcideviceprobe+0x40e/0x8d0
The use of sdmamaplock in sdmaclean() is for freeing the sdmamap memory, and sdmamap is not allocated/initialized until after sdmamaplock has been initialized. This code only needs to be run if sdmamap is not NULL, and so checking for that condition will avoid trying to use the lock before it is initialized.