All of lore.kernel.org
 help / color / mirror / Atom feed
* [arm-platforms:irq/domain_cleanup 14/20] include/linux/irqdesc.h:56:25: error: field 'irq_common_data' has incomplete type
@ 2021-05-14  9:08 ` kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-05-14  9:08 UTC (permalink / raw)
  To: Marc Zyngier; +Cc: kbuild-all, linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 34564 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git irq/domain_cleanup
head:   76a98e310bbd7bada3f24d6fda08858460fd6cd4
commit: 5dd760fc3140b85b7d8cf1ad003238c5a223fc76 [14/20] irqdomain: Introduce irq_resolve_mapping()
config: mips-randconfig-m031-20210514 (attached as .config)
compiler: mips-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git/commit/?id=5dd760fc3140b85b7d8cf1ad003238c5a223fc76
        git remote add arm-platforms https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git
        git fetch --no-tags arm-platforms irq/domain_cleanup
        git checkout 5dd760fc3140b85b7d8cf1ad003238c5a223fc76
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from include/linux/irqdomain.h:35,
                    from arch/mips/include/asm/irq.h:14,
                    from include/linux/irq.h:23,
                    from include/asm-generic/hardirq.h:17,
                    from arch/mips/include/asm/hardirq.h:16,
                    from include/linux/hardirq.h:11,
                    from include/linux/interrupt.h:11,
                    from include/linux/kernel_stat.h:9,
                    from include/linux/cgroup.h:26,
                    from include/linux/memcontrol.h:13,
                    from include/linux/swap.h:9,
                    from include/linux/suspend.h:5,
                    from arch/mips/kernel/asm-offsets.c:17:
>> include/linux/irqdesc.h:56:25: error: field 'irq_common_data' has incomplete type
      56 |  struct irq_common_data irq_common_data;
         |                         ^~~~~~~~~~~~~~~
>> include/linux/irqdesc.h:57:19: error: field 'irq_data' has incomplete type
      57 |  struct irq_data  irq_data;
         |                   ^~~~~~~~
>> include/linux/irqdesc.h:113:33: error: 'NR_IRQS' undeclared here (not in a function)
     113 | extern struct irq_desc irq_desc[NR_IRQS];
         |                                 ^~~~~~~
   In file included from include/linux/list.h:9,
                    from include/linux/smp.h:12,
                    from arch/mips/include/asm/cpu-type.h:12,
                    from arch/mips/include/asm/timex.h:19,
                    from include/linux/timex.h:65,
                    from include/linux/time32.h:13,
                    from include/linux/time.h:60,
                    from include/linux/compat.h:10,
                    from arch/mips/kernel/asm-offsets.c:12:
   include/linux/irqdesc.h: In function 'irq_data_to_desc':
>> include/linux/irqdesc.h:124:26: error: dereferencing pointer to incomplete type 'struct irq_data'
     124 |  return container_of(data->common, struct irq_desc, irq_common_data);
         |                          ^~
   include/linux/kernel.h:703:26: note: in definition of macro 'container_of'
     703 |  void *__mptr = (void *)(ptr);     \
         |                          ^~~
   In file included from include/linux/irqdomain.h:35,
                    from arch/mips/include/asm/irq.h:14,
                    from include/linux/irq.h:23,
                    from include/asm-generic/hardirq.h:17,
                    from arch/mips/include/asm/hardirq.h:16,
                    from include/linux/hardirq.h:11,
                    from include/linux/interrupt.h:11,
                    from include/linux/kernel_stat.h:9,
                    from include/linux/cgroup.h:26,
                    from include/linux/memcontrol.h:13,
                    from include/linux/swap.h:9,
                    from include/linux/suspend.h:5,
                    from arch/mips/kernel/asm-offsets.c:17:
   include/linux/irqdesc.h: In function 'irq_balancing_disabled':
>> include/linux/irqdesc.h:236:35: error: 'IRQ_NO_BALANCING_MASK' undeclared (first use in this function)
     236 |  return irq_check_status_bit(irq, IRQ_NO_BALANCING_MASK);
         |                                   ^~~~~~~~~~~~~~~~~~~~~
   include/linux/irqdesc.h:236:35: note: each undeclared identifier is reported only once for each function it appears in
   include/linux/irqdesc.h: In function 'irq_is_percpu':
>> include/linux/irqdesc.h:241:35: error: 'IRQ_PER_CPU' undeclared (first use in this function)
     241 |  return irq_check_status_bit(irq, IRQ_PER_CPU);
         |                                   ^~~~~~~~~~~
   include/linux/irqdesc.h: In function 'irq_is_percpu_devid':
>> include/linux/irqdesc.h:246:35: error: 'IRQ_PER_CPU_DEVID' undeclared (first use in this function)
     246 |  return irq_check_status_bit(irq, IRQ_PER_CPU_DEVID);
         |                                   ^~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c: At top level:
   arch/mips/kernel/asm-offsets.c:26:6: warning: no previous prototype for 'output_ptreg_defines' [-Wmissing-prototypes]
      26 | void output_ptreg_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:78:6: warning: no previous prototype for 'output_task_defines' [-Wmissing-prototypes]
      78 | void output_task_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:93:6: warning: no previous prototype for 'output_thread_info_defines' [-Wmissing-prototypes]
      93 | void output_thread_info_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:109:6: warning: no previous prototype for 'output_thread_defines' [-Wmissing-prototypes]
     109 | void output_thread_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:137:6: warning: no previous prototype for 'output_thread_fpu_defines' [-Wmissing-prototypes]
     137 | void output_thread_fpu_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:180:6: warning: no previous prototype for 'output_mm_defines' [-Wmissing-prototypes]
     180 | void output_mm_defines(void)
         |      ^~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:219:6: warning: no previous prototype for 'output_sc_defines' [-Wmissing-prototypes]
     219 | void output_sc_defines(void)
         |      ^~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:254:6: warning: no previous prototype for 'output_signal_defined' [-Wmissing-prototypes]
     254 | void output_signal_defined(void)
         |      ^~~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:333:6: warning: no previous prototype for 'output_pm_defines' [-Wmissing-prototypes]
     333 | void output_pm_defines(void)
         |      ^~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:347:6: warning: no previous prototype for 'output_kvm_defines' [-Wmissing-prototypes]
     347 | void output_kvm_defines(void)
         |      ^~~~~~~~~~~~~~~~~~
--
   In file included from include/linux/irqdomain.h:35,
                    from arch/mips/include/asm/irq.h:14,
                    from include/linux/irq.h:23,
                    from include/asm-generic/hardirq.h:17,
                    from arch/mips/include/asm/hardirq.h:16,
                    from include/linux/hardirq.h:11,
                    from include/linux/interrupt.h:11,
                    from include/linux/kernel_stat.h:9,
                    from include/linux/cgroup.h:26,
                    from include/linux/memcontrol.h:13,
                    from include/linux/swap.h:9,
                    from include/linux/suspend.h:5,
                    from arch/mips/kernel/asm-offsets.c:17:
>> include/linux/irqdesc.h:56:25: error: field 'irq_common_data' has incomplete type
      56 |  struct irq_common_data irq_common_data;
         |                         ^~~~~~~~~~~~~~~
>> include/linux/irqdesc.h:57:19: error: field 'irq_data' has incomplete type
      57 |  struct irq_data  irq_data;
         |                   ^~~~~~~~
>> include/linux/irqdesc.h:113:33: error: 'NR_IRQS' undeclared here (not in a function)
     113 | extern struct irq_desc irq_desc[NR_IRQS];
         |                                 ^~~~~~~
   In file included from include/linux/list.h:9,
                    from include/linux/smp.h:12,
                    from arch/mips/include/asm/cpu-type.h:12,
                    from arch/mips/include/asm/timex.h:19,
                    from include/linux/timex.h:65,
                    from include/linux/time32.h:13,
                    from include/linux/time.h:60,
                    from include/linux/compat.h:10,
                    from arch/mips/kernel/asm-offsets.c:12:
   include/linux/irqdesc.h: In function 'irq_data_to_desc':
>> include/linux/irqdesc.h:124:26: error: dereferencing pointer to incomplete type 'struct irq_data'
     124 |  return container_of(data->common, struct irq_desc, irq_common_data);
         |                          ^~
   include/linux/kernel.h:703:26: note: in definition of macro 'container_of'
     703 |  void *__mptr = (void *)(ptr);     \
         |                          ^~~
   In file included from include/linux/irqdomain.h:35,
                    from arch/mips/include/asm/irq.h:14,
                    from include/linux/irq.h:23,
                    from include/asm-generic/hardirq.h:17,
                    from arch/mips/include/asm/hardirq.h:16,
                    from include/linux/hardirq.h:11,
                    from include/linux/interrupt.h:11,
                    from include/linux/kernel_stat.h:9,
                    from include/linux/cgroup.h:26,
                    from include/linux/memcontrol.h:13,
                    from include/linux/swap.h:9,
                    from include/linux/suspend.h:5,
                    from arch/mips/kernel/asm-offsets.c:17:
   include/linux/irqdesc.h: In function 'irq_balancing_disabled':
>> include/linux/irqdesc.h:236:35: error: 'IRQ_NO_BALANCING_MASK' undeclared (first use in this function)
     236 |  return irq_check_status_bit(irq, IRQ_NO_BALANCING_MASK);
         |                                   ^~~~~~~~~~~~~~~~~~~~~
   include/linux/irqdesc.h:236:35: note: each undeclared identifier is reported only once for each function it appears in
   include/linux/irqdesc.h: In function 'irq_is_percpu':
>> include/linux/irqdesc.h:241:35: error: 'IRQ_PER_CPU' undeclared (first use in this function)
     241 |  return irq_check_status_bit(irq, IRQ_PER_CPU);
         |                                   ^~~~~~~~~~~
   include/linux/irqdesc.h: In function 'irq_is_percpu_devid':
>> include/linux/irqdesc.h:246:35: error: 'IRQ_PER_CPU_DEVID' undeclared (first use in this function)
     246 |  return irq_check_status_bit(irq, IRQ_PER_CPU_DEVID);
         |                                   ^~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c: At top level:
   arch/mips/kernel/asm-offsets.c:26:6: warning: no previous prototype for 'output_ptreg_defines' [-Wmissing-prototypes]
      26 | void output_ptreg_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:78:6: warning: no previous prototype for 'output_task_defines' [-Wmissing-prototypes]
      78 | void output_task_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:93:6: warning: no previous prototype for 'output_thread_info_defines' [-Wmissing-prototypes]
      93 | void output_thread_info_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:109:6: warning: no previous prototype for 'output_thread_defines' [-Wmissing-prototypes]
     109 | void output_thread_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:137:6: warning: no previous prototype for 'output_thread_fpu_defines' [-Wmissing-prototypes]
     137 | void output_thread_fpu_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:180:6: warning: no previous prototype for 'output_mm_defines' [-Wmissing-prototypes]
     180 | void output_mm_defines(void)
         |      ^~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:219:6: warning: no previous prototype for 'output_sc_defines' [-Wmissing-prototypes]
     219 | void output_sc_defines(void)
         |      ^~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:254:6: warning: no previous prototype for 'output_signal_defined' [-Wmissing-prototypes]
     254 | void output_signal_defined(void)
         |      ^~~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:333:6: warning: no previous prototype for 'output_pm_defines' [-Wmissing-prototypes]
     333 | void output_pm_defines(void)
         |      ^~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:347:6: warning: no previous prototype for 'output_kvm_defines' [-Wmissing-prototypes]
     347 | void output_kvm_defines(void)
         |      ^~~~~~~~~~~~~~~~~~
   make[2]: *** [scripts/Makefile.build:117: arch/mips/kernel/asm-offsets.s] Error 1
   make[2]: Target '__build' not remade because of errors.
   make[1]: *** [Makefile:1227: prepare0] Error 2
   make[1]: Target 'prepare' not remade because of errors.
   make: *** [Makefile:215: __sub-make] Error 2
   make: Target 'prepare' not remade because of errors.


vim +/irq_common_data +56 include/linux/irqdesc.h

293a7a0a165c4f Thomas Gleixner           2012-10-16   19  
e144710b302525 Thomas Gleixner           2010-10-01   20  /**
e144710b302525 Thomas Gleixner           2010-10-01   21   * struct irq_desc - interrupt descriptor
0d0b4c866bcce6 Jiang Liu                 2015-06-01   22   * @irq_common_data:	per irq and chip data passed down to chip functions
e144710b302525 Thomas Gleixner           2010-10-01   23   * @kstat_irqs:		irq stats per cpu
770767787c2304 Geert Uytterhoeven        2011-04-10   24   * @handle_irq:		highlevel irq-events handler
e144710b302525 Thomas Gleixner           2010-10-01   25   * @action:		the irq action chain
80ebc420ec59a7 Yunfeng Ye                2019-09-18   26   * @status_use_accessors: status information
dbec07bac614a6 Thomas Gleixner           2011-02-07   27   * @core_internal_state__do_not_mess_with_it: core internal status information
e144710b302525 Thomas Gleixner           2010-10-01   28   * @depth:		disable-depth, for nested irq_disable() calls
0911f124bf5535 Geert Uytterhoeven        2011-04-10   29   * @wake_depth:		enable depth, for multiple irq_set_irq_wake() callers
030fc443aef663 Waiman Long               2019-02-12   30   * @tot_count:		stats field for non-percpu irqs
e144710b302525 Thomas Gleixner           2010-10-01   31   * @irq_count:		stats field to detect stalled irqs
e144710b302525 Thomas Gleixner           2010-10-01   32   * @last_unhandled:	aging timer for unhandled count
e144710b302525 Thomas Gleixner           2010-10-01   33   * @irqs_unhandled:	stats field for spurious unhandled interrupts
1e77d0a1ed7417 Thomas Gleixner           2013-03-07   34   * @threads_handled:	stats field for deferred spurious detection of threaded handlers
a359f757965aaf Ingo Molnar               2021-03-22   35   * @threads_handled_last: comparator field for deferred spurious detection of threaded handlers
e144710b302525 Thomas Gleixner           2010-10-01   36   * @lock:		locking for SMP
770767787c2304 Geert Uytterhoeven        2011-04-10   37   * @affinity_hint:	hint to user space for preferred irq affinity
cd7eab44e9946c Ben Hutchings             2011-01-19   38   * @affinity_notify:	context for notification of affinity changes
e144710b302525 Thomas Gleixner           2010-10-01   39   * @pending_mask:	pending rebalanced interrupts
b5faba21a6805c Thomas Gleixner           2011-02-23   40   * @threads_oneshot:	bitfield to handle shared oneshot threads
e144710b302525 Thomas Gleixner           2010-10-01   41   * @threads_active:	number of irqaction threads currently running
e144710b302525 Thomas Gleixner           2010-10-01   42   * @wait_for_threads:	wait queue for sync_irq to wait for threaded handlers
cab303be91dc47 Thomas Gleixner           2014-08-28   43   * @nr_actions:		number of installed actions on this descriptor
cab303be91dc47 Thomas Gleixner           2014-08-28   44   * @no_suspend_depth:	number of irqactions on a irq descriptor with
cab303be91dc47 Thomas Gleixner           2014-08-28   45   *			IRQF_NO_SUSPEND set
cab303be91dc47 Thomas Gleixner           2014-08-28   46   * @force_resume_depth:	number of irqactions on a irq descriptor with
cab303be91dc47 Thomas Gleixner           2014-08-28   47   *			IRQF_FORCE_RESUME set
425a5072dcd1bd Thomas Gleixner           2015-12-13   48   * @rcu:		rcu head for delayed free
ecb3f394c5dba8 Craig Gallek              2016-09-13   49   * @kobj:		kobject used to represent this struct in sysfs
9114014cf4e6df Thomas Gleixner           2017-06-29   50   * @request_mutex:	mutex to protect request/free before locking desc->lock
e144710b302525 Thomas Gleixner           2010-10-01   51   * @dir:		/proc/irq/ procfs entry
087cdfb662ae50 Thomas Gleixner           2017-06-20   52   * @debugfs_file:	dentry for the debugfs file
e144710b302525 Thomas Gleixner           2010-10-01   53   * @name:		flow handler name for /proc/interrupts output
e144710b302525 Thomas Gleixner           2010-10-01   54   */
e144710b302525 Thomas Gleixner           2010-10-01   55  struct irq_desc {
0d0b4c866bcce6 Jiang Liu                 2015-06-01  @56  	struct irq_common_data	irq_common_data;
e144710b302525 Thomas Gleixner           2010-10-01  @57  	struct irq_data		irq_data;
6c9ae009b29875 Eric Dumazet              2011-01-13   58  	unsigned int __percpu	*kstat_irqs;
e144710b302525 Thomas Gleixner           2010-10-01   59  	irq_flow_handler_t	handle_irq;
e144710b302525 Thomas Gleixner           2010-10-01   60  	struct irqaction	*action;	/* IRQ action list */
a6967caf00ebbb Thomas Gleixner           2011-02-10   61  	unsigned int		status_use_accessors;
dbec07bac614a6 Thomas Gleixner           2011-02-07   62  	unsigned int		core_internal_state__do_not_mess_with_it;
e144710b302525 Thomas Gleixner           2010-10-01   63  	unsigned int		depth;		/* nested irq disables */
e144710b302525 Thomas Gleixner           2010-10-01   64  	unsigned int		wake_depth;	/* nested wake enables */
1136b072896990 Thomas Gleixner           2019-02-08   65  	unsigned int		tot_count;
e144710b302525 Thomas Gleixner           2010-10-01   66  	unsigned int		irq_count;	/* For detecting broken IRQs */
e144710b302525 Thomas Gleixner           2010-10-01   67  	unsigned long		last_unhandled;	/* Aging timer for unhandled count */
e144710b302525 Thomas Gleixner           2010-10-01   68  	unsigned int		irqs_unhandled;
1e77d0a1ed7417 Thomas Gleixner           2013-03-07   69  	atomic_t		threads_handled;
1e77d0a1ed7417 Thomas Gleixner           2013-03-07   70  	int			threads_handled_last;
e144710b302525 Thomas Gleixner           2010-10-01   71  	raw_spinlock_t		lock;
31d9d9b6d83030 Marc Zyngier              2011-09-23   72  	struct cpumask		*percpu_enabled;
222df54fd8b764 Marc Zyngier              2016-04-11   73  	const struct cpumask	*percpu_affinity;
e144710b302525 Thomas Gleixner           2010-10-01   74  #ifdef CONFIG_SMP
e144710b302525 Thomas Gleixner           2010-10-01   75  	const struct cpumask	*affinity_hint;
cd7eab44e9946c Ben Hutchings             2011-01-19   76  	struct irq_affinity_notify *affinity_notify;
e144710b302525 Thomas Gleixner           2010-10-01   77  #ifdef CONFIG_GENERIC_PENDING_IRQ
e144710b302525 Thomas Gleixner           2010-10-01   78  	cpumask_var_t		pending_mask;
e144710b302525 Thomas Gleixner           2010-10-01   79  #endif
e144710b302525 Thomas Gleixner           2010-10-01   80  #endif
b5faba21a6805c Thomas Gleixner           2011-02-23   81  	unsigned long		threads_oneshot;
e144710b302525 Thomas Gleixner           2010-10-01   82  	atomic_t		threads_active;
e144710b302525 Thomas Gleixner           2010-10-01   83  	wait_queue_head_t       wait_for_threads;
cab303be91dc47 Thomas Gleixner           2014-08-28   84  #ifdef CONFIG_PM_SLEEP
cab303be91dc47 Thomas Gleixner           2014-08-28   85  	unsigned int		nr_actions;
cab303be91dc47 Thomas Gleixner           2014-08-28   86  	unsigned int		no_suspend_depth;
17f480342026e5 Rafael J. Wysocki         2015-02-27   87  	unsigned int		cond_suspend_depth;
cab303be91dc47 Thomas Gleixner           2014-08-28   88  	unsigned int		force_resume_depth;
cab303be91dc47 Thomas Gleixner           2014-08-28   89  #endif
e144710b302525 Thomas Gleixner           2010-10-01   90  #ifdef CONFIG_PROC_FS
e144710b302525 Thomas Gleixner           2010-10-01   91  	struct proc_dir_entry	*dir;
425a5072dcd1bd Thomas Gleixner           2015-12-13   92  #endif
087cdfb662ae50 Thomas Gleixner           2017-06-20   93  #ifdef CONFIG_GENERIC_IRQ_DEBUGFS
087cdfb662ae50 Thomas Gleixner           2017-06-20   94  	struct dentry		*debugfs_file;
07557ccb8c83f3 Thomas Gleixner           2017-09-13   95  	const char		*dev_name;
087cdfb662ae50 Thomas Gleixner           2017-06-20   96  #endif
425a5072dcd1bd Thomas Gleixner           2015-12-13   97  #ifdef CONFIG_SPARSE_IRQ
425a5072dcd1bd Thomas Gleixner           2015-12-13   98  	struct rcu_head		rcu;
ecb3f394c5dba8 Craig Gallek              2016-09-13   99  	struct kobject		kobj;
e144710b302525 Thomas Gleixner           2010-10-01  100  #endif
9114014cf4e6df Thomas Gleixner           2017-06-29  101  	struct mutex		request_mutex;
293a7a0a165c4f Thomas Gleixner           2012-10-16  102  	int			parent_irq;
b6873807a7143b Sebastian Andrzej Siewior 2011-07-11  103  	struct module		*owner;
e144710b302525 Thomas Gleixner           2010-10-01  104  	const char		*name;
e144710b302525 Thomas Gleixner           2010-10-01  105  } ____cacheline_internodealigned_in_smp;
e144710b302525 Thomas Gleixner           2010-10-01  106  
a899418167264c Thomas Gleixner           2015-07-05  107  #ifdef CONFIG_SPARSE_IRQ
a899418167264c Thomas Gleixner           2015-07-05  108  extern void irq_lock_sparse(void);
a899418167264c Thomas Gleixner           2015-07-05  109  extern void irq_unlock_sparse(void);
a899418167264c Thomas Gleixner           2015-07-05  110  #else
a899418167264c Thomas Gleixner           2015-07-05  111  static inline void irq_lock_sparse(void) { }
a899418167264c Thomas Gleixner           2015-07-05  112  static inline void irq_unlock_sparse(void) { }
e144710b302525 Thomas Gleixner           2010-10-01 @113  extern struct irq_desc irq_desc[NR_IRQS];
e144710b302525 Thomas Gleixner           2010-10-01  114  #endif
e144710b302525 Thomas Gleixner           2010-10-01  115  
501e2db67fa426 Thomas Gleixner           2020-12-10  116  static inline unsigned int irq_desc_kstat_cpu(struct irq_desc *desc,
501e2db67fa426 Thomas Gleixner           2020-12-10  117  					      unsigned int cpu)
501e2db67fa426 Thomas Gleixner           2020-12-10  118  {
501e2db67fa426 Thomas Gleixner           2020-12-10  119  	return desc->kstat_irqs ? *per_cpu_ptr(desc->kstat_irqs, cpu) : 0;
501e2db67fa426 Thomas Gleixner           2020-12-10  120  }
501e2db67fa426 Thomas Gleixner           2020-12-10  121  
7bbf1dd24b17b9 Jiang Liu                 2015-06-01  122  static inline struct irq_desc *irq_data_to_desc(struct irq_data *data)
7bbf1dd24b17b9 Jiang Liu                 2015-06-01  123  {
755d119a620497 Thomas Gleixner           2015-09-16 @124  	return container_of(data->common, struct irq_desc, irq_common_data);
7bbf1dd24b17b9 Jiang Liu                 2015-06-01  125  }
7bbf1dd24b17b9 Jiang Liu                 2015-06-01  126  
304adf8a8fff97 Jiang Liu                 2015-06-04  127  static inline unsigned int irq_desc_get_irq(struct irq_desc *desc)
304adf8a8fff97 Jiang Liu                 2015-06-04  128  {
304adf8a8fff97 Jiang Liu                 2015-06-04  129  	return desc->irq_data.irq;
304adf8a8fff97 Jiang Liu                 2015-06-04  130  }
304adf8a8fff97 Jiang Liu                 2015-06-04  131  
d9936bb3952a08 Thomas Gleixner           2011-03-11  132  static inline struct irq_data *irq_desc_get_irq_data(struct irq_desc *desc)
d9936bb3952a08 Thomas Gleixner           2011-03-11  133  {
d9936bb3952a08 Thomas Gleixner           2011-03-11  134  	return &desc->irq_data;
d9936bb3952a08 Thomas Gleixner           2011-03-11  135  }
d9936bb3952a08 Thomas Gleixner           2011-03-11  136  
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  137  static inline struct irq_chip *irq_desc_get_chip(struct irq_desc *desc)
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  138  {
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  139  	return desc->irq_data.chip;
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  140  }
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  141  
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  142  static inline void *irq_desc_get_chip_data(struct irq_desc *desc)
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  143  {
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  144  	return desc->irq_data.chip_data;
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  145  }
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  146  
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  147  static inline void *irq_desc_get_handler_data(struct irq_desc *desc)
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  148  {
af7080e040d223 Jiang Liu                 2015-06-01  149  	return desc->irq_common_data.handler_data;
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  150  }
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  151  
e144710b302525 Thomas Gleixner           2010-10-01  152  /*
e144710b302525 Thomas Gleixner           2010-10-01  153   * Architectures call this to let the generic IRQ layer
6584d84c3e504c Huang Shijie              2015-09-01  154   * handle an interrupt.
e144710b302525 Thomas Gleixner           2010-10-01  155   */
bd0b9ac405e179 Thomas Gleixner           2015-09-14  156  static inline void generic_handle_irq_desc(struct irq_desc *desc)
e144710b302525 Thomas Gleixner           2010-10-01  157  {
bd0b9ac405e179 Thomas Gleixner           2015-09-14  158  	desc->handle_irq(desc);
e144710b302525 Thomas Gleixner           2010-10-01  159  }
e144710b302525 Thomas Gleixner           2010-10-01  160  
fe12bc2c996d3e Thomas Gleixner           2011-05-18  161  int generic_handle_irq(unsigned int irq);
e144710b302525 Thomas Gleixner           2010-10-01  162  
76ba59f8366f2d Marc Zyngier              2014-08-26  163  #ifdef CONFIG_HANDLE_DOMAIN_IRQ
76ba59f8366f2d Marc Zyngier              2014-08-26  164  /*
76ba59f8366f2d Marc Zyngier              2014-08-26  165   * Convert a HW interrupt number to a logical one using a IRQ domain,
76ba59f8366f2d Marc Zyngier              2014-08-26  166   * and handle the result interrupt number. Return -EINVAL if
76ba59f8366f2d Marc Zyngier              2014-08-26  167   * conversion failed. Providing a NULL domain indicates that the
76ba59f8366f2d Marc Zyngier              2014-08-26  168   * conversion has already been done.
76ba59f8366f2d Marc Zyngier              2014-08-26  169   */
76ba59f8366f2d Marc Zyngier              2014-08-26  170  int __handle_domain_irq(struct irq_domain *domain, unsigned int hwirq,
76ba59f8366f2d Marc Zyngier              2014-08-26  171  			bool lookup, struct pt_regs *regs);
76ba59f8366f2d Marc Zyngier              2014-08-26  172  
76ba59f8366f2d Marc Zyngier              2014-08-26  173  static inline int handle_domain_irq(struct irq_domain *domain,
76ba59f8366f2d Marc Zyngier              2014-08-26  174  				    unsigned int hwirq, struct pt_regs *regs)
76ba59f8366f2d Marc Zyngier              2014-08-26  175  {
76ba59f8366f2d Marc Zyngier              2014-08-26  176  	return __handle_domain_irq(domain, hwirq, true, regs);
76ba59f8366f2d Marc Zyngier              2014-08-26  177  }
6e4933a0066163 Julien Thierry            2019-01-31  178  
6e4933a0066163 Julien Thierry            2019-01-31  179  #ifdef CONFIG_IRQ_DOMAIN
6e4933a0066163 Julien Thierry            2019-01-31  180  int handle_domain_nmi(struct irq_domain *domain, unsigned int hwirq,
6e4933a0066163 Julien Thierry            2019-01-31  181  		      struct pt_regs *regs);
6e4933a0066163 Julien Thierry            2019-01-31  182  #endif
76ba59f8366f2d Marc Zyngier              2014-08-26  183  #endif
76ba59f8366f2d Marc Zyngier              2014-08-26  184  
e144710b302525 Thomas Gleixner           2010-10-01  185  /* Test to see if a driver has successfully requested an irq */
f61ae4fb66a4f7 Thomas Gleixner           2015-08-02  186  static inline int irq_desc_has_action(struct irq_desc *desc)
e144710b302525 Thomas Gleixner           2010-10-01  187  {
a313357e704f26 Thomas Gleixner           2020-12-10  188  	return desc && desc->action != NULL;
f61ae4fb66a4f7 Thomas Gleixner           2015-08-02  189  }
f61ae4fb66a4f7 Thomas Gleixner           2015-08-02  190  
bbc9d21fc0071c Thomas Gleixner           2015-06-23  191  /**
bbc9d21fc0071c Thomas Gleixner           2015-06-23  192   * irq_set_handler_locked - Set irq handler from a locked region
bbc9d21fc0071c Thomas Gleixner           2015-06-23  193   * @data:	Pointer to the irq_data structure which identifies the irq
bbc9d21fc0071c Thomas Gleixner           2015-06-23  194   * @handler:	Flow control handler function for this interrupt
bbc9d21fc0071c Thomas Gleixner           2015-06-23  195   *
bbc9d21fc0071c Thomas Gleixner           2015-06-23  196   * Sets the handler in the irq descriptor associated to @data.
bbc9d21fc0071c Thomas Gleixner           2015-06-23  197   *
bbc9d21fc0071c Thomas Gleixner           2015-06-23  198   * Must be called with irq_desc locked and valid parameters. Typical
bbc9d21fc0071c Thomas Gleixner           2015-06-23  199   * call site is the irq_set_type() callback.
bbc9d21fc0071c Thomas Gleixner           2015-06-23  200   */
bbc9d21fc0071c Thomas Gleixner           2015-06-23  201  static inline void irq_set_handler_locked(struct irq_data *data,
bbc9d21fc0071c Thomas Gleixner           2015-06-23  202  					  irq_flow_handler_t handler)
bbc9d21fc0071c Thomas Gleixner           2015-06-23  203  {
bbc9d21fc0071c Thomas Gleixner           2015-06-23  204  	struct irq_desc *desc = irq_data_to_desc(data);
bbc9d21fc0071c Thomas Gleixner           2015-06-23  205  
bbc9d21fc0071c Thomas Gleixner           2015-06-23  206  	desc->handle_irq = handler;
bbc9d21fc0071c Thomas Gleixner           2015-06-23  207  }
bbc9d21fc0071c Thomas Gleixner           2015-06-23  208  
bbc9d21fc0071c Thomas Gleixner           2015-06-23  209  /**
bbc9d21fc0071c Thomas Gleixner           2015-06-23  210   * irq_set_chip_handler_name_locked - Set chip, handler and name from a locked region
bbc9d21fc0071c Thomas Gleixner           2015-06-23  211   * @data:	Pointer to the irq_data structure for which the chip is set
bbc9d21fc0071c Thomas Gleixner           2015-06-23  212   * @chip:	Pointer to the new irq chip
bbc9d21fc0071c Thomas Gleixner           2015-06-23  213   * @handler:	Flow control handler function for this interrupt
bbc9d21fc0071c Thomas Gleixner           2015-06-23  214   * @name:	Name of the interrupt
bbc9d21fc0071c Thomas Gleixner           2015-06-23  215   *
bbc9d21fc0071c Thomas Gleixner           2015-06-23  216   * Replace the irq chip at the proper hierarchy level in @data and
bbc9d21fc0071c Thomas Gleixner           2015-06-23  217   * sets the handler and name in the associated irq descriptor.
bbc9d21fc0071c Thomas Gleixner           2015-06-23  218   *
bbc9d21fc0071c Thomas Gleixner           2015-06-23  219   * Must be called with irq_desc locked and valid parameters.
bbc9d21fc0071c Thomas Gleixner           2015-06-23  220   */
bbc9d21fc0071c Thomas Gleixner           2015-06-23  221  static inline void
bbc9d21fc0071c Thomas Gleixner           2015-06-23  222  irq_set_chip_handler_name_locked(struct irq_data *data, struct irq_chip *chip,
bbc9d21fc0071c Thomas Gleixner           2015-06-23  223  				 irq_flow_handler_t handler, const char *name)
bbc9d21fc0071c Thomas Gleixner           2015-06-23  224  {
bbc9d21fc0071c Thomas Gleixner           2015-06-23  225  	struct irq_desc *desc = irq_data_to_desc(data);
bbc9d21fc0071c Thomas Gleixner           2015-06-23  226  
bbc9d21fc0071c Thomas Gleixner           2015-06-23  227  	desc->handle_irq = handler;
bbc9d21fc0071c Thomas Gleixner           2015-06-23  228  	desc->name = name;
bbc9d21fc0071c Thomas Gleixner           2015-06-23  229  	data->chip = chip;
bbc9d21fc0071c Thomas Gleixner           2015-06-23  230  }
bbc9d21fc0071c Thomas Gleixner           2015-06-23  231  
fdd029630434b4 Thomas Gleixner           2020-12-10  232  bool irq_check_status_bit(unsigned int irq, unsigned int bitmask);
fdd029630434b4 Thomas Gleixner           2020-12-10  233  
4ce413d1840b25 Will Deacon               2017-12-01  234  static inline bool irq_balancing_disabled(unsigned int irq)
e144710b302525 Thomas Gleixner           2010-10-01  235  {
fdd029630434b4 Thomas Gleixner           2020-12-10 @236  	return irq_check_status_bit(irq, IRQ_NO_BALANCING_MASK);
e144710b302525 Thomas Gleixner           2010-10-01  237  }
781295762defc7 Thomas Gleixner           2011-02-10  238  
4ce413d1840b25 Will Deacon               2017-12-01  239  static inline bool irq_is_percpu(unsigned int irq)
7f4a8e7b1943c1 Vinayak Kale              2013-12-04  240  {
fdd029630434b4 Thomas Gleixner           2020-12-10 @241  	return irq_check_status_bit(irq, IRQ_PER_CPU);
7f4a8e7b1943c1 Vinayak Kale              2013-12-04  242  }
7f4a8e7b1943c1 Vinayak Kale              2013-12-04  243  
4ce413d1840b25 Will Deacon               2017-12-01  244  static inline bool irq_is_percpu_devid(unsigned int irq)
08395c7f4d9f58 Julien Thierry            2017-10-13  245  {
fdd029630434b4 Thomas Gleixner           2020-12-10 @246  	return irq_check_status_bit(irq, IRQ_PER_CPU_DEVID);
08395c7f4d9f58 Julien Thierry            2017-10-13  247  }
08395c7f4d9f58 Julien Thierry            2017-10-13  248  

:::::: The code at line 56 was first introduced by commit
:::::: 0d0b4c866bcce647f40d73efe5e90aeeb079050a genirq: Introduce struct irq_common_data to host shared irq data

:::::: TO: Jiang Liu <jiang.liu@linux.intel.com>
:::::: CC: Thomas Gleixner <tglx@linutronix.de>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 31542 bytes --]

[-- Attachment #3: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [arm-platforms:irq/domain_cleanup 14/20] include/linux/irqdesc.h:56:25: error: field 'irq_common_data' has incomplete type
@ 2021-05-14  9:08 ` kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-05-14  9:08 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 35027 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git irq/domain_cleanup
head:   76a98e310bbd7bada3f24d6fda08858460fd6cd4
commit: 5dd760fc3140b85b7d8cf1ad003238c5a223fc76 [14/20] irqdomain: Introduce irq_resolve_mapping()
config: mips-randconfig-m031-20210514 (attached as .config)
compiler: mips-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git/commit/?id=5dd760fc3140b85b7d8cf1ad003238c5a223fc76
        git remote add arm-platforms https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git
        git fetch --no-tags arm-platforms irq/domain_cleanup
        git checkout 5dd760fc3140b85b7d8cf1ad003238c5a223fc76
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from include/linux/irqdomain.h:35,
                    from arch/mips/include/asm/irq.h:14,
                    from include/linux/irq.h:23,
                    from include/asm-generic/hardirq.h:17,
                    from arch/mips/include/asm/hardirq.h:16,
                    from include/linux/hardirq.h:11,
                    from include/linux/interrupt.h:11,
                    from include/linux/kernel_stat.h:9,
                    from include/linux/cgroup.h:26,
                    from include/linux/memcontrol.h:13,
                    from include/linux/swap.h:9,
                    from include/linux/suspend.h:5,
                    from arch/mips/kernel/asm-offsets.c:17:
