From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754162AbcCMU0V (ORCPT ); Sun, 13 Mar 2016 16:26:21 -0400 Received: from mga03.intel.com ([134.134.136.65]:1415 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751022AbcCMU0N (ORCPT ); Sun, 13 Mar 2016 16:26:13 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.24,332,1455004800"; d="gz'50?scan'50,208,50";a="923154748" Date: Mon, 14 Mar 2016 04:29:02 +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: <201603140400.WtOX34FT%fengguang.wu@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="pf9I7BMVVzbSWLtt" 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 --pf9I7BMVVzbSWLtt 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: f414ca64be4b36c30deb5b5fa25c5a8ff42ea56b 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 --pf9I7BMVVzbSWLtt Content-Type: application/octet-stream Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 H4sICC/N5VYAAy5jb25maWcAlVpbc9s6Dn7vr9C0O7Mv2xPnUvcykweKoiweU6JKUr70ReM6 6qnnpHbWdrqbf7+gZNmUBSbZmdPjiABvAAh8APnuzbuAPO43vxb71XJxf/8U/FWtq+1iX90F vxZ/V8Fys/6x+utLcLdZ/3MfVHerPfQQq/Xjf4O/q+26ug9+V9vdarP+Elz9Mfzjevh+u/wA LOlmHaSLbXB5Ewxuvlx9hP+Cq8Hl8M27N1RmMR+V6fDT+Pbp+JUWpw811SwtRyxjitNS5zwT klrmd8GBgyialAnRJRdydFUW11fBahesN/tgV+39bMMbl+3A1M6TTBkfJea0jJZAieChIoaV ERNkfmIwPGWlkNNSMd3vxmVK8lNzJqEll8q4+4DGKCXIopJvt5eDwRt3H4VmGgY3dlYZx5o5 S41YfPhLcG1u317cr75f/NrcPd5Xu4t/FBmBhSomGNHs4o9Gp2/bvvCjjSqokcruAjT0LhjV VnBvV/T4ULccmNksh82lLDNEIMsOlRyzrJRZqVNn7zzjpmTZBDZiV5hyc3t9dZxfSa1hFWnO Bbt9e1wX6JyICVOay8zTXJLCyNM0eloL/LhYPdcTnlPUNEIdlbmSlMHchFKDMiVkwk72QVTE 1VftctaiUbQI9OP33dNuX/06GbhRDIROC3dFhmdz24bOBu3QiVCGCNbSYpLJopZcp0vTDJoh nl20C+kPfmTh4+YPZGY4OWVYxKVOeGxuLz+eOtGRkkWu0QFB9LEGs8wVo3ByonKCn1BlTxQy q7VYncNytSu+wugywycMxRimm9SmpiJkREpLmcPZ4d9YGUtVavjDMZ25pkacvkGmGYwlo+4C WBqyKGLY+AWPLofnA9Y/RDgDj+FLz9POqG0b6BBUVOZEa8wlSJOLYnQaKlc8M44PDV0iEzGc KeVsMYTDX8aFu5i4MGzm9MmlS9V8lBERR12Hp9wGNgFP4DboJGWpI0YuW5cybsJFXm1/bLa/ FutlFbDf1Xq/C8j6LqCbx/UeIsnp+EzSZnTYRZEZphwPq0URgrI7+7X+gxhwQJ04oQUJEVHa AVw2cAQxFzwb9c72iMrJ+++LHcTDQ7x72G5+rO5X679ct9hxFODRYTkJU7B6dHIS8ix2/JYy ZWo14UaRWls6tbYzOM2TyqgQDLOO8BAi21MbRiR2RjucjlCP3H2fDo1hI8XNvLd/LgO9/FnZ QOIqh0tNEzjVmZSumz+0RoxEIE3Wp9D4qzs/hC1SCHPsgOyrZfH0tAt4ptdh3tu3yx//fuu4 u8zOViMLcIpzKzrcLfb5yjB5kfVV4/0/g5UQd17NqMEWEZG4rEUPUPWpZ2vz88GUL4wEHICQ AF94gk/TQ4ERvEYbNd+rmV4Q8YnvBRF3GJ8Xcc3qFbFDfVbELh8u4jOOV4h4CmecvUbGDePr uV6QssP4gpi7nM/LueH1CtolPyvpDiMu6nOW52Rdu/LG/gFDyCkEBZQvBlj2rUurXW5+v9jb EBncVQ/V+g5CZB+Gk5SPCDoqMURxfF0ER8LERn2JkiYpvsUkvx4McNxXZNczlPL1xt+jL4Pt ZlntdpttsH96qNydQ9o4uMJHsqRrP8kzvyUNcRKJJiSjKNqrM7KIa/g0fASYB9IbEgon5NXY 8YCar49xyenhwDBBTM1f2oG6WSODqJlCKOO5YGWLR1vYQkYM+o5q4MgywKUORsoF5Fy5qS2W 5oW+vXHwTjKHrCeKVGnK4U3IMZjyTYLdWyhjZ7i9PCIJQGPU2eaEA3oxEsBnF9Lq9JmwnMIe yxQOiF3D7c3g8xBPO9s5AS6lxkJadwqLbsuoSPPjsBbzJuAUASxi+NliNGIzKBcBNUPbZjyt aOgp6A2l2xSyzgynRGGuqpVir3ihi9wWA3SZavy4Zsz0jkVU/V4Bbo62q98NHDtJbbU8NAfy Yb/arB2wVjQ4OmECcncwGpPYdNqBUhOT5jEmMm1IFhEhXSgHGV09XMxVajcNmufCMbx4Cu7b 6sBpallB42OmMuYkGU3K03J0Fga5U5nMYc0TriXuQ1MT4WohykoXxck15MVQMJVTm0akMns2 wxRnkLPRjAqj4G61W3y/h1The7VcPO6qoLaOWP8r4Fab4M1gqIzZSsuh93213Fd3rn9rZ1Ek RVdBIyXTMh8bGk3wvbcjJJjfsoZsqfwss2YZFVIXoCNt5U1Zv8zBIJmXabB7fHjYbPedolBN KT9f09nQd/B4xDpxNWK9CTSFo3DXmPhpltYYgGjTH3cQRXgEAc8oTw2Ceo5WPdZZ3a1LBHVB 3MfBT+oxuURm/T3x9cPj3rspnuVdd1Q3lHFsAwHkefi+GiYbtUGRz3BoOAWajcHX9pZV7Krt /QLy7pXNun8sINierQpkXWjWnBS0vcw1KWZeqqYAb7Jydns5uLp5nmd++3H46Xzxf8r587tj k5foYdHP5xt99Pxop+eYzUMJLt0p2hxawNjGYccEjxQxBgq6nCNLxqbG41uOPDKHkwiBDdf8 kQ3Q55RMu5UzhKvIXlzUzJyx9FXlVOntJyj+Cmkqicg11i7kiMNvnmNEPc9IbjhFe9p65TiX POuckROdCZIZRvHUw5kDwhUTHA/gzmyyoMmY4zigYQPfyLt17zOGiZ7NZgR3LEe71rBfX15l WYwFkvgyDgx2pc3heYbrHLPU9p8stnf/WWyrgF/IwDojx/rt7txquv20/z9cWnSaBQ8bMzj5 zbpdkSnuVWsqEYbZAqfGi8EjkrLzsN3EmZ+L7QIi5fbgSd0yobM0+NFS2ASXZBowNYdvB6ma luHUlkydtlPaYxyChYDRWWnwhJzGDZDv7JMIAOpZg526pegmzAFYA4x7d3Q+550/XX0Y9Hpl m/X7mrBrulvdYbH4MIbhacgUYDc8gTtwHfTxpyGjgijc5Lqs52wtxMz47PMnSDfmHVQBAsot xG3zF15LhaIFTMFGhM7bIXqNTRn49urD0LHzPOWALrJIdNPok3LBECLZUdCxsSlmcwkKxI0R IpMyuNNQ15+7V4kOJJmWkeITT84PqA7QoyesX+GT6Zz3rCGHMRDlTy9xaCKnAPxtxiGwu5Zk CpC3KyNogMwODx0NtS6/lzThfXCRLfZg2riBw5FSuuTm00ePsTUMOf308dqTlbc8OtX05mOK b7llmn66Hl59TOJXMDEPl0mYSj1ef0oMTSKJOQetQxC81rypCjRHf7NeLXeBXt2vlpt1EC6W fz8ADOsUOKAfhtvjqE0ZO7EQmqm3EGX7pB8GuIQSQ+1NE6fX3s4m5XhdiISzD4OBf2bFRgX4 X1/SxiJO2t30b1y2i4efVkqIfUcKP6uTEQHHYvDFgB0zWUKCb4MitBklcWXGIdocAggR9mVA KWjkXXa02oEqn/pQ/7R4rnNB5t4RKCTtm/vKZpHNSE0630saoiJN51jY0uAhMSiXcNd2To2d I88jX+i23XOOxLGHamkjEdCds94GBLB+xF5t8/FRRkJxB9NhkgnFk7gOFzvjahLWtc3Gg2Sz 29vce7S4+6s6xsxgvwFOwEFrewm5XQSbY9mkcWLSsC9BvQ2wYzJih3LsLoCDW2eW3yGRaHNt HQW/Fk+utm3PEYlGSBVHmlFgc69tdV8/tFmtf2wXu/32cbl/3HaLnakHtLLUDyIhzYC4GeFB hlD74oGHXJzd9p3OLvgFKogn94Ss+VA9wIcvZgczx3Xm8SdweEfY7SuG+2pCvALFNg8uOgGG zcxVGeNrA9r1M7QbH00xDhgo1j76n34SUCAE8BmIHXc5s17fticXzTUIiMUppGkwSx47T5Ci 8wbeNNjXQso9efaViCXgtflCGs91QmGkf38N1Su52KZEcb+SRBfLn1VHb7GmhCb98gmN3iuZ XthSl1U5onGu5efhcOBbQhHF2AoiqS9iYi4y4xs31cDjG3UCfX20zPTk1UC2XfV4twl+dKZr AVpTJzx7kkDL8XmEdYnnT1bqRnslALloxsFpdR6jdEfvFXxP3r4AlyXCeiC8AFn/+Oy2ri9a 44UpDes+c0li8AyFV6gUwLGHpL8WRCc+ZfQP0UmLHBITH1Gm/o5J7qd9zWY3fqp6blj7Is1r qh67WWz3KxuaAvP00D01OSRj3NTv4Pw3VY0hH1k7rw9Ff7rDM52fAE3P3rg0z43qtAmZprn+ AkCsMufZl1Pnb+hpoQGEJcx9qxIr+zzR9myKhSftQVSo7dxzZ6yN4nlJdFra11O4UDNba7T0 UApPSKszGdSaD5dJxwWf9WnuMnD7gczfuu/C3k6ZpuSPbuH4lKn0lAZrDotusQU2PeEfJJyh dEt1DQWAglTz+lGc89yIFvZG0A4qxHF5Zw8nncdrzfaR2eubnzKSVCvaueAyMuV0eAMJlogN 057CAklzgdwz6Gr5uF3tnxxE5pYtPQeL0eL8AVOPiOq4vTxsmcqI0M7D2g61c0FF1Tw3OKIJ eUZA8PWZiXtbFKvv28X2KdhuHvertVvOCrmx92vKVWX7rizmWVQCMjOWq3MTqgCyUW5wOQP1 cuijlOZyEHE88bVkbooSK/gA7frqbA14Si94WDNT7HzZp9mycxdum5r70rPdt0YFlP8BEJd+ HrYuAAA= --pf9I7BMVVzbSWLtt--