{"id":"CVE-2026-93815","published":"2026-09-24T17:17:15.010","lastModified":"2026-09-25T13:17:22.377","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: au1000: move free_irq out of the close-time spinlocked section\n\nau1000_close() calls free_irq() while aup->lock is still held with\nspin_lock_irqsave(). free_irq() can sleep because it takes the IRQ\ndescriptor request mutex, so it does not belong inside the close-time\nspinlocked section.\n\nThis was found by our static analysis tool and then confirmed by manual\nreview of the in-tree au1000_close() .ndo_stop path. The reviewed path\nkeeps aup->lock held across the MAC reset, queue stop and\nfree_irq(dev->irq, dev).\n\nA directed runtime validation kept that ndo_stop carrier and the same\nfree_irq(dev->irq, dev) operation under the driver lock. Lockdep reported\n\"BUG: sleeping function called from invalid context\" and \"Invalid wait\ncontext\" while free_irq() was taking desc->request_mutex, with\nau1000_close() and free_irq() on the stack.\n\nDrop aup->lock before freeing the IRQ. The protected close-time work still\nstops the device and queue before IRQ teardown, but the sleepable IRQ core\npath now runs outside the spinlocked section.","cvssScore":null,"cvssSeverity":null,"cvssVector":null,"cwes":[],"vendors":[],"products":[],"references":[{"url":"https://git.kernel.org/stable/c/4536667fba8ddbaff2f2a135080ae6aabf737b5e","tags":[]},{"url":"https://git.kernel.org/stable/c/f48763beab4eea41fc480c9702ec6eebe8d75e4f","tags":[]},{"url":"https://git.kernel.org/stable/c/fc2233f1ab2a1ca562869bca6987d7477671388c","tags":[]}],"exploitRefs":[],"hasPoc":false,"ai":null}