>> include/linux/irqdesc.h:56:25: error: field 'irq_common_data' has incomplete type
      56 |  struct irq_common_data irq_common_data;
         |                         ^~~~~~~~~~~~~~~
>> include/linux/irqdesc.h:57:19: error: field 'irq_data' has incomplete type
      57 |  struct irq_data  irq_data;
         |                   ^~~~~~~~
>> include/linux/irqdesc.h:113:33: error: 'NR_IRQS' undeclared here (not in a function)
     113 | extern struct irq_desc irq_desc[NR_IRQS];
         |                                 ^~~~~~~
   In file included from include/linux/list.h:9,
                    from include/linux/smp.h:12,
                    from arch/mips/include/asm/cpu-type.h:12,
                    from arch/mips/include/asm/timex.h:19,
                    from include/linux/timex.h:65,
                    from include/linux/time32.h:13,
                    from include/linux/time.h:60,
                    from include/linux/compat.h:10,
                    from arch/mips/kernel/asm-offsets.c:12:
   include/linux/irqdesc.h: In function 'irq_data_to_desc':
>> include/linux/irqdesc.h:124:26: error: dereferencing pointer to incomplete type 'struct irq_data'
     124 |  return container_of(data->common, struct irq_desc, irq_common_data);
         |                          ^~
   include/linux/kernel.h:703:26: note: in definition of macro 'container_of'
     703 |  void *__mptr = (void *)(ptr);     \
         |                          ^~~
   In file included from include/linux/irqdomain.h:35,
                    from arch/mips/include/asm/irq.h:14,
                    from include/linux/irq.h:23,
                    from include/asm-generic/hardirq.h:17,
                    from arch/mips/include/asm/hardirq.h:16,
                    from include/linux/hardirq.h:11,
                    from include/linux/interrupt.h:11,
                    from include/linux/kernel_stat.h:9,
                    from include/linux/cgroup.h:26,
                    from include/linux/memcontrol.h:13,
                    from include/linux/swap.h:9,
                    from include/linux/suspend.h:5,
                    from arch/mips/kernel/asm-offsets.c:17:
   include/linux/irqdesc.h: In function 'irq_balancing_disabled':
