In the Linux kernel, the following vulnerability has been resolved:
net/smc: remove device from smcddevlist after failed device_add()
If the deviceadd() for a smcddev fails, there's no cleanup step that rolls back the earlier list_add(). The device subsequently gets freed, and we end up with a corrupted list.
Add some error handling that removes the device from the list.