From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2992656AbcB1ABI (ORCPT ); Sat, 27 Feb 2016 19:01:08 -0500 Received: from mga03.intel.com ([134.134.136.65]:55640 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756780AbcB1ABG (ORCPT ); Sat, 27 Feb 2016 19:01:06 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.22,511,1449561600"; d="gz'50?scan'50,208,50";a="922538196" Date: Sun, 28 Feb 2016 07:59:50 +0800 From: kbuild test robot To: Thomas Gleixner Cc: kbuild-all@01.org, linux-kernel@vger.kernel.org, Ingo Molnar Subject: kernel/irq/irqdesc.c:206:2: error: array index in initializer exceeds array bounds Message-ID: <201602280748.3c8QXcpJ%fengguang.wu@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="NzB8fVQJ5HfG6fxh" Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: fengguang.wu@intel.com X-SA-Exim-Scanned: No (on bee); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --NzB8fVQJ5HfG6fxh Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Thomas, FYI, the error/warning still remains. tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 691429e13dfaf5b0994b07cc166db41bd608ee3d commit: 3795de236d67a05994a1a12759db9d4dd9ffc42c genirq: Distangle kernel/irq/handle.c date: 5 years ago config: m68k-alldefconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout 3795de236d67a05994a1a12759db9d4dd9ffc42c # save the attached .config to linux build tree make.cross ARCH=m68k All errors (new ones prefixed by >>): In file included from include/linux/irqnr.h:10:0, from include/linux/irq.h:22, from kernel/irq/irqdesc.c:10: arch/m68k/include/asm/irq.h:25:17: error: expected identifier or '(' before numeric constant #define NR_IRQS 0 ^ include/linux/irqnr.h:15:19: note: in expansion of macro 'NR_IRQS' #define nr_irqs NR_IRQS ^ kernel/irq/irqdesc.c:36:5: note: in expansion of macro 'nr_irqs' int nr_irqs = NR_IRQS; ^ >> kernel/irq/irqdesc.c:206:2: error: array index in initializer exceeds array bounds [0 ... NR_IRQS-1] = { ^ kernel/irq/irqdesc.c:206:2: error: (near initialization for 'irq_desc') kernel/irq/irqdesc.c:208:17: error: 'handle_bad_irq' undeclared here (not in a function) .handle_irq = handle_bad_irq, ^ kernel/irq/irqdesc.c:211:2: warning: excess elements in array initializer } ^ kernel/irq/irqdesc.c:211:2: warning: (near initialization for 'irq_desc') kernel/irq/irqdesc.c: In function 'early_irq_init': kernel/irq/irqdesc.c:230:28: error: 'no_irq_chip' undeclared (first use in this function) desc[i].irq_data.chip = &no_irq_chip; ^ kernel/irq/irqdesc.c:230:28: note: each undeclared identifier is reported only once for each function it appears in In file included from include/linux/irq.h:22:0, from kernel/irq/irqdesc.c:10: kernel/irq/irqdesc.c: At top level: include/linux/irqnr.h:16:27: error: expected identifier or '(' before '&' token #define irq_to_desc(irq) (&irq_desc[irq]) ^ kernel/irq/irqdesc.c:238:18: note: in expansion of macro 'irq_to_desc' struct irq_desc *irq_to_desc(unsigned int irq) ^ kernel/irq/irqdesc.c:254:6: error: redefinition of 'early_init_irq_lock_class' void early_init_irq_lock_class(void) ^ In file included from include/linux/hardirq.h:8:0, from arch/m68k/include/asm/system_mm.h:69, from arch/m68k/include/asm/system.h:4, from include/linux/list.h:8, from include/linux/smp.h:11, from include/linux/irq.h:12, from kernel/irq/irqdesc.c:10: include/linux/lockdep.h:430:20: note: previous definition of 'early_init_irq_lock_class' was here static inline void early_init_irq_lock_class(void) ^ kernel/irq/irqdesc.c: In function 'early_init_irq_lock_class': kernel/irq/irqdesc.c:256:19: warning: unused variable 'desc' [-Wunused-variable] struct irq_desc *desc; ^ kernel/irq/irqdesc.c: At top level: kernel/irq/irqdesc.c:264:14: error: redefinition of 'kstat_irqs_cpu' unsigned int kstat_irqs_cpu(unsigned int irq, int cpu) ^ In file included from kernel/irq/irqdesc.c:14:0: include/linux/kernel_stat.h:59:28: note: previous definition of 'kstat_irqs_cpu' was here static inline unsigned int kstat_irqs_cpu(unsigned int irq, int cpu) ^ vim +206 kernel/irq/irqdesc.c 30 #else 31 static void __init init_irq_default_affinity(void) 32 { 33 } 34 #endif 35 > 36 int nr_irqs = NR_IRQS; 37 EXPORT_SYMBOL_GPL(nr_irqs); 38 39 #ifdef CONFIG_SPARSE_IRQ 40 41 static struct irq_desc irq_desc_init = { 42 .status = IRQ_DISABLED, 43 .handle_irq = handle_bad_irq, 44 .depth = 1, 45 .lock = __RAW_SPIN_LOCK_UNLOCKED(irq_desc_init.lock), 46 }; 47 48 void __ref init_kstat_irqs(struct irq_desc *desc, int node, int nr) 49 { 50 void *ptr; 51 52 ptr = kzalloc_node(nr * sizeof(*desc->kstat_irqs), 53 GFP_ATOMIC, node); 54 55 /* 56 * don't overwite if can not get new one 57 * init_copy_kstat_irqs() could still use old one 58 */ 59 if (ptr) { 60 printk(KERN_DEBUG " alloc kstat_irqs on node %d\n", node); 61 desc->kstat_irqs = ptr; 62 } 63 } 64 65 static void init_one_irq_desc(int irq, struct irq_desc *desc, int node) 66 { 67 memcpy(desc, &irq_desc_init, sizeof(struct irq_desc)); 68 69 raw_spin_lock_init(&desc->lock); 70 desc->irq_data.irq = irq; 71 #ifdef CONFIG_SMP 72 desc->irq_data.node = node; 73 #endif 74 lockdep_set_class(&desc->lock, &irq_desc_lock_class); 75 init_kstat_irqs(desc, node, nr_cpu_ids); 76 if (!desc->kstat_irqs) { 77 printk(KERN_ERR "can not alloc kstat_irqs\n"); 78 BUG_ON(1); 79 } 80 if (!alloc_desc_masks(desc, node, false)) { 81 printk(KERN_ERR "can not alloc irq_desc cpumasks\n"); 82 BUG_ON(1); 83 } 84 init_desc_masks(desc); 85 arch_init_chip_data(desc, node); 86 } 87 88 /* 89 * Protect the sparse_irqs: 90 */ 91 DEFINE_RAW_SPINLOCK(sparse_irq_lock); 92 93 static RADIX_TREE(irq_desc_tree, GFP_ATOMIC); 94 95 static void set_irq_desc(unsigned int irq, struct irq_desc *desc) 96 { 97 radix_tree_insert(&irq_desc_tree, irq, desc); 98 } 99 100 struct irq_desc *irq_to_desc(unsigned int irq) 101 { 102 return radix_tree_lookup(&irq_desc_tree, irq); 103 } 104 105 void replace_irq_desc(unsigned int irq, struct irq_desc *desc) 106 { 107 void **ptr; 108 109 ptr = radix_tree_lookup_slot(&irq_desc_tree, irq); 110 if (ptr) 111 radix_tree_replace_slot(ptr, desc); 112 } 113 114 static struct irq_desc irq_desc_legacy[NR_IRQS_LEGACY] __cacheline_aligned_in_smp = { 115 [0 ... NR_IRQS_LEGACY-1] = { 116 .status = IRQ_DISABLED, 117 .handle_irq = handle_bad_irq, 118 .depth = 1, 119 .lock = __RAW_SPIN_LOCK_UNLOCKED(irq_desc_init.lock), 120 } 121 }; 122 123 static unsigned int *kstat_irqs_legacy; 124 125 int __init early_irq_init(void) 126 { 127 struct irq_desc *desc; 128 int legacy_count; 129 int node; 130 int i; 131 132 init_irq_default_affinity(); 133 134 /* initialize nr_irqs based on nr_cpu_ids */ 135 arch_probe_nr_irqs(); 136 printk(KERN_INFO "NR_IRQS:%d nr_irqs:%d\n", NR_IRQS, nr_irqs); 137 138 desc = irq_desc_legacy; 139 legacy_count = ARRAY_SIZE(irq_desc_legacy); 140 node = first_online_node; 141 142 /* allocate based on nr_cpu_ids */ 143 kstat_irqs_legacy = kzalloc_node(NR_IRQS_LEGACY * nr_cpu_ids * 144 sizeof(int), GFP_NOWAIT, node); 145 146 irq_desc_init.irq_data.chip = &no_irq_chip; 147 148 for (i = 0; i < legacy_count; i++) { 149 desc[i].irq_data.irq = i; 150 desc[i].irq_data.chip = &no_irq_chip; 151 #ifdef CONFIG_SMP 152 desc[i].irq_data.node = node; 153 #endif 154 desc[i].kstat_irqs = kstat_irqs_legacy + i * nr_cpu_ids; 155 lockdep_set_class(&desc[i].lock, &irq_desc_lock_class); 156 alloc_desc_masks(&desc[i], node, true); 157 init_desc_masks(&desc[i]); 158 set_irq_desc(i, &desc[i]); 159 } 160 161 return arch_early_irq_init(); 162 } 163 164 struct irq_desc * __ref irq_to_desc_alloc_node(unsigned int irq, int node) 165 { 166 struct irq_desc *desc; 167 unsigned long flags; 168 169 if (irq >= nr_irqs) { 170 WARN(1, "irq (%d) >= nr_irqs (%d) in irq_to_desc_alloc\n", 171 irq, nr_irqs); 172 return NULL; 173 } 174 175 desc = irq_to_desc(irq); 176 if (desc) 177 return desc; 178 179 raw_spin_lock_irqsave(&sparse_irq_lock, flags); 180 181 /* We have to check it to avoid races with another CPU */ 182 desc = irq_to_desc(irq); 183 if (desc) 184 goto out_unlock; 185 186 desc = kzalloc_node(sizeof(*desc), GFP_ATOMIC, node); 187 188 printk(KERN_DEBUG " alloc irq_desc for %d on node %d\n", irq, node); 189 if (!desc) { 190 printk(KERN_ERR "can not alloc irq_desc\n"); 191 BUG_ON(1); 192 } 193 init_one_irq_desc(irq, desc, node); 194 195 set_irq_desc(irq, desc); 196 197 out_unlock: 198 raw_spin_unlock_irqrestore(&sparse_irq_lock, flags); 199 200 return desc; 201 } 202 203 #else /* !CONFIG_SPARSE_IRQ */ 204 205 struct irq_desc irq_desc[NR_IRQS] __cacheline_aligned_in_smp = { > 206 [0 ... NR_IRQS-1] = { 207 .status = IRQ_DISABLED, 208 .handle_irq = handle_bad_irq, 209 .depth = 1, --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --NzB8fVQJ5HfG6fxh Content-Type: application/octet-stream Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 cbYuAAA= --NzB8fVQJ5HfG6fxh--