On Wed, Mar 02, 2016 at 10:47:59AM +0800, MaJun wrote: > From: Ma Jun <majun...@huawei.com> > > The spin_lock/unlock_irq interface is not safe when this function is called > at some case which need irq disabled.
> For example: > spin_lock_irqsave() > | > request_irq() --> proc_alloc_inum() > | > spin_unlock_irqrestore() Do you even read your own patch? > if (!ida_pre_get(&proc_inum_ida, GFP_KERNEL)) ^^^^^^^^^^ This. It can block. You *can't* call that under spin_lock_irqsave(). At all. You also can't do request_irq() under a spinlock, no matter whether you disable irqs or not - it also blocks. So does proc_mkdir(), for that matter, and not only in proc_alloc_inum(). NAKed. Don't do it. request_irq() is not to be called under spinlocks, with or without irqs disabled.