From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754064AbcCHIj4 (ORCPT ); Tue, 8 Mar 2016 03:39:56 -0500 Received: from mga02.intel.com ([134.134.136.20]:42909 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753842AbcCHIjs (ORCPT ); Tue, 8 Mar 2016 03:39:48 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.22,556,1449561600"; d="gz'50?scan'50,208,50";a="919167679" Date: Tue, 8 Mar 2016 16:38:45 +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: <201603081643.6mAzMxzS%fengguang.wu@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="mP3DRpeJDSE+ciuQ" 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 --mP3DRpeJDSE+ciuQ 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: e2857b8f11a289ed2b61d18d0665e05c1053c446 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 --mP3DRpeJDSE+ciuQ Content-Type: application/octet-stream Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 H4sICB+P3lYAAy5jb25maWcAlVpbc9s6Dn7vr9C0O7Mv2xMnTp20M3mgKMpiLYkqSfnSF43j qK3npHbWl+7m3y8oWTZlgUn2oXVEgDcABD6A/PDug0f2u/Xv+W65mD8+Pns/y1W5me/KB+/3 /O/SW6xXP5Y/v3gP69U/d175sNxBj3i52v/X+7vcrMpH70+52S7Xqy/e1V+Dv/qDj5vFJ2DR +9JL5hvPu/UuB1/6gy/XN95V73Lw7sM7KtKQD4tkcDu6ez5+JfnpQ04US4ohS5nktFAZT2NB DfMH78BBJI2KiKiCx2J4VeT9K2+59Vbrnbctd262wbXNdmBq5okmjA8jfVpGQ6Ak5r4kmhUB i8nsxKB5wopYTArJVLcbFwnJTs2pgJZMSG3vAxqDhCCLir7fXfZ67+x95IopGFybWUUYKmYt NWDh4a+YK333/uJxeX/xe/2wfyy3F//IUwILlSxmRLGLv2qdvm/6wo/SMqdaSLML0NAHb1hZ waNZ0f6pajkws2kGm0tYqkmMLNuXYsTSQqSFSqy985TrgqVj2IhZYcL1Xf/qOL8USsEqkozH 7O79cV2gcxKPmVRcpI7mguRanKZRk0rgx8WqmRrzjKKm4augyKSgDOYmlGqUKSJjdrIPIgMu vymbsxKNpLmn9vfb5+2u/H0ycC0ZCJ3m9oo0T2emDZ0N2qEToQwRrKGFJBV5JblWl7oZNEMc u2gW0h38yMJH9R/IzHByCj8PCxXxUN9d3pw60aEUeabQAUH0oQKzzCSjcHKCYoyfUGlOFDKr sViVwXKVLb5cqyLFJ/TjEUw3rkxNBsiIlBYig7PDv7MiFLJQ8IdlOjNFdXz6BpmmMJYI2gtg ic+CgGHj5zy4HJwPWP2Q2Bp4BF9qlrRGbdpAh6CiIiNKYS5B6CzOh6ehMslTbflQ3yayOIQz Ja0t+nD4izC3FxPmmk2tPpmwqYoPUxKHQdvhSbuBjcET2A0qSlhiiZGLxqWM6nCRlZsf683v +WpReuxPudptPbJ68Oh6v9pBJDkdn3FSjw67yFPNpOVhVZz7oOzWfo3/IBocUCtOqJj4iCjN ADYbOIKQxzwdds72kIrxx/v5FuLhId49bdY/lo/L1U/bLbYcBXh0WE7EJKwenZz4PA0tvyV1 kRhN2FGk0pZKjO30TvMkIshjhlmHfwiRzan1AxJaox1Oh6+G9r5Ph0azoeR61tk/F55a/CpN ILGVw4WiEZzqVAjbzR9aA0YCkCbrUmj4zZ4fwhbJY33sgOyrYXH0NAt4oddh3rv3ix//fm+5 u9TMViELcIozIzrcLXb5Cj96lfVN4/0/gxUQd97MqMAWEZHYrHkHUHWpZ2tz88GUr4wEHICQ AF84gk/dQ4IRvEUbFd+bmV4R8YnvFRG3GF8WccXqFLFFfVHENh8u4jOON4h4AmecvUXGNePb uV6RssX4ipjbnC/LueZ1CtomvyjpFiMu6nOWl2RdufLa/gFDiAkEBZQvBFj2vU2rXG72ON+Z EOk9lE/l6gFCZBeGk4QPCToq0URyfF0ER8LERH2BksYJvsUo6/d6OO7L0/4UpXy7dvfoymCz XpTb7Xrj7Z6fSnvnkDb2rvCRDKnvJjnmN6QBTiLBmKQURXtVRhZwBZ+aDwHzQHpD/NgKeRV2 PKDm/jEuWT0sGBYTXfEXZqB21sggaiYQyngWs6LBow1sIUMGfYcVcGQp4FILI2Ux5FyZriyW Zrm6u7bwTjSDrCcIZKGLwbXPMZjyXYDdGyhjZri7PCIJQGPU2uaYA3rRAsBnG9Kq5IWwnMAe iwQOiFnD3XXv8wBPO5s5AS4l2kBaewqDbosgT7LjsAbzRuAUASxi+NlgNGIyKBsB1UObZjyt qOkJ6A2lmxSyygwnRGKuqpFip3ih8swUA1SRKPy4pkx3jkVQ/lkCbg42yz81HDtJbbk4NHvi abdcryywltc4OmIx5O5gNDoy6bQFpcY6yUJMZEqTNCCxsKEcZHTVcCGXidk0aJ7HluGFE3Df RgdWU8MKGh8xmTIryahTnoajtTDInYpoBmsecyVwH5roAFcLkUa6KE6uIC+GgqmYmDQiEemL GWZ8BjlrzUg/8B6W2/n9I6QK9+Vivt+WXmUdofqXx402wZvBUCkzlZZD78dysSsfbP/WzCJJ gq6CBlIkRTbSNBjje29GiDC/ZQzZUPlZZs1SGguVg46UkTdl3TIHg2ReJN52//S03uxaRaGK Unzu0+nAdfB4wFpxNWCdCRSFo/BQm/hplsYYgGjSH3sQSXgAAU9LRw2COo5WNdZZ3a1NBHVB 3MfBT+IwuUik3T3x1dN+59wUT7O2O6oaijA0gQDyPHxfNZOJ2qDIFzgUnALFRuBrO8vKt+Xm cQ5599Jk3T/mEGzPVgWyzhWrTwraXmSK5FMnVVGAN2kxvbvsXV2/zDO7uxncni/+q5i9vDs2 fo3u5918vtZHx4+2eo7YzBfg0q2izaEFjG3kt0zwSIlHQEGXc2RJ2UQ7fMuRR2RwEiGw4Zo/ sgH6nJBJu3KGcOXpq4ua6jOWrqqsKr35BMVfIU0FiTOFtcdiyOE3yzCimqUk05yiPU29cpQJ nrbOyInOYpJqRvHUw5oDwhWLOR7ArdlETqMRx3FAzQa+kbfr3mcMYzWdTgnuWI52rWC/rrzK sGgDJPFlHBjMSuvD8wLXOWap7D+abx7+M9+UHr8QnnFGlvWb3dnVdPNp/j9cWrSaY+7XZnDy m1W7JBPcq1ZUEmtmCpwKLwYPScLOw3YdZ37NN3OIlJuDJ7XLhNbS4EeJ2CS4JFWAqTl8W0hV NwyntmhitZ3SHm0RDAQMzkqDJ+Q0qoF8a58kBqCe1tipXYquwxyANcC4D0fnc9759upTr9Mr Xa8+VoRt3d3oDovFhzE0T3wmAbvhCdyB66CPr5oMcyJxk2uznrM1EDPl08+3kG7MWqgCBJQZ iNvkL7ySCkULmDEbEjprhug01mXgu6tPA8vOs4QDukiDuJ1Gn5QLhhCIloKOjXUxmwtQIG6M EJmkxp2G7H9uXyVakGRSBJKPHTk/oDpAj46wfoVPpjLesYYMxkCUP7nEoYmYAPA3GUeM3bVE E4C8bRlBA2R2eOioqVX5vaAR74KLdL4D08YNHI6UVAXXtzcOY6sZMnp703dk5Q2PShS9vknw LTdMk9v+4OomCt/AxBxcOmIycXj9CdE0CgTmHJTyQfBK8boqUB/99Wq52Hpq+bhcrFeeP1/8 /QQwrFXggH4Ybg+DJmVsxUJops5ClOmTfOrhEoo0NTdNnPadnXXC8boQ8aefej33zJINc/C/ rqSNBZw0u+neuGzmT7+MlBD7DiR+VsdDAo5F44sBO2aigATfBEVo01Lgygx9tNkHEBKblwFF TAPnsoPlFlT53IX6p8VzlcVk5hyBQtK+fixNFlmPVKfznaQhyJNkhoUtBR4Sg3IRt23n1Ng6 8jxwhW7TPeNIHHsqFyYSAd06601AAOtH7NU0Hx9lRBR3MC0mEVE8iWtxsTOuOmFdmWzci9bb ncm9h/OHn+UxZnq7NXACDlqZS8jN3Fsfyya1ExOaffGqbYAdkyE7lGO3HhzcKrO8h0SiybVV 4P2eP9vaNj2HJBgiVRyhh57JvTblY/XQZrn6sZlvd5v9YrfftIudiQO0ssQNIiHNgLgZ4EGG UPPigfs8PrvtO51d8As0Jo7cE7LmQ/UAHz6fHswc15nDn8DhHWK3rxjuqwjhEhRbP7hoBRg2 1VdFiK8NaP0XaNcummQcMFCoXPSvbhJQIATwKYgddznTTt+mJ4/raxAQi1VIU2CWPLSeIAXn DbxuMK+FpH3yzCsRQ8Br87nQjuuEXAv3/mqqU3KhSYnCbiWJzhe/ypbeQkUJjbrlExp8lCK5 MKUuo3JE41yJz4NBz7WEPAixFQRCXYREX6TaNW6igMc16hj6umip7sirhmzbcv+w9n60pmsA Wl0nPHuSQIvReYS1iedPVqpGcyUAuWjKwWm1HqO0R+8UfE/ePgeXFfvVQHgBsvpx2W1VXzTG C1Nq1n7mEoXgGXKnUCmAYwdJfcuJilzK6B6ikxY5JCYuokjcHaPMTfuWTq/dVPnSsOZFmtNU HXYz3+yWJjR5+vmpfWoySMa4rt7BuW+qakM+srZeH8bd6Q7PdH4BND1741I/N6rSJmSa+voL ALFMrWdfVp2/pie5AhAWMfutSijN80TTsy4WnrQHUaGyc8edsdKSZwVRSWFeT+FCTU2t0dB9 ETtCWpXJoNZ8uEw6LvisT32XgdsPZP7GfefmdkrXJX90C8enTIWjNFhxGHSLLbDuCf8g4fSF XaqrKQAUhJxVj+Ks50Y0NzeCZtA4Pi7v7OGk9Xit3j4ye3XzUwSCKklbF1xaJJwOriHBikPN lKOwQJIsRu4ZVLnYb5a7ZwuR2WVLx8FiND9/wNQhojpuLg8bpiIgtPWwtkVtXVBROcs0jmh8 nhIQfHVmws4W4+X9Zr559jbr/W65sstZPtfmfk3aqmzelYU8DQpAZtpwtW5CJUA2yjUuZ6Be DlyUQl/2Ao4nvobMdV5gBR+g9a/O1oCn9DH3K2aKnS/zNFu07sJNU31ferb7xqiA8j8v2iCc ti4AAA== --mP3DRpeJDSE+ciuQ--