>> include/linux/irqdesc.h:236:35: error: 'IRQ_NO_BALANCING_MASK' undeclared (first use in this function)
     236 |  return irq_check_status_bit(irq, IRQ_NO_BALANCING_MASK);
         |                                   ^~~~~~~~~~~~~~~~~~~~~
   include/linux/irqdesc.h:236:35: note: each undeclared identifier is reported only once for each function it appears in
   include/linux/irqdesc.h: In function 'irq_is_percpu':
>> include/linux/irqdesc.h:241:35: error: 'IRQ_PER_CPU' undeclared (first use in this function)
     241 |  return irq_check_status_bit(irq, IRQ_PER_CPU);
         |                                   ^~~~~~~~~~~
   include/linux/irqdesc.h: In function 'irq_is_percpu_devid':
>> include/linux/irqdesc.h:246:35: error: 'IRQ_PER_CPU_DEVID' undeclared (first use in this function)
     246 |  return irq_check_status_bit(irq, IRQ_PER_CPU_DEVID);
         |                                   ^~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c: At top level:
   arch/mips/kernel/asm-offsets.c:26:6: warning: no previous prototype for 'output_ptreg_defines' [-Wmissing-prototypes]
      26 | void output_ptreg_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:78:6: warning: no previous prototype for 'output_task_defines' [-Wmissing-prototypes]
      78 | void output_task_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:93:6: warning: no previous prototype for 'output_thread_info_defines' [-Wmissing-prototypes]
      93 | void output_thread_info_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:109:6: warning: no previous prototype for 'output_thread_defines' [-Wmissing-prototypes]
     109 | void output_thread_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:137:6: warning: no previous prototype for 'output_thread_fpu_defines' [-Wmissing-prototypes]
     137 | void output_thread_fpu_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:180:6: warning: no previous prototype for 'output_mm_defines' [-Wmissing-prototypes]
     180 | void output_mm_defines(void)
         |      ^~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:219:6: warning: no previous prototype for 'output_sc_defines' [-Wmissing-prototypes]
     219 | void output_sc_defines(void)
         |      ^~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:254:6: warning: no previous prototype for 'output_signal_defined' [-Wmissing-prototypes]
     254 | void output_signal_defined(void)
         |      ^~~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:333:6: warning: no previous prototype for 'output_pm_defines' [-Wmissing-prototypes]
     333 | void output_pm_defines(void)
         |      ^~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:347:6: warning: no previous prototype for 'output_kvm_defines' [-Wmissing-prototypes]
     347 | void output_kvm_defines(void)
         |      ^~~~~~~~~~~~~~~~~~
