[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