X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=src%2Fwrapper%2Firqdesc.c;h=b77b044b7d8fe543d8af450bfd0b3c93b706273f;hb=92e2c5feecb39cdd4796da89f2b684e395403040;hp=7135c5447421a1f47554abb80ba7ad0340e0bfeb;hpb=0193412d9db9b24752bd1fbcabc7d1cc74c270c4;p=lttng-modules.git diff --git a/src/wrapper/irqdesc.c b/src/wrapper/irqdesc.c index 7135c544..b77b044b 100644 --- a/src/wrapper/irqdesc.c +++ b/src/wrapper/irqdesc.c @@ -4,7 +4,7 @@ * * wrapper around irq_to_desc. Using KALLSYMS to get its address when * available, else we need to have a kernel that exports this function to GPL - * modules. This export was added to the 3.4 kernels. + * modules. This export was added to the 3.4 kernels and removed in 5.11. * * Copyright (C) 2011-2012 Mathieu Desnoyers */ @@ -12,8 +12,8 @@ #include #include -#if (defined(CONFIG_KALLSYMS) \ - && (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0))) +#if (defined(CONFIG_KALLSYMS) && \ + (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))) #include #include @@ -29,7 +29,13 @@ struct irq_desc *wrapper_irq_to_desc(unsigned int irq) if (!irq_to_desc_sym) irq_to_desc_sym = (void *) kallsyms_lookup_funcptr("irq_to_desc"); if (irq_to_desc_sym) { - return irq_to_desc_sym(irq); + struct irq_ibt_state irq_ibt_state; + struct irq_desc *ret; + + irq_ibt_state = wrapper_irq_ibt_save(); + ret = irq_to_desc_sym(irq); + wrapper_irq_ibt_restore(irq_ibt_state); + return ret; } else { printk_once(KERN_WARNING "LTTng: irq_to_desc symbol lookup failed.\n"); return NULL;