--
   In file included from include/linux/irqdomain.h:35,
                    from arch/mips/include/asm/irq.h:14,
                    from include/linux/irq.h:23,
                    from include/asm-generic/hardirq.h:17,
                    from arch/mips/include/asm/hardirq.h:16,
                    from include/linux/hardirq.h:11,
                    from include/linux/interrupt.h:11,
                    from include/linux/kernel_stat.h:9,
                    from include/linux/cgroup.h:26,
                    from include/linux/memcontrol.h:13,
                    from include/linux/swap.h:9,
                    from include/linux/suspend.h:5,
                    from arch/mips/kernel/asm-offsets.c:17:
>> include/linux/irqdesc.h:56:25: error: field 'irq_common_data' has incomplete type
      56 |  struct irq_common_data irq_common_data;
         |                         ^~~~~~~~~~~~~~~
>> include/linux/irqdesc.h:57:19: error: field 'irq_data' has incomplete type
      57 |  struct irq_data  irq_data;
         |                   ^~~~~~~~
>> include/linux/irqdesc.h:113:33: error: 'NR_IRQS' undeclared here (not in a function)
     113 | extern struct irq_desc irq_desc[NR_IRQS];
         |                                 ^~~~~~~
   In file included from include/linux/list.h:9,
                    from include/linux/smp.h:12,
                    from arch/mips/include/asm/cpu-type.h:12,
                    from arch/mips/include/asm/timex.h:19,
                    from include/linux/timex.h:65,
                    from include/linux/time32.h:13,
                    from include/linux/time.h:60,
                    from include/linux/compat.h:10,
                    from arch/mips/kernel/asm-offsets.c:12:
   include/linux/irqdesc.h: In function 'irq_data_to_desc':
