genirq; Fix cleanup fallout

I missed the CONFIG_GENERIC_PENDING_IRQ dependency in the affinity
related functions and the IRQ_LEVEL propagation into irq_data
state. Did not pop up on my main test platforms. :(

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: David Daney <ddaney@caviumnetworks.com>

+10 -8
+2
kernel/irq/chip.c
··· 734 734 irqd_set(&desc->irq_data, IRQD_PER_CPU); 735 735 if (irq_settings_can_move_pcntxt(desc)) 736 736 irqd_set(&desc->irq_data, IRQD_MOVE_PCNTXT); 737 + if (irq_settings_is_level(desc)) 738 + irqd_set(&desc->irq_data, IRQD_LEVEL); 737 739 738 740 irqd_set(&desc->irq_data, irq_settings_get_trigger_mask(desc)); 739 741
+8 -8
kernel/irq/manage.c
··· 112 112 } 113 113 114 114 #ifdef CONFIG_GENERIC_PENDING_IRQ 115 - static inline bool irq_can_move_pcntxt(struct irq_desc *desc) 115 + static inline bool irq_can_move_pcntxt(struct irq_data *data) 116 116 { 117 - return irq_settings_can_move_pcntxt(desc); 117 + return irqd_can_move_in_process_context(data); 118 118 } 119 - static inline bool irq_move_pending(struct irq_desc *desc) 119 + static inline bool irq_move_pending(struct irq_data *data) 120 120 { 121 - return irqd_is_setaffinity_pending(&desc->irq_data); 121 + return irqd_is_setaffinity_pending(data); 122 122 } 123 123 static inline void 124 124 irq_copy_pending(struct irq_desc *desc, const struct cpumask *mask) ··· 131 131 cpumask_copy(mask, desc->pending_mask); 132 132 } 133 133 #else 134 - static inline bool irq_can_move_pcntxt(struct irq_desc *desc) { return true; } 135 - static inline bool irq_move_pending(struct irq_desc *desc) { return false; } 134 + static inline bool irq_can_move_pcntxt(struct irq_data *data) { return true; } 135 + static inline bool irq_move_pending(struct irq_desc *data) { return false; } 136 136 static inline void 137 137 irq_copy_pending(struct irq_desc *desc, const struct cpumask *mask) { } 138 138 static inline void ··· 148 148 if (!chip || !chip->irq_set_affinity) 149 149 return -EINVAL; 150 150 151 - if (irqd_can_move_in_process_context(data)) { 151 + if (irq_can_move_pcntxt(data)) { 152 152 ret = chip->irq_set_affinity(data, mask, false); 153 153 switch (ret) { 154 154 case IRQ_SET_MASK_OK: ··· 218 218 goto out; 219 219 220 220 raw_spin_lock_irqsave(&desc->lock, flags); 221 - if (irq_move_pending(desc)) 221 + if (irq_move_pending(&desc->irq_data)) 222 222 irq_get_pending(cpumask, desc); 223 223 else 224 224 cpumask_copy(cpumask, desc->irq_data.affinity);