Description
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 sdma_map_lock is initialized, the call to hfi1_free_devdata() 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: register_lock_class+0x11b/0x880 __lock_acquire+0xf3/0x7930 lock_acquire+0xff/0x2d0 _raw_spin_lock_irq+0x46/0x60 sdma_clean+0x42a/0x660 [hfi1] hfi1_free_devdata+0x3a7/0x420 [hfi1] init_one+0x867/0x11a0 [hfi1] pci_device_probe+0x40e/0x8d0 The use of sdma_map_lock in sdma_clean() is for freeing the sdma_map memory, and sdma_map is not allocated/initialized until after sdma_map_lock has been initialized. This code only needs to be run if sdma_map is not NULL, and so checking for that condition will avoid trying to use the lock before it is initialized.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
7724105686e718ac476a6ad3304fea2fbcfcffde to < 66090815a24ce14cf51ef5453fc0218fe8a39bc2affected7724105686e718ac476a6ad3304fea2fbcfcffde to < addb192000d8819c0b1553453994df9bb54c28dbaffected7724105686e718ac476a6ad3304fea2fbcfcffde to < fc0750e659db7b315bf6348902cc8ca3cdd4b8d8affected7724105686e718ac476a6ad3304fea2fbcfcffde to < ca55150bff5817af4f857a746ecab9862c23e12aaffected7724105686e718ac476a6ad3304fea2fbcfcffde to < 30eb275e7ed588270ae159cc590a96658e0cfd8faffected7724105686e718ac476a6ad3304fea2fbcfcffde to < 288d198f50434f29b4a26a9de4394ae2305ad8afaffected7724105686e718ac476a6ad3304fea2fbcfcffde to < 05c03dfd09c069c4ffd783b47b2da5dcc9421f2caffected
Linux Linux
Default version status: affected
4.3affected0 to < 4.3unaffected4.19.247 to ≤ 4.19.*unaffected5.4.198 to ≤ 5.4.*unaffected5.10.121 to ≤ 5.10.*unaffected5.15.46 to ≤ 5.15.*unaffected5.17.14 to ≤ 5.17.*unaffected5.18.3 to ≤ 5.18.*unaffected5.19 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/66090815a24ce14cf51ef5453fc0218fe8a39bc2 ↗
- https://git.kernel.org/stable/c/addb192000d8819c0b1553453994df9bb54c28db ↗
- https://git.kernel.org/stable/c/fc0750e659db7b315bf6348902cc8ca3cdd4b8d8 ↗
- https://git.kernel.org/stable/c/ca55150bff5817af4f857a746ecab9862c23e12a ↗
- https://git.kernel.org/stable/c/30eb275e7ed588270ae159cc590a96658e0cfd8f ↗
- https://git.kernel.org/stable/c/288d198f50434f29b4a26a9de4394ae2305ad8af ↗
- https://git.kernel.org/stable/c/05c03dfd09c069c4ffd783b47b2da5dcc9421f2c ↗