x86/apic: Only compile local function if used with !CONFIG_GENERIC_PENDING_IRQ
The local function io_apic_level_ack_pending() is only called from io_apic_level_ack_pending(). The later function is only compiled if CONFIG_GENERIC_PENDING_IRQ is defined. Move the io_apic_level_ack_pending() to the existing #ifdef CONFIG_GENERIC_PENDING_IRQ code block. This will remove the following warning message during compiling without CONFIG_GENERIC_PENDING_IRQ defined: * arch/x86/kernel/apic/io_apic.c:382: warning: ‘io_apic_level_ack_pending’ defined but not used Signed-off-by: Márton Németh <nm127@freemail.hu> Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com> Cc: Yinghai Lu <yinghai@kernel.org> Cc: Naga Chumbalkar <nagananda.chumbalkar@hp.com> Link: http://lkml.kernel.org/r/1336461860.2296.3.camel@sbsiddha-mobl2 Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
9438ef7f4e
commit
d1ecad6eee
1 changed files with 23 additions and 23 deletions
|
@ -346,29 +346,6 @@ void native_io_apic_modify(unsigned int apic, unsigned int reg, unsigned int val
|
||||||
writel(value, &io_apic->data);
|
writel(value, &io_apic->data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool io_apic_level_ack_pending(struct irq_cfg *cfg)
|
|
||||||
{
|
|
||||||
struct irq_pin_list *entry;
|
|
||||||
unsigned long flags;
|
|
||||||
|
|
||||||
raw_spin_lock_irqsave(&ioapic_lock, flags);
|
|
||||||
for_each_irq_pin(entry, cfg->irq_2_pin) {
|
|
||||||
unsigned int reg;
|
|
||||||
int pin;
|
|
||||||
|
|
||||||
pin = entry->pin;
|
|
||||||
reg = io_apic_read(entry->apic, 0x10 + pin*2);
|
|
||||||
/* Is the remote IRR bit set? */
|
|
||||||
if (reg & IO_APIC_REDIR_REMOTE_IRR) {
|
|
||||||
raw_spin_unlock_irqrestore(&ioapic_lock, flags);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
raw_spin_unlock_irqrestore(&ioapic_lock, flags);
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
union entry_union {
|
union entry_union {
|
||||||
struct { u32 w1, w2; };
|
struct { u32 w1, w2; };
|
||||||
struct IO_APIC_route_entry entry;
|
struct IO_APIC_route_entry entry;
|
||||||
|
@ -2519,6 +2496,29 @@ static void ack_apic_edge(struct irq_data *data)
|
||||||
atomic_t irq_mis_count;
|
atomic_t irq_mis_count;
|
||||||
|
|
||||||
#ifdef CONFIG_GENERIC_PENDING_IRQ
|
#ifdef CONFIG_GENERIC_PENDING_IRQ
|
||||||
|
static bool io_apic_level_ack_pending(struct irq_cfg *cfg)
|
||||||
|
{
|
||||||
|
struct irq_pin_list *entry;
|
||||||
|
unsigned long flags;
|
||||||
|
|
||||||
|
raw_spin_lock_irqsave(&ioapic_lock, flags);
|
||||||
|
for_each_irq_pin(entry, cfg->irq_2_pin) {
|
||||||
|
unsigned int reg;
|
||||||
|
int pin;
|
||||||
|
|
||||||
|
pin = entry->pin;
|
||||||
|
reg = io_apic_read(entry->apic, 0x10 + pin*2);
|
||||||
|
/* Is the remote IRR bit set? */
|
||||||
|
if (reg & IO_APIC_REDIR_REMOTE_IRR) {
|
||||||
|
raw_spin_unlock_irqrestore(&ioapic_lock, flags);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
raw_spin_unlock_irqrestore(&ioapic_lock, flags);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
static inline bool ioapic_irqd_mask(struct irq_data *data, struct irq_cfg *cfg)
|
static inline bool ioapic_irqd_mask(struct irq_data *data, struct irq_cfg *cfg)
|
||||||
{
|
{
|
||||||
/* If we are moving the irq we need to mask it */
|
/* If we are moving the irq we need to mask it */
|
||||||
|
|
Loading…
Add table
Reference in a new issue