>> include/linux/irqdesc.h:124:26: error: dereferencing pointer to incomplete type 'struct irq_data'
     124 |  return container_of(data->common, struct irq_desc, irq_common_data);
         |                          ^~
   include/linux/kernel.h:703:26: note: in definition of macro 'container_of'
     703 |  void *__mptr = (void *)(ptr);     \
         |                          ^~~
   In file included from include/linux/irqdomain.h:35,
                    from arch/mips/include/asm/irq.h:14,
                    from include/linux/irq.h:23,
                    from include/asm-generic/hardirq.h:17,
                    from arch/mips/include/asm/hardirq.h:16,
                    from include/linux/hardirq.h:11,
                    from include/linux/interrupt.h:11,
                    from include/linux/kernel_stat.h:9,
                    from include/linux/cgroup.h:26,
                    from include/linux/memcontrol.h:13,
                    from include/linux/swap.h:9,
                    from include/linux/suspend.h:5,
                    from arch/mips/kernel/asm-offsets.c:17:
   include/linux/irqdesc.h: In function 'irq_balancing_disabled':
>> include/linux/irqdesc.h:236:35: error: 'IRQ_NO_BALANCING_MASK' undeclared (first use in this function)
     236 |  return irq_check_status_bit(irq, IRQ_NO_BALANCING_MASK);
         |                                   ^~~~~~~~~~~~~~~~~~~~~
   include/linux/irqdesc.h:236:35: note: each undeclared identifier is reported only once for each function it appears in
   include/linux/irqdesc.h: In function 'irq_is_percpu':
