diff --git a/arch/sparc/kernel/irq.c b/arch/sparc/kernel/irq.c index cbef5526a1a276306a657fadd2205563315c780a..b5e4ea9a45cea04edc26541af2d2a474459edbe1 100644 --- a/arch/sparc/kernel/irq.c +++ b/arch/sparc/kernel/irq.c @@ -111,6 +111,7 @@ static unsigned int leon_eirq; #ifdef CONFIG_IRQ_STATS_COLLECT #include <kernel/string.h> +#include <kernel/init.h> #include <kernel/sysctl.h> static struct { @@ -909,10 +910,7 @@ static int irq_dispatch_init(void) { size_t i; -#ifdef CONFIG_IRQ_STATS_COLLECT - struct sysset *sset; - struct sysobj *sobj; -#endif /* CONFIG_IRQ_STATS_COLLECT */ + irl_vector = (struct list_head *) @@ -956,7 +954,19 @@ static int irq_dispatch_init(void) list_add_tail(&irl_queue_pool[i].handler_node, &irq_queue_pool_head); + + + return 0; +} + + #ifdef CONFIG_IRQ_STATS_COLLECT +static int irq_dispatch_init_sysctl(void) +{ + struct sysset *sset; + struct sysobj *sobj; + + sset = sysset_create_and_add("irl", NULL, sys_set); sobj = sysobj_create(); @@ -974,10 +984,11 @@ static int irq_dispatch_init(void) sobj->sattr = eirl_attributes; sysobj_add(sobj, NULL, sset, "secondary"); -#endif /* CONFIG_IRQ_STATS_COLLECT */ return 0; } +fs_initcall(irq_dispatch_init_sysctl); +#endif /* CONFIG_IRQ_STATS_COLLECT */ /**