Messages in this thread | | | Date | Sat, 26 May 2012 12:18:21 +0200 (CEST) | From | Thomas Gleixner <> | Subject | Re: [PATCH] x86: check for valid irq_cfg pointer in smp_irq_move_cleanup_interrupt |
| |
On Fri, 25 May 2012, Suresh Siddha wrote: > On Thu, 2012-05-24 at 21:16 +0200, Thomas Gleixner wrote: > There are other (not-so common) irq desc references, like in the > show_interrupts() (cat /proc/interrupts path) etc, that does things like > this in the process context: > > desc = irq_to_desc(i); > if (!desc) > return 0; > > raw_spin_lock_irqsave(&desc->lock, flags); > > May be we should introduce something like > get_irq_desc_locked()/put_irq_desc_locked() that can safely access the > irq desc with pre-emption/irq's disabled and lock it etc. And the > synchronize_sched() will enable the destroy_irq()/free_desc() to free it > safely etc.
I want to avoid that and instead use proper refcounting. The reason is that we want to move the irq descriptor when the affinity changes nodes, and for that we need refcounting anyway.
Thanks,
tglx
| |