On 2012/8/13 10:54, Luck, Tony wrote: >> vec = irq_to_vector(irq); >> list_for_each_entry(rte, &info->rtes, >> rte_list) { >> + if (rte->refcnt == NO_REF_RTE) >> + continue; >> + >> iosapic_write(rte->iosapic, >> IOSAPIC_RTE_LOW(rte->rte_index), >> IOSAPIC_MASK|vec); > > This will work - but is it papering over a problem when you removed the > iosapic? Should we really have removed this "rte" from rte_list when the > iosapic was removed? > > -Tony >
Hi Tony, Thanks for your comments, and sorry for the late reply. We only set rte->refcnt to NO_REF_RTE if no device attach to this RTE when unregister a GSI, and increase the rte->refcnt if the RTE is already existing when register a GSI, so "rte" will not removed from rte_list when the iosapic is removed. Actually, the rte_list will keep static when remove/add a existing iosapic after boot up. Should we remove the RTE from the rte_list? if yes, we will have more to do than this patch. Thanks Hanjun Guo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/