[arm-platforms:hack/ppi 17/17] kernel/irq/manage.c:2619:22: warning: assignment makes pointer from integer without a cast
kernel test robot
lkp at intel.com
Fri Mar 28 05:32:38 PDT 2025
tree: https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git hack/ppi
head: e9141d0584201dc14a70533175804e111ab53f36
commit: e9141d0584201dc14a70533175804e111ab53f36 [17/17] WIP
config: sparc-randconfig-002-20250328 (https://download.01.org/0day-ci/archive/20250328/202503282049.7rjXBkvh-lkp@intel.com/config)
compiler: sparc-linux-gcc (GCC) 7.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250328/202503282049.7rjXBkvh-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503282049.7rjXBkvh-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from arch/sparc/include/asm/irq_32.h:16:0,
from arch/sparc/include/asm/irq.h:7,
from include/linux/irq.h:23,
from kernel/irq/manage.c:11:
include/linux/interrupt.h:130:2: error: expected identifier or '(' before 'struct'
struct irqaction *next;
^~~~~~
In file included from kernel/irq/manage.c:25:0:
kernel/irq/manage.c: In function 'irq_set_thread_affinity':
kernel/irq/internals.h:173:41: error: 'struct irqaction' has no member named 'next'
for (act = desc->action; act; act = act->next)
^
kernel/irq/manage.c:194:2: note: in expansion of macro 'for_each_action_of_desc'
for_each_action_of_desc(desc, action) {
^~~~~~~~~~~~~~~~~~~~~~~
kernel/irq/manage.c: In function 'irq_wake_thread':
kernel/irq/internals.h:173:41: error: 'struct irqaction' has no member named 'next'
for (act = desc->action; act; act = act->next)
^
kernel/irq/manage.c:1350:2: note: in expansion of macro 'for_each_action_of_desc'
for_each_action_of_desc(desc, action) {
^~~~~~~~~~~~~~~~~~~~~~~
kernel/irq/manage.c: In function '__setup_irq':
kernel/irq/manage.c:1662:18: error: 'struct irqaction' has no member named 'next'
old_ptr = &old->next;
^~
kernel/irq/manage.c: In function '__free_irq':
kernel/irq/manage.c:1902:23: error: 'struct irqaction' has no member named 'next'
action_ptr = &action->next;
^~
kernel/irq/manage.c:1906:22: error: 'struct irqaction' has no member named 'next'
*action_ptr = action->next;
^~
kernel/irq/manage.c: In function '__request_percpu_irq':
kernel/irq/manage.c:2619:24: error: implicit declaration of function 'alloc_cpumask'; did you mean 'alloc_cpumask_var'? [-Werror=implicit-function-declaration]
action->valid_mask = alloc_cpumask()
^~~~~~~~~~~~~
alloc_cpumask_var
>> kernel/irq/manage.c:2619:22: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
action->valid_mask = alloc_cpumask()
^
kernel/irq/manage.c:2620:2: error: expected ';' before '}' token
}
^
cc1: some warnings being treated as errors
vim +2619 kernel/irq/manage.c
2577
2578 /**
2579 * __request_percpu_irq - allocate a percpu interrupt line
2580 * @irq: Interrupt line to allocate
2581 * @handler: Function to be called when the IRQ occurs.
2582 * @flags: Interrupt type flags (IRQF_TIMER only)
2583 * @devname: An ascii name for the claiming device
2584 * @dev_id: A percpu cookie passed back to the handler function
2585 *
2586 * This call allocates interrupt resources and enables the
2587 * interrupt on the local CPU. If the interrupt is supposed to be
2588 * enabled on other CPUs, it has to be done on each CPU using
2589 * enable_percpu_irq().
2590 *
2591 * Dev_id must be globally unique. It is a per-cpu variable, and
2592 * the handler gets called with the interrupted CPU's instance of
2593 * that variable.
2594 */
2595 int __request_percpu_irq(unsigned int irq, irq_handler_t handler,
2596 unsigned long flags, const char *devname,
2597 const cpumask_t *valid_mask, void __percpu *dev_id)
2598 {
2599 struct irqaction *action;
2600 struct irq_desc *desc;
2601 int retval;
2602
2603 if (!dev_id)
2604 return -EINVAL;
2605
2606 desc = irq_to_desc(irq);
2607 if (!desc || !irq_settings_can_request(desc) ||
2608 !irq_settings_is_per_cpu_devid(desc))
2609 return -EINVAL;
2610
2611 if (flags && flags != IRQF_TIMER)
2612 return -EINVAL;
2613
2614 action = kzalloc(sizeof(struct irqaction), GFP_KERNEL);
2615 if (!action)
2616 return -ENOMEM;
2617
2618 if (valid_mask != cpu_possible_mask) {
> 2619 action->valid_mask = alloc_cpumask()
2620 }
2621
2622 action->handler = handler;
2623 action->flags = flags | IRQF_PERCPU | IRQF_NO_SUSPEND;
2624 action->name = devname;
2625 action->percpu_dev_id = dev_id;
2626
2627 retval = irq_chip_pm_get(&desc->irq_data);
2628 if (retval < 0) {
2629 kfree(action);
2630 return retval;
2631 }
2632
2633 retval = __setup_irq(irq, desc, action);
2634
2635 if (retval) {
2636 irq_chip_pm_put(&desc->irq_data);
2637 kfree(action);
2638 }
2639
2640 return retval;
2641 }
2642 EXPORT_SYMBOL_GPL(__request_percpu_irq);
2643
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the linux-arm-kernel
mailing list