In the Linux kernel, the following vulnerability has been resolved: can: mcp251x: fix deadlock in error path of mcp251xopen The mcp251xopen() function call freeirq() in its error path with the mpclock mutex held. But if an interrupt already occurred the interrupt handler will be waiting for the mpclock and freeirq() will deadlock waiting for the handler to finish. This issue is similar to the one fixed in commit 7dd9c26bd6cf ("can: mcp251x: fix deadlock if an interrupt occurs during mcp251xopen") but for the error path. To solve this issue move the call to freeirq() after the lock is released. Setting priv->force_quit = 1 beforehand ensure that the IRQ handler will exit right away once it acquired the lock.