diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
commit | ada47b5fe13d89735805b566185f4885f5a3f750 (patch) | |
tree | 644b88f8a71896307d71438e9b3af49126ffb22b /kernel/irq/numa_migrate.c | |
parent | 43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff) | |
parent | 3280f21d43ee541f97f8cda5792150d2dbec20d5 (diff) |
Merge branch 'wip-2.6.34' into old-private-masterarchived-private-master
Diffstat (limited to 'kernel/irq/numa_migrate.c')
-rw-r--r-- | kernel/irq/numa_migrate.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/kernel/irq/numa_migrate.c b/kernel/irq/numa_migrate.c index 3fd30197da2e..65d3845665ac 100644 --- a/kernel/irq/numa_migrate.c +++ b/kernel/irq/numa_migrate.c | |||
@@ -6,6 +6,7 @@ | |||
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/irq.h> | 8 | #include <linux/irq.h> |
9 | #include <linux/slab.h> | ||
9 | #include <linux/module.h> | 10 | #include <linux/module.h> |
10 | #include <linux/random.h> | 11 | #include <linux/random.h> |
11 | #include <linux/interrupt.h> | 12 | #include <linux/interrupt.h> |
@@ -42,7 +43,7 @@ static bool init_copy_one_irq_desc(int irq, struct irq_desc *old_desc, | |||
42 | "for migration.\n", irq); | 43 | "for migration.\n", irq); |
43 | return false; | 44 | return false; |
44 | } | 45 | } |
45 | spin_lock_init(&desc->lock); | 46 | raw_spin_lock_init(&desc->lock); |
46 | desc->node = node; | 47 | desc->node = node; |
47 | lockdep_set_class(&desc->lock, &irq_desc_lock_class); | 48 | lockdep_set_class(&desc->lock, &irq_desc_lock_class); |
48 | init_copy_kstat_irqs(old_desc, desc, node, nr_cpu_ids); | 49 | init_copy_kstat_irqs(old_desc, desc, node, nr_cpu_ids); |
@@ -67,10 +68,10 @@ static struct irq_desc *__real_move_irq_desc(struct irq_desc *old_desc, | |||
67 | 68 | ||
68 | irq = old_desc->irq; | 69 | irq = old_desc->irq; |
69 | 70 | ||
70 | spin_lock_irqsave(&sparse_irq_lock, flags); | 71 | raw_spin_lock_irqsave(&sparse_irq_lock, flags); |
71 | 72 | ||
72 | /* We have to check it to avoid races with another CPU */ | 73 | /* We have to check it to avoid races with another CPU */ |
73 | desc = irq_desc_ptrs[irq]; | 74 | desc = irq_to_desc(irq); |
74 | 75 | ||
75 | if (desc && old_desc != desc) | 76 | if (desc && old_desc != desc) |
76 | goto out_unlock; | 77 | goto out_unlock; |
@@ -90,8 +91,8 @@ static struct irq_desc *__real_move_irq_desc(struct irq_desc *old_desc, | |||
90 | goto out_unlock; | 91 | goto out_unlock; |
91 | } | 92 | } |
92 | 93 | ||
93 | irq_desc_ptrs[irq] = desc; | 94 | replace_irq_desc(irq, desc); |
94 | spin_unlock_irqrestore(&sparse_irq_lock, flags); | 95 | raw_spin_unlock_irqrestore(&sparse_irq_lock, flags); |
95 | 96 | ||
96 | /* free the old one */ | 97 | /* free the old one */ |
97 | free_one_irq_desc(old_desc, desc); | 98 | free_one_irq_desc(old_desc, desc); |
@@ -100,7 +101,7 @@ static struct irq_desc *__real_move_irq_desc(struct irq_desc *old_desc, | |||
100 | return desc; | 101 | return desc; |
101 | 102 | ||
102 | out_unlock: | 103 | out_unlock: |
103 | spin_unlock_irqrestore(&sparse_irq_lock, flags); | 104 | raw_spin_unlock_irqrestore(&sparse_irq_lock, flags); |
104 | 105 | ||
105 | return desc; | 106 | return desc; |
106 | } | 107 | } |