Messages in this thread | | | Date | Sat, 25 Sep 2004 14:46:37 +0300 (EAT) | From | Zwane Mwaikambo <> | Subject | , : [PATCH] Updated patches for PCI IRQ resource deallocation support [3/3] |
| |
Hello Kenji,
On Fri, 24 Sep 2004, Kenji Kaneshige wrote:
> + /* > + * If interrupt handlers still exists on the irq > + * associated with the gsi, don't unregister the > + * interrupt. > + */ > + if (unlikely(idesc->action)) { > + iosapic_intr_info[vector].refcnt++; > + spin_unlock_irqrestore(&idesc->lock, flags); > + printk(KERN_WARNING "Cannot unregister GSI. IRQ %u is still in use.\n", irq); > + return; > + } > + > + /* Clear the interrupt controller descriptor. */ > + idesc->handler = &no_irq_type;
Hmm, what happens here if that vector was queued just before the local irq disable in spin_lock_irqsave(idesc->lock...) ? Then when we unlock we'll call do_IRQ to handle the irq associated with that vector. I haven't seen the usage but it appears that iosapic_unregister_intr requires some serialisation.
Thanks, Zwane - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |