Skip to contentSkip to conversation

x86: reget cfg_new in case reuse/move irq_desc

PATCH In review Yinghai Lu 2 participants 2 messages Aug 4, 2009 – Aug 8, 2009 x86

lore
Share & tools
lore

Yinghai Lu

author
#0 lore raw

PATCH 1/1 x86: reget cfg_new in case reuse/move irq_desc

when irq_desc is moved, we need to make sure to use right cfg_new

---
 arch/x86/kernel/apic/io_apic.c |    1 +
 1 file changed, 1 insertion(+)
arch/x86/kernel/apic/io_apic.c +1 -0
Index: linux-2.6/arch/x86/kernel/apic/io_apic.c
===================================================================
@@ -3153,6 +3153,7 @@ unsigned int create_irq_nr(unsigned int
 			continue;
 
 		desc_new = move_irq_desc(desc_new, node);
+		cfg_new = desc_new->chip_data;
 
 		if (__assign_irq_vector(new, cfg_new, apic->target_cpus()) == 0)
 			irq = new;
#1 lore raw
Quoted 13 lines · Yinghai Lu

when irq_desc is moved, we need to make sure to use right cfg_new

---
 arch/x86/kernel/apic/io_apic.c |    1 +
 1 file changed, 1 insertion(+)

Index: linux-2.6/arch/x86/kernel/apic/io_apic.c
===================================================================

arch/x86/kernel/apic/io_apic.c unsigned int create_irq_nr(unsigned int · line 3157

Quoted 5 lines
arch/x86/kernel/apic/io_apic.c +1 -0
@@ -3153,6 +3153,7 @@ unsigned int create_irq_nr(unsigned int
 			continue;
 
 		desc_new = move_irq_desc(desc_new, node);
+		cfg_new = desc_new->chip_data;
 

i suspect we need this for .31? Did you see any actual bug due to this? (if yes, how did it look like?)

Ingo