>> include/linux/irqdesc.h:241:35: error: 'IRQ_PER_CPU' undeclared (first use in this function)
     241 |  return irq_check_status_bit(irq, IRQ_PER_CPU);
         |                                   ^~~~~~~~~~~
   include/linux/irqdesc.h: In function 'irq_is_percpu_devid':
>> include/linux/irqdesc.h:246:35: error: 'IRQ_PER_CPU_DEVID' undeclared (first use in this function)
     246 |  return irq_check_status_bit(irq, IRQ_PER_CPU_DEVID);
         |                                   ^~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c: At top level:
   arch/mips/kernel/asm-offsets.c:26:6: warning: no previous prototype for 'output_ptreg_defines' [-Wmissing-prototypes]
      26 | void output_ptreg_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:78:6: warning: no previous prototype for 'output_task_defines' [-Wmissing-prototypes]
      78 | void output_task_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:93:6: warning: no previous prototype for 'output_thread_info_defines' [-Wmissing-prototypes]
      93 | void output_thread_info_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:109:6: warning: no previous prototype for 'output_thread_defines' [-Wmissing-prototypes]
     109 | void output_thread_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:137:6: warning: no previous prototype for 'output_thread_fpu_defines' [-Wmissing-prototypes]
     137 | void output_thread_fpu_defines(void)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:180:6: warning: no previous prototype for 'output_mm_defines' [-Wmissing-prototypes]
     180 | void output_mm_defines(void)
         |      ^~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:219:6: warning: no previous prototype for 'output_sc_defines' [-Wmissing-prototypes]
     219 | void output_sc_defines(void)
         |      ^~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:254:6: warning: no previous prototype for 'output_signal_defined' [-Wmissing-prototypes]
     254 | void output_signal_defined(void)
         |      ^~~~~~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:333:6: warning: no previous prototype for 'output_pm_defines' [-Wmissing-prototypes]
     333 | void output_pm_defines(void)
         |      ^~~~~~~~~~~~~~~~~
   arch/mips/kernel/asm-offsets.c:347:6: warning: no previous prototype for 'output_kvm_defines' [-Wmissing-prototypes]
     347 | void output_kvm_defines(void)
         |      ^~~~~~~~~~~~~~~~~~
   make[2]: *** [scripts/Makefile.build:117: arch/mips/kernel/asm-offsets.s] Error 1
   make[2]: Target '__build' not remade because of errors.
   make[1]: *** [Makefile:1227: prepare0] Error 2
   make[1]: Target 'prepare' not remade because of errors.
   make: *** [Makefile:215: __sub-make] Error 2
   make: Target 'prepare' not remade because of errors.


vim +/irq_common_data +56 include/linux/irqdesc.h

293a7a0a165c4f Thomas Gleixner           2012-10-16   19  
e144710b302525 Thomas Gleixner           2010-10-01   20  /**
e144710b302525 Thomas Gleixner           2010-10-01   21   * struct irq_desc - interrupt descriptor
0d0b4c866bcce6 Jiang Liu                 2015-06-01   22   * @irq_common_data:	per irq and chip data passed down to chip functions
e144710b302525 Thomas Gleixner           2010-10-01   23   * @kstat_irqs:		irq stats per cpu
770767787c2304 Geert Uytterhoeven        2011-04-10   24   * @handle_irq:		highlevel irq-events handler
e144710b302525 Thomas Gleixner           2010-10-01   25   * @action:		the irq action chain
80ebc420ec59a7 Yunfeng Ye                2019-09-18   26   * @status_use_accessors: status information
dbec07bac614a6 Thomas Gleixner           2011-02-07   27   * @core_internal_state__do_not_mess_with_it: core internal status information
e144710b302525 Thomas Gleixner           2010-10-01   28   * @depth:		disable-depth, for nested irq_disable() calls
0911f124bf5535 Geert Uytterhoeven        2011-04-10   29   * @wake_depth:		enable depth, for multiple irq_set_irq_wake() callers
030fc443aef663 Waiman Long               2019-02-12   30   * @tot_count:		stats field for non-percpu irqs
e144710b302525 Thomas Gleixner           2010-10-01   31   * @irq_count:		stats field to detect stalled irqs
e144710b302525 Thomas Gleixner           2010-10-01   32   * @last_unhandled:	aging timer for unhandled count
e144710b302525 Thomas Gleixner           2010-10-01   33   * @irqs_unhandled:	stats field for spurious unhandled interrupts
1e77d0a1ed7417 Thomas Gleixner           2013-03-07   34   * @threads_handled:	stats field for deferred spurious detection of threaded handlers
a359f757965aaf Ingo Molnar               2021-03-22   35   * @threads_handled_last: comparator field for deferred spurious detection of threaded handlers
e144710b302525 Thomas Gleixner           2010-10-01   36   * @lock:		locking for SMP
770767787c2304 Geert Uytterhoeven        2011-04-10   37   * @affinity_hint:	hint to user space for preferred irq affinity
cd7eab44e9946c Ben Hutchings             2011-01-19   38   * @affinity_notify:	context for notification of affinity changes
e144710b302525 Thomas Gleixner           2010-10-01   39   * @pending_mask:	pending rebalanced interrupts
b5faba21a6805c Thomas Gleixner           2011-02-23   40   * @threads_oneshot:	bitfield to handle shared oneshot threads
e144710b302525 Thomas Gleixner           2010-10-01   41   * @threads_active:	number of irqaction threads currently running
e144710b302525 Thomas Gleixner           2010-10-01   42   * @wait_for_threads:	wait queue for sync_irq to wait for threaded handlers
cab303be91dc47 Thomas Gleixner           2014-08-28   43   * @nr_actions:		number of installed actions on this descriptor
cab303be91dc47 Thomas Gleixner           2014-08-28   44   * @no_suspend_depth:	number of irqactions on a irq descriptor with
cab303be91dc47 Thomas Gleixner           2014-08-28   45   *			IRQF_NO_SUSPEND set
cab303be91dc47 Thomas Gleixner           2014-08-28   46   * @force_resume_depth:	number of irqactions on a irq descriptor with
cab303be91dc47 Thomas Gleixner           2014-08-28   47   *			IRQF_FORCE_RESUME set
425a5072dcd1bd Thomas Gleixner           2015-12-13   48   * @rcu:		rcu head for delayed free
ecb3f394c5dba8 Craig Gallek              2016-09-13   49   * @kobj:		kobject used to represent this struct in sysfs
9114014cf4e6df Thomas Gleixner           2017-06-29   50   * @request_mutex:	mutex to protect request/free before locking desc->lock
e144710b302525 Thomas Gleixner           2010-10-01   51   * @dir:		/proc/irq/ procfs entry
087cdfb662ae50 Thomas Gleixner           2017-06-20   52   * @debugfs_file:	dentry for the debugfs file
e144710b302525 Thomas Gleixner           2010-10-01   53   * @name:		flow handler name for /proc/interrupts output
e144710b302525 Thomas Gleixner           2010-10-01   54   */
e144710b302525 Thomas Gleixner           2010-10-01   55  struct irq_desc {
0d0b4c866bcce6 Jiang Liu                 2015-06-01  @56  	struct irq_common_data	irq_common_data;
e144710b302525 Thomas Gleixner           2010-10-01  @57  	struct irq_data		irq_data;
6c9ae009b29875 Eric Dumazet              2011-01-13   58  	unsigned int __percpu	*kstat_irqs;
e144710b302525 Thomas Gleixner           2010-10-01   59  	irq_flow_handler_t	handle_irq;
e144710b302525 Thomas Gleixner           2010-10-01   60  	struct irqaction	*action;	/* IRQ action list */
a6967caf00ebbb Thomas Gleixner           2011-02-10   61  	unsigned int		status_use_accessors;
dbec07bac614a6 Thomas Gleixner           2011-02-07   62  	unsigned int		core_internal_state__do_not_mess_with_it;
e144710b302525 Thomas Gleixner           2010-10-01   63  	unsigned int		depth;		/* nested irq disables */
e144710b302525 Thomas Gleixner           2010-10-01   64  	unsigned int		wake_depth;	/* nested wake enables */
1136b072896990 Thomas Gleixner           2019-02-08   65  	unsigned int		tot_count;
e144710b302525 Thomas Gleixner           2010-10-01   66  	unsigned int		irq_count;	/* For detecting broken IRQs */
e144710b302525 Thomas Gleixner           2010-10-01   67  	unsigned long		last_unhandled;	/* Aging timer for unhandled count */
e144710b302525 Thomas Gleixner           2010-10-01   68  	unsigned int		irqs_unhandled;
1e77d0a1ed7417 Thomas Gleixner           2013-03-07   69  	atomic_t		threads_handled;
1e77d0a1ed7417 Thomas Gleixner           2013-03-07   70  	int			threads_handled_last;
e144710b302525 Thomas Gleixner           2010-10-01   71  	raw_spinlock_t		lock;
31d9d9b6d83030 Marc Zyngier              2011-09-23   72  	struct cpumask		*percpu_enabled;
222df54fd8b764 Marc Zyngier              2016-04-11   73  	const struct cpumask	*percpu_affinity;
e144710b302525 Thomas Gleixner           2010-10-01   74  #ifdef CONFIG_SMP
e144710b302525 Thomas Gleixner           2010-10-01   75  	const struct cpumask	*affinity_hint;
cd7eab44e9946c Ben Hutchings             2011-01-19   76  	struct irq_affinity_notify *affinity_notify;
e144710b302525 Thomas Gleixner           2010-10-01   77  #ifdef CONFIG_GENERIC_PENDING_IRQ
e144710b302525 Thomas Gleixner           2010-10-01   78  	cpumask_var_t		pending_mask;
e144710b302525 Thomas Gleixner           2010-10-01   79  #endif
e144710b302525 Thomas Gleixner           2010-10-01   80  #endif
b5faba21a6805c Thomas Gleixner           2011-02-23   81  	unsigned long		threads_oneshot;
e144710b302525 Thomas Gleixner           2010-10-01   82  	atomic_t		threads_active;
e144710b302525 Thomas Gleixner           2010-10-01   83  	wait_queue_head_t       wait_for_threads;
cab303be91dc47 Thomas Gleixner           2014-08-28   84  #ifdef CONFIG_PM_SLEEP
cab303be91dc47 Thomas Gleixner           2014-08-28   85  	unsigned int		nr_actions;
cab303be91dc47 Thomas Gleixner           2014-08-28   86  	unsigned int		no_suspend_depth;
17f480342026e5 Rafael J. Wysocki         2015-02-27   87  	unsigned int		cond_suspend_depth;
cab303be91dc47 Thomas Gleixner           2014-08-28   88  	unsigned int		force_resume_depth;
cab303be91dc47 Thomas Gleixner           2014-08-28   89  #endif
e144710b302525 Thomas Gleixner           2010-10-01   90  #ifdef CONFIG_PROC_FS
e144710b302525 Thomas Gleixner           2010-10-01   91  	struct proc_dir_entry	*dir;
425a5072dcd1bd Thomas Gleixner           2015-12-13   92  #endif
087cdfb662ae50 Thomas Gleixner           2017-06-20   93  #ifdef CONFIG_GENERIC_IRQ_DEBUGFS
087cdfb662ae50 Thomas Gleixner           2017-06-20   94  	struct dentry		*debugfs_file;
07557ccb8c83f3 Thomas Gleixner           2017-09-13   95  	const char		*dev_name;
087cdfb662ae50 Thomas Gleixner           2017-06-20   96  #endif
425a5072dcd1bd Thomas Gleixner           2015-12-13   97  #ifdef CONFIG_SPARSE_IRQ
425a5072dcd1bd Thomas Gleixner           2015-12-13   98  	struct rcu_head		rcu;
ecb3f394c5dba8 Craig Gallek              2016-09-13   99  	struct kobject		kobj;
e144710b302525 Thomas Gleixner           2010-10-01  100  #endif
9114014cf4e6df Thomas Gleixner           2017-06-29  101  	struct mutex		request_mutex;
293a7a0a165c4f Thomas Gleixner           2012-10-16  102  	int			parent_irq;
b6873807a7143b Sebastian Andrzej Siewior 2011-07-11  103  	struct module		*owner;
e144710b302525 Thomas Gleixner           2010-10-01  104  	const char		*name;
e144710b302525 Thomas Gleixner           2010-10-01  105  } ____cacheline_internodealigned_in_smp;
e144710b302525 Thomas Gleixner           2010-10-01  106  
a899418167264c Thomas Gleixner           2015-07-05  107  #ifdef CONFIG_SPARSE_IRQ
a899418167264c Thomas Gleixner           2015-07-05  108  extern void irq_lock_sparse(void);
a899418167264c Thomas Gleixner           2015-07-05  109  extern void irq_unlock_sparse(void);
a899418167264c Thomas Gleixner           2015-07-05  110  #else
a899418167264c Thomas Gleixner           2015-07-05  111  static inline void irq_lock_sparse(void) { }
a899418167264c Thomas Gleixner           2015-07-05  112  static inline void irq_unlock_sparse(void) { }
e144710b302525 Thomas Gleixner           2010-10-01 @113  extern struct irq_desc irq_desc[NR_IRQS];
e144710b302525 Thomas Gleixner           2010-10-01  114  #endif
e144710b302525 Thomas Gleixner           2010-10-01  115  
501e2db67fa426 Thomas Gleixner           2020-12-10  116  static inline unsigned int irq_desc_kstat_cpu(struct irq_desc *desc,
501e2db67fa426 Thomas Gleixner           2020-12-10  117  					      unsigned int cpu)
501e2db67fa426 Thomas Gleixner           2020-12-10  118  {
501e2db67fa426 Thomas Gleixner           2020-12-10  119  	return desc->kstat_irqs ? *per_cpu_ptr(desc->kstat_irqs, cpu) : 0;
501e2db67fa426 Thomas Gleixner           2020-12-10  120  }
501e2db67fa426 Thomas Gleixner           2020-12-10  121  
7bbf1dd24b17b9 Jiang Liu                 2015-06-01  122  static inline struct irq_desc *irq_data_to_desc(struct irq_data *data)
7bbf1dd24b17b9 Jiang Liu                 2015-06-01  123  {
755d119a620497 Thomas Gleixner           2015-09-16 @124  	return container_of(data->common, struct irq_desc, irq_common_data);
7bbf1dd24b17b9 Jiang Liu                 2015-06-01  125  }
7bbf1dd24b17b9 Jiang Liu                 2015-06-01  126  
304adf8a8fff97 Jiang Liu                 2015-06-04  127  static inline unsigned int irq_desc_get_irq(struct irq_desc *desc)
304adf8a8fff97 Jiang Liu                 2015-06-04  128  {
304adf8a8fff97 Jiang Liu                 2015-06-04  129  	return desc->irq_data.irq;
304adf8a8fff97 Jiang Liu                 2015-06-04  130  }
304adf8a8fff97 Jiang Liu                 2015-06-04  131  
d9936bb3952a08 Thomas Gleixner           2011-03-11  132  static inline struct irq_data *irq_desc_get_irq_data(struct irq_desc *desc)
d9936bb3952a08 Thomas Gleixner           2011-03-11  133  {
d9936bb3952a08 Thomas Gleixner           2011-03-11  134  	return &desc->irq_data;
d9936bb3952a08 Thomas Gleixner           2011-03-11  135  }
d9936bb3952a08 Thomas Gleixner           2011-03-11  136  
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  137  static inline struct irq_chip *irq_desc_get_chip(struct irq_desc *desc)
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  138  {
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  139  	return desc->irq_data.chip;
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  140  }
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  141  
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  142  static inline void *irq_desc_get_chip_data(struct irq_desc *desc)
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  143  {
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  144  	return desc->irq_data.chip_data;
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  145  }
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  146  
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  147  static inline void *irq_desc_get_handler_data(struct irq_desc *desc)
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  148  {
af7080e040d223 Jiang Liu                 2015-06-01  149  	return desc->irq_common_data.handler_data;
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  150  }
a0cd9ca2b907d7 Thomas Gleixner           2011-02-10  151  
e144710b302525 Thomas Gleixner           2010-10-01  152  /*
e144710b302525 Thomas Gleixner           2010-10-01  153   * Architectures call this to let the generic IRQ layer
6584d84c3e504c Huang Shijie              2015-09-01  154   * handle an interrupt.
e144710b302525 Thomas Gleixner           2010-10-01  155   */
bd0b9ac405e179 Thomas Gleixner           2015-09-14  156  static inline void generic_handle_irq_desc(struct irq_desc *desc)
e144710b302525 Thomas Gleixner           2010-10-01  157  {
bd0b9ac405e179 Thomas Gleixner           2015-09-14  158  	desc->handle_irq(desc);
e144710b302525 Thomas Gleixner           2010-10-01  159  }
e144710b302525 Thomas Gleixner           2010-10-01  160  
fe12bc2c996d3e Thomas Gleixner           2011-05-18  161  int generic_handle_irq(unsigned int irq);
e144710b302525 Thomas Gleixner           2010-10-01  162  
76ba59f8366f2d Marc Zyngier              2014-08-26  163  #ifdef CONFIG_HANDLE_DOMAIN_IRQ
76ba59f8366f2d Marc Zyngier              2014-08-26  164  /*
76ba59f8366f2d Marc Zyngier              2014-08-26  165   * Convert a HW interrupt number to a logical one using a IRQ domain,
76ba59f8366f2d Marc Zyngier              2014-08-26  166   * and handle the result interrupt number. Return -EINVAL if
76ba59f8366f2d Marc Zyngier              2014-08-26  167   * conversion failed. Providing a NULL domain indicates that the
76ba59f8366f2d Marc Zyngier              2014-08-26  168   * conversion has already been done.
76ba59f8366f2d Marc Zyngier              2014-08-26  169   */
76ba59f8366f2d Marc Zyngier              2014-08-26  170  int __handle_domain_irq(struct irq_domain *domain, unsigned int hwirq,
76ba59f8366f2d Marc Zyngier              2014-08-26  171  			bool lookup, struct pt_regs *regs);
76ba59f8366f2d Marc Zyngier              2014-08-26  172  
76ba59f8366f2d Marc Zyngier              2014-08-26  173  static inline int handle_domain_irq(struct irq_domain *domain,
76ba59f8366f2d Marc Zyngier              2014-08-26  174  				    unsigned int hwirq, struct pt_regs *regs)
76ba59f8366f2d Marc Zyngier              2014-08-26  175  {
76ba59f8366f2d Marc Zyngier              2014-08-26  176  	return __handle_domain_irq(domain, hwirq, true, regs);
76ba59f8366f2d Marc Zyngier              2014-08-26  177  }
6e4933a0066163 Julien Thierry            2019-01-31  178  
6e4933a0066163 Julien Thierry            2019-01-31  179  #ifdef CONFIG_IRQ_DOMAIN
6e4933a0066163 Julien Thierry            2019-01-31  180  int handle_domain_nmi(struct irq_domain *domain, unsigned int hwirq,
6e4933a0066163 Julien Thierry            2019-01-31  181  		      struct pt_regs *regs);
6e4933a0066163 Julien Thierry            2019-01-31  182  #endif
76ba59f8366f2d Marc Zyngier              2014-08-26  183  #endif
76ba59f8366f2d Marc Zyngier              2014-08-26  184  
e144710b302525 Thomas Gleixner           2010-10-01  185  /* Test to see if a driver has successfully requested an irq */
f61ae4fb66a4f7 Thomas Gleixner           2015-08-02  186  static inline int irq_desc_has_action(struct irq_desc *desc)
e144710b302525 Thomas Gleixner           2010-10-01  187  {
a313357e704f26 Thomas Gleixner           2020-12-10  188  	return desc && desc->action != NULL;
f61ae4fb66a4f7 Thomas Gleixner           2015-08-02  189  }
f61ae4fb66a4f7 Thomas Gleixner           2015-08-02  190  
bbc9d21fc0071c Thomas Gleixner           2015-06-23  191  /**
bbc9d21fc0071c Thomas Gleixner           2015-06-23  192   * irq_set_handler_locked - Set irq handler from a locked region
bbc9d21fc0071c Thomas Gleixner           2015-06-23  193   * @data:	Pointer to the irq_data structure which identifies the irq
bbc9d21fc0071c Thomas Gleixner           2015-06-23  194   * @handler:	Flow control handler function for this interrupt
bbc9d21fc0071c Thomas Gleixner           2015-06-23  195   *
bbc9d21fc0071c Thomas Gleixner           2015-06-23  196   * Sets the handler in the irq descriptor associated to @data.
bbc9d21fc0071c Thomas Gleixner           2015-06-23  197   *
bbc9d21fc0071c Thomas Gleixner           2015-06-23  198   * Must be called with irq_desc locked and valid parameters. Typical
bbc9d21fc0071c Thomas Gleixner           2015-06-23  199   * call site is the irq_set_type() callback.
bbc9d21fc0071c Thomas Gleixner           2015-06-23  200   */
bbc9d21fc0071c Thomas Gleixner           2015-06-23  201  static inline void irq_set_handler_locked(struct irq_data *data,
bbc9d21fc0071c Thomas Gleixner           2015-06-23  202  					  irq_flow_handler_t handler)
bbc9d21fc0071c Thomas Gleixner           2015-06-23  203  {
bbc9d21fc0071c Thomas Gleixner           2015-06-23  204  	struct irq_desc *desc = irq_data_to_desc(data);
bbc9d21fc0071c Thomas Gleixner           2015-06-23  205  
bbc9d21fc0071c Thomas Gleixner           2015-06-23  206  	desc->handle_irq = handler;
bbc9d21fc0071c Thomas Gleixner           2015-06-23  207  }
bbc9d21fc0071c Thomas Gleixner           2015-06-23  208  
bbc9d21fc0071c Thomas Gleixner           2015-06-23  209  /**
bbc9d21fc0071c Thomas Gleixner           2015-06-23  210   * irq_set_chip_handler_name_locked - Set chip, handler and name from a locked region
bbc9d21fc0071c Thomas Gleixner           2015-06-23  211   * @data:	Pointer to the irq_data structure for which the chip is set
bbc9d21fc0071c Thomas Gleixner           2015-06-23  212   * @chip:	Pointer to the new irq chip
bbc9d21fc0071c Thomas Gleixner           2015-06-23  213   * @handler:	Flow control handler function for this interrupt
bbc9d21fc0071c Thomas Gleixner           2015-06-23  214   * @name:	Name of the interrupt
bbc9d21fc0071c Thomas Gleixner           2015-06-23  215   *
bbc9d21fc0071c Thomas Gleixner           2015-06-23  216   * Replace the irq chip at the proper hierarchy level in @data and
bbc9d21fc0071c Thomas Gleixner           2015-06-23  217   * sets the handler and name in the associated irq descriptor.
bbc9d21fc0071c Thomas Gleixner           2015-06-23  218   *
bbc9d21fc0071c Thomas Gleixner           2015-06-23  219   * Must be called with irq_desc locked and valid parameters.
bbc9d21fc0071c Thomas Gleixner           2015-06-23  220   */
bbc9d21fc0071c Thomas Gleixner           2015-06-23  221  static inline void
bbc9d21fc0071c Thomas Gleixner           2015-06-23  222  irq_set_chip_handler_name_locked(struct irq_data *data, struct irq_chip *chip,
bbc9d21fc0071c Thomas Gleixner           2015-06-23  223  				 irq_flow_handler_t handler, const char *name)
bbc9d21fc0071c Thomas Gleixner           2015-06-23  224  {
bbc9d21fc0071c Thomas Gleixner           2015-06-23  225  	struct irq_desc *desc = irq_data_to_desc(data);
bbc9d21fc0071c Thomas Gleixner           2015-06-23  226  
bbc9d21fc0071c Thomas Gleixner           2015-06-23  227  	desc->handle_irq = handler;
bbc9d21fc0071c Thomas Gleixner           2015-06-23  228  	desc->name = name;
bbc9d21fc0071c Thomas Gleixner           2015-06-23  229  	data->chip = chip;
bbc9d21fc0071c Thomas Gleixner           2015-06-23  230  }
bbc9d21fc0071c Thomas Gleixner           2015-06-23  231  
fdd029630434b4 Thomas Gleixner           2020-12-10  232  bool irq_check_status_bit(unsigned int irq, unsigned int bitmask);
fdd029630434b4 Thomas Gleixner           2020-12-10  233  
4ce413d1840b25 Will Deacon               2017-12-01  234  static inline bool irq_balancing_disabled(unsigned int irq)
e144710b302525 Thomas Gleixner           2010-10-01  235  {
fdd029630434b4 Thomas Gleixner           2020-12-10 @236  	return irq_check_status_bit(irq, IRQ_NO_BALANCING_MASK);
e144710b302525 Thomas Gleixner           2010-10-01  237  }
781295762defc7 Thomas Gleixner           2011-02-10  238  
4ce413d1840b25 Will Deacon               2017-12-01  239  static inline bool irq_is_percpu(unsigned int irq)
7f4a8e7b1943c1 Vinayak Kale              2013-12-04  240  {
fdd029630434b4 Thomas Gleixner           2020-12-10 @241  	return irq_check_status_bit(irq, IRQ_PER_CPU);
7f4a8e7b1943c1 Vinayak Kale              2013-12-04  242  }
7f4a8e7b1943c1 Vinayak Kale              2013-12-04  243  
4ce413d1840b25 Will Deacon               2017-12-01  244  static inline bool irq_is_percpu_devid(unsigned int irq)
08395c7f4d9f58 Julien Thierry            2017-10-13  245  {
fdd029630434b4 Thomas Gleixner           2020-12-10 @246  	return irq_check_status_bit(irq, IRQ_PER_CPU_DEVID);
08395c7f4d9f58 Julien Thierry            2017-10-13  247  }
08395c7f4d9f58 Julien Thierry            2017-10-13  248  

:::::: The code at line 56 was first introduced by commit
:::::: 0d0b4c866bcce647f40d73efe5e90aeeb079050a genirq: Introduce struct irq_common_data to host shared irq data

:::::: TO: Jiang Liu <jiang.liu@linux.intel.com>
:::::: CC: Thomas Gleixner <tglx@linutronix.de>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 31542 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-05-14  9:10 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-14  9:08 [arm-platforms:irq/domain_cleanup 14/20] include/linux/irqdesc.h:56:25: error: field 'irq_common_data' has incomplete type kernel test robot
2021-05-14  9:08 ` kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.