summaryrefslogtreecommitdiff
path: root/drivers/sh/intc/virq.c
diff options
context:
space:
mode:
authorJiang Liu <jiang.liu@linux.intel.com>2015-07-13 23:51:22 +0300
committerIngo Molnar <mingo@kernel.org>2015-07-29 11:08:07 +0300
commitd0abe2f3a9a541ded2e30ef7275f057fb7f0335a (patch)
tree6f2ab2f75dc9d5ec252bca53501165ef74e68e85 /drivers/sh/intc/virq.c
parentcde5c2756832089e35b0c50417cc2858630f2005 (diff)
downloadlinux-d0abe2f3a9a541ded2e30ef7275f057fb7f0335a.tar.xz
sh/irq: Use irq accessor functions instead of open coded access
This is a preparatory patch for refactoring the internals if irq_data. Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com> Cc: Simon Horman <horms@verge.net.au> Cc: Magnus Damm <magnus.damm@gmail.com> Link: http://lkml.kernel.org/r/20150713151626.616384365@linutronix.de Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'drivers/sh/intc/virq.c')
-rw-r--r--drivers/sh/intc/virq.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/sh/intc/virq.c b/drivers/sh/intc/virq.c
index f5f1b821241a..0f735301d3ec 100644
--- a/drivers/sh/intc/virq.c
+++ b/drivers/sh/intc/virq.c
@@ -83,12 +83,11 @@ EXPORT_SYMBOL_GPL(intc_irq_lookup);
static int add_virq_to_pirq(unsigned int irq, unsigned int virq)
{
- struct intc_virq_list **last, *entry;
- struct irq_data *data = irq_get_irq_data(irq);
+ struct intc_virq_list *entry;
+ struct intc_virq_list **last = NULL;
/* scan for duplicates */
- last = (struct intc_virq_list **)&data->handler_data;
- for_each_virq(entry, data->handler_data) {
+ for_each_virq(entry, irq_get_handler_data(irq)) {
if (entry->irq == virq)
return 0;
last = &entry->next;
@@ -102,7 +101,10 @@ static int add_virq_to_pirq(unsigned int irq, unsigned int virq)
entry->irq = virq;
- *last = entry;
+ if (last)
+ *last = entry;
+ else
+ irq_set_handler_data(irq, entry);
return 0;
}