Re: [PATCH platform-next v4 1/2] kernel/irq: Add generic interrupt storm detection mechanism
From: kernel test robot
Date: Thu Jan 15 2026 - 09:01:09 EST
Hi Ciju,
kernel test robot noticed the following build warnings:
[auto build test WARNING on linus/master]
[also build test WARNING on v6.19-rc5]
[cannot apply to tip/irq/core next-20260115]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Ciju-Rajan-K/kernel-irq-Add-generic-interrupt-storm-detection-mechanism/20260115-155438
base: linus/master
patch link: https://lore.kernel.org/r/20260115074909.245852-2-crajank%40nvidia.com
patch subject: [PATCH platform-next v4 1/2] kernel/irq: Add generic interrupt storm detection mechanism
config: arc-allnoconfig (https://download.01.org/0day-ci/archive/20260115/202601152136.LGHBo3k1-lkp@xxxxxxxxx/config)
compiler: arc-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260115/202601152136.LGHBo3k1-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202601152136.LGHBo3k1-lkp@xxxxxxxxx/
All warnings (new ones prefixed by >>):
>> kernel/irq/spurious.c:41:6: warning: no previous prototype for 'irq_register_storm_detection' [-Wmissing-prototypes]
41 | bool irq_register_storm_detection(unsigned int irq, unsigned int max_freq,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> kernel/irq/spurious.c:79:6: warning: no previous prototype for 'irq_unregister_storm_detection' [-Wmissing-prototypes]
79 | void irq_unregister_storm_detection(unsigned int irq)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/irq_register_storm_detection +41 kernel/irq/spurious.c
30
31
32 /**
33 * irq_register_storm_detection - register interrupt storm detection for an IRQ
34 * @irq: interrupt number
35 * @max_freq: maximum allowed frequency (interrupts per second)
36 * @cb: callback function to invoke when storm is detected
37 * @dev_id: device identifier passed to callback
38 *
39 * Returns: true on success, false on failure
40 */
> 41 bool irq_register_storm_detection(unsigned int irq, unsigned int max_freq,
42 irq_storm_cb_t cb, void *dev_id)
43 {
44 struct irq_storm *storm;
45 bool ret = false;
46
47 if (max_freq < IRQ_STORM_MIN_FREQ_HZ || !cb)
48 return false;
49
50 storm = kzalloc(sizeof(*storm), GFP_KERNEL);
51 if (!storm)
52 return false;
53
54 /* Adjust to count per 10ms */
55 storm->max_cnt = max_freq / (IRQ_STORM_MAX_FREQ_SCALE);
56 storm->cb = cb;
57 storm->dev_id = dev_id;
58
59 scoped_irqdesc_get_and_buslock(irq, IRQ_GET_DESC_CHECK_GLOBAL) {
60 if (scoped_irqdesc->action && !scoped_irqdesc->irq_storm) {
61 storm->last_cnt = scoped_irqdesc->tot_count;
62 storm->next_period = jiffies + msecs_to_jiffies(IRQ_STORM_PERIOD_WINDOW_MS);
63 scoped_irqdesc->irq_storm = storm;
64 ret = true;
65 }
66 }
67
68 if (!ret)
69 kfree(storm);
70
71 return ret;
72 }
73 EXPORT_SYMBOL_GPL(irq_register_storm_detection);
74
75 /**
76 * irq_unregister_storm_detection - unregister interrupt storm detection
77 * @irq: interrupt number
78 */
> 79 void irq_unregister_storm_detection(unsigned int irq)
80 {
81 scoped_irqdesc_get_and_buslock(irq, IRQ_GET_DESC_CHECK_GLOBAL) {
82 if (scoped_irqdesc->irq_storm) {
83 kfree(scoped_irqdesc->irq_storm);
84 scoped_irqdesc->irq_storm = NULL;
85 }
86 }
87 }
88 EXPORT_SYMBOL_GPL(irq_unregister_storm_detection);
89
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki