tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 9ebcfadb0610322ac537dd7aa5d9cbc2b2894c68 commit: 0e4a459f56c32d3e52ae69a4b447db2f48a65f44 tracing: Remove unnecessary DEBUG_FS dependency date: 7 months ago config: powerpc-randconfig-m031-20200629 (attached as .config) compiler: powerpc64le-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <l...@intel.com> All warnings (new ones prefixed by >>): arch/powerpc/platforms/powernv/eeh-powernv.c:41:6: warning: no previous prototype for 'pnv_pcibios_bus_add_device' [-Wmissing-prototypes] 41 | void pnv_pcibios_bus_add_device(struct pci_dev *pdev) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ arch/powerpc/platforms/powernv/eeh-powernv.c:200:6: warning: no previous prototype for 'pnv_eeh_enable_phbs' [-Wmissing-prototypes] 200 | void pnv_eeh_enable_phbs(void) | ^~~~~~~~~~~~~~~~~~~ arch/powerpc/platforms/powernv/eeh-powernv.c: In function 'pnv_eeh_post_init': >> arch/powerpc/platforms/powernv/eeh-powernv.c:230:18: warning: variable 'phb' >> set but not used [-Wunused-but-set-variable] 230 | struct pnv_phb *phb; | ^~~ vim +/phb +230 arch/powerpc/platforms/powernv/eeh-powernv.c 4cf17445589932 Gavin Shan 2015-02-16 40 988fc3ba565327 Bryant G. Ly 2017-11-09 @41 void pnv_pcibios_bus_add_device(struct pci_dev *pdev) 988fc3ba565327 Bryant G. Ly 2017-11-09 42 { 988fc3ba565327 Bryant G. Ly 2017-11-09 43 struct pci_dn *pdn = pci_get_pdn(pdev); 988fc3ba565327 Bryant G. Ly 2017-11-09 44 b905f8cdca7725 Sam Bobroff 2019-08-16 45 if (eeh_has_flag(EEH_FORCE_DISABLED)) 988fc3ba565327 Bryant G. Ly 2017-11-09 46 return; 988fc3ba565327 Bryant G. Ly 2017-11-09 47 1ff8f36fc770dd Sam Bobroff 2019-08-16 48 dev_dbg(&pdev->dev, "EEH: Setting up device\n"); 988fc3ba565327 Bryant G. Ly 2017-11-09 49 eeh_add_device_early(pdn); 988fc3ba565327 Bryant G. Ly 2017-11-09 50 eeh_add_device_late(pdev); 988fc3ba565327 Bryant G. Ly 2017-11-09 51 eeh_sysfs_add_device(pdev); 988fc3ba565327 Bryant G. Ly 2017-11-09 52 } 988fc3ba565327 Bryant G. Ly 2017-11-09 53 01f3bfb7804ae2 Gavin Shan 2015-02-16 54 static int pnv_eeh_init(void) 29310e5e860697 Gavin Shan 2013-06-20 55 { dc561fb9e7e13a Gavin Shan 2014-07-17 56 struct pci_controller *hose; dc561fb9e7e13a Gavin Shan 2014-07-17 57 struct pnv_phb *phb; 5cb1f8fdddb747 Russell Currey 2017-06-14 58 int max_diag_size = PNV_PCI_DIAG_BUF_SIZE; dc561fb9e7e13a Gavin Shan 2014-07-17 59 e4d54f71d29997 Stewart Smith 2015-12-09 60 if (!firmware_has_feature(FW_FEATURE_OPAL)) { e4d54f71d29997 Stewart Smith 2015-12-09 61 pr_warn("%s: OPAL is required !\n", 0dae27439acc75 Gavin Shan 2014-07-17 62 __func__); 29310e5e860697 Gavin Shan 2013-06-20 63 return -EINVAL; 29310e5e860697 Gavin Shan 2013-06-20 64 } 29310e5e860697 Gavin Shan 2013-06-20 65 05b1721d9f4993 Gavin Shan 2014-07-17 66 /* Set probe mode */ 05b1721d9f4993 Gavin Shan 2014-07-17 67 eeh_add_flag(EEH_PROBE_MODE_DEV); 29310e5e860697 Gavin Shan 2013-06-20 68 dc561fb9e7e13a Gavin Shan 2014-07-17 69 /* dc561fb9e7e13a Gavin Shan 2014-07-17 70 * P7IOC blocks PCI config access to frozen PE, but PHB3 dc561fb9e7e13a Gavin Shan 2014-07-17 71 * doesn't do that. So we have to selectively enable I/O dc561fb9e7e13a Gavin Shan 2014-07-17 72 * prior to collecting error log. dc561fb9e7e13a Gavin Shan 2014-07-17 73 */ dc561fb9e7e13a Gavin Shan 2014-07-17 74 list_for_each_entry(hose, &hose_list, list_node) { dc561fb9e7e13a Gavin Shan 2014-07-17 75 phb = hose->private_data; dc561fb9e7e13a Gavin Shan 2014-07-17 76 dc561fb9e7e13a Gavin Shan 2014-07-17 77 if (phb->model == PNV_PHB_MODEL_P7IOC) dc561fb9e7e13a Gavin Shan 2014-07-17 78 eeh_add_flag(EEH_ENABLE_IO_FOR_LOG); 2aa5cf9e48f2f3 Gavin Shan 2014-11-25 79 5cb1f8fdddb747 Russell Currey 2017-06-14 80 if (phb->diag_data_size > max_diag_size) 5cb1f8fdddb747 Russell Currey 2017-06-14 81 max_diag_size = phb->diag_data_size; 5cb1f8fdddb747 Russell Currey 2017-06-14 82 2aa5cf9e48f2f3 Gavin Shan 2014-11-25 83 /* 2aa5cf9e48f2f3 Gavin Shan 2014-11-25 84 * PE#0 should be regarded as valid by EEH core 2aa5cf9e48f2f3 Gavin Shan 2014-11-25 85 * if it's not the reserved one. Currently, we 608fb9c29660ac Gavin Shan 2015-10-08 86 * have the reserved PE#255 and PE#127 for PHB3 2aa5cf9e48f2f3 Gavin Shan 2014-11-25 87 * and P7IOC separately. So we should regard 608fb9c29660ac Gavin Shan 2015-10-08 88 * PE#0 as valid for PHB3 and P7IOC. 2aa5cf9e48f2f3 Gavin Shan 2014-11-25 89 */ 92b8f137b3620b Gavin Shan 2016-05-03 90 if (phb->ioda.reserved_pe_idx != 0) 2aa5cf9e48f2f3 Gavin Shan 2014-11-25 91 eeh_add_flag(EEH_VALID_PE_ZERO); 2aa5cf9e48f2f3 Gavin Shan 2014-11-25 92 dc561fb9e7e13a Gavin Shan 2014-07-17 93 break; dc561fb9e7e13a Gavin Shan 2014-07-17 94 } dc561fb9e7e13a Gavin Shan 2014-07-17 95 5cb1f8fdddb747 Russell Currey 2017-06-14 96 eeh_set_pe_aux_size(max_diag_size); 988fc3ba565327 Bryant G. Ly 2017-11-09 97 ppc_md.pcibios_bus_add_device = pnv_pcibios_bus_add_device; 5cb1f8fdddb747 Russell Currey 2017-06-14 98 29310e5e860697 Gavin Shan 2013-06-20 99 return 0; 29310e5e860697 Gavin Shan 2013-06-20 100 } 29310e5e860697 Gavin Shan 2013-06-20 101 79231448c929cc Alistair Popple 2015-05-15 102 static irqreturn_t pnv_eeh_event(int irq, void *data) 4cf17445589932 Gavin Shan 2015-02-16 103 { 4cf17445589932 Gavin Shan 2015-02-16 104 /* 79231448c929cc Alistair Popple 2015-05-15 105 * We simply send a special EEH event if EEH has been 79231448c929cc Alistair Popple 2015-05-15 106 * enabled. We don't care about EEH events until we've 79231448c929cc Alistair Popple 2015-05-15 107 * finished processing the outstanding ones. Event processing 79231448c929cc Alistair Popple 2015-05-15 108 * gets unmasked in next_error() if EEH is enabled. 4cf17445589932 Gavin Shan 2015-02-16 109 */ 79231448c929cc Alistair Popple 2015-05-15 110 disable_irq_nosync(irq); 4cf17445589932 Gavin Shan 2015-02-16 111 4cf17445589932 Gavin Shan 2015-02-16 112 if (eeh_enabled()) 4cf17445589932 Gavin Shan 2015-02-16 113 eeh_send_failure_event(NULL); 4cf17445589932 Gavin Shan 2015-02-16 114 79231448c929cc Alistair Popple 2015-05-15 115 return IRQ_HANDLED; 4cf17445589932 Gavin Shan 2015-02-16 116 } 4cf17445589932 Gavin Shan 2015-02-16 117 4cf17445589932 Gavin Shan 2015-02-16 118 #ifdef CONFIG_DEBUG_FS 4cf17445589932 Gavin Shan 2015-02-16 119 static ssize_t pnv_eeh_ei_write(struct file *filp, 4cf17445589932 Gavin Shan 2015-02-16 120 const char __user *user_buf, 4cf17445589932 Gavin Shan 2015-02-16 121 size_t count, loff_t *ppos) 4cf17445589932 Gavin Shan 2015-02-16 122 { 4cf17445589932 Gavin Shan 2015-02-16 123 struct pci_controller *hose = filp->private_data; 4cf17445589932 Gavin Shan 2015-02-16 124 struct eeh_pe *pe; 4cf17445589932 Gavin Shan 2015-02-16 125 int pe_no, type, func; 4cf17445589932 Gavin Shan 2015-02-16 126 unsigned long addr, mask; 4cf17445589932 Gavin Shan 2015-02-16 127 char buf[50]; 4cf17445589932 Gavin Shan 2015-02-16 128 int ret; 4cf17445589932 Gavin Shan 2015-02-16 129 4cf17445589932 Gavin Shan 2015-02-16 130 if (!eeh_ops || !eeh_ops->err_inject) 4cf17445589932 Gavin Shan 2015-02-16 131 return -ENXIO; 4cf17445589932 Gavin Shan 2015-02-16 132 4cf17445589932 Gavin Shan 2015-02-16 133 /* Copy over argument buffer */ 4cf17445589932 Gavin Shan 2015-02-16 134 ret = simple_write_to_buffer(buf, sizeof(buf), ppos, user_buf, count); 4cf17445589932 Gavin Shan 2015-02-16 135 if (!ret) 4cf17445589932 Gavin Shan 2015-02-16 136 return -EFAULT; 4cf17445589932 Gavin Shan 2015-02-16 137 4cf17445589932 Gavin Shan 2015-02-16 138 /* Retrieve parameters */ 4cf17445589932 Gavin Shan 2015-02-16 139 ret = sscanf(buf, "%x:%x:%x:%lx:%lx", 4cf17445589932 Gavin Shan 2015-02-16 140 &pe_no, &type, &func, &addr, &mask); 4cf17445589932 Gavin Shan 2015-02-16 141 if (ret != 5) 4cf17445589932 Gavin Shan 2015-02-16 142 return -EINVAL; 4cf17445589932 Gavin Shan 2015-02-16 143 4cf17445589932 Gavin Shan 2015-02-16 144 /* Retrieve PE */ 8bae6a23198def Alexey Kardashevskiy 2017-08-29 145 pe = eeh_pe_get(hose, pe_no, 0); 4cf17445589932 Gavin Shan 2015-02-16 146 if (!pe) 4cf17445589932 Gavin Shan 2015-02-16 147 return -ENODEV; 4cf17445589932 Gavin Shan 2015-02-16 148 4cf17445589932 Gavin Shan 2015-02-16 149 /* Do error injection */ 4cf17445589932 Gavin Shan 2015-02-16 150 ret = eeh_ops->err_inject(pe, type, func, addr, mask); 4cf17445589932 Gavin Shan 2015-02-16 151 return ret < 0 ? ret : count; 4cf17445589932 Gavin Shan 2015-02-16 152 } 4cf17445589932 Gavin Shan 2015-02-16 153 4cf17445589932 Gavin Shan 2015-02-16 154 static const struct file_operations pnv_eeh_ei_fops = { 4cf17445589932 Gavin Shan 2015-02-16 155 .open = simple_open, 4cf17445589932 Gavin Shan 2015-02-16 156 .llseek = no_llseek, 4cf17445589932 Gavin Shan 2015-02-16 157 .write = pnv_eeh_ei_write, 4cf17445589932 Gavin Shan 2015-02-16 158 }; 4cf17445589932 Gavin Shan 2015-02-16 159 4cf17445589932 Gavin Shan 2015-02-16 160 static int pnv_eeh_dbgfs_set(void *data, int offset, u64 val) 4cf17445589932 Gavin Shan 2015-02-16 161 { 4cf17445589932 Gavin Shan 2015-02-16 162 struct pci_controller *hose = data; 4cf17445589932 Gavin Shan 2015-02-16 163 struct pnv_phb *phb = hose->private_data; 4cf17445589932 Gavin Shan 2015-02-16 164 4cf17445589932 Gavin Shan 2015-02-16 165 out_be64(phb->regs + offset, val); 4cf17445589932 Gavin Shan 2015-02-16 166 return 0; 4cf17445589932 Gavin Shan 2015-02-16 167 } 4cf17445589932 Gavin Shan 2015-02-16 168 4cf17445589932 Gavin Shan 2015-02-16 169 static int pnv_eeh_dbgfs_get(void *data, int offset, u64 *val) 4cf17445589932 Gavin Shan 2015-02-16 170 { 4cf17445589932 Gavin Shan 2015-02-16 171 struct pci_controller *hose = data; 4cf17445589932 Gavin Shan 2015-02-16 172 struct pnv_phb *phb = hose->private_data; 4cf17445589932 Gavin Shan 2015-02-16 173 4cf17445589932 Gavin Shan 2015-02-16 174 *val = in_be64(phb->regs + offset); 4cf17445589932 Gavin Shan 2015-02-16 175 return 0; 4cf17445589932 Gavin Shan 2015-02-16 176 } 4cf17445589932 Gavin Shan 2015-02-16 177 ccc9662da5494a Gavin Shan 2016-02-09 178 #define PNV_EEH_DBGFS_ENTRY(name, reg) \ ccc9662da5494a Gavin Shan 2016-02-09 179 static int pnv_eeh_dbgfs_set_##name(void *data, u64 val) \ ccc9662da5494a Gavin Shan 2016-02-09 180 { \ ccc9662da5494a Gavin Shan 2016-02-09 181 return pnv_eeh_dbgfs_set(data, reg, val); \ ccc9662da5494a Gavin Shan 2016-02-09 182 } \ ccc9662da5494a Gavin Shan 2016-02-09 183 \ ccc9662da5494a Gavin Shan 2016-02-09 184 static int pnv_eeh_dbgfs_get_##name(void *data, u64 *val) \ ccc9662da5494a Gavin Shan 2016-02-09 185 { \ ccc9662da5494a Gavin Shan 2016-02-09 186 return pnv_eeh_dbgfs_get(data, reg, val); \ ccc9662da5494a Gavin Shan 2016-02-09 187 } \ ccc9662da5494a Gavin Shan 2016-02-09 188 \ ccc9662da5494a Gavin Shan 2016-02-09 189 DEFINE_SIMPLE_ATTRIBUTE(pnv_eeh_dbgfs_ops_##name, \ ccc9662da5494a Gavin Shan 2016-02-09 190 pnv_eeh_dbgfs_get_##name, \ ccc9662da5494a Gavin Shan 2016-02-09 191 pnv_eeh_dbgfs_set_##name, \ ccc9662da5494a Gavin Shan 2016-02-09 192 "0x%llx\n") ccc9662da5494a Gavin Shan 2016-02-09 193 ccc9662da5494a Gavin Shan 2016-02-09 194 PNV_EEH_DBGFS_ENTRY(outb, 0xD10); ccc9662da5494a Gavin Shan 2016-02-09 195 PNV_EEH_DBGFS_ENTRY(inbA, 0xD90); ccc9662da5494a Gavin Shan 2016-02-09 196 PNV_EEH_DBGFS_ENTRY(inbB, 0xE10); 4cf17445589932 Gavin Shan 2015-02-16 197 4cf17445589932 Gavin Shan 2015-02-16 198 #endif /* CONFIG_DEBUG_FS */ 4cf17445589932 Gavin Shan 2015-02-16 199 b905f8cdca7725 Sam Bobroff 2019-08-16 200 void pnv_eeh_enable_phbs(void) b905f8cdca7725 Sam Bobroff 2019-08-16 201 { b905f8cdca7725 Sam Bobroff 2019-08-16 202 struct pci_controller *hose; b905f8cdca7725 Sam Bobroff 2019-08-16 203 struct pnv_phb *phb; b905f8cdca7725 Sam Bobroff 2019-08-16 204 b905f8cdca7725 Sam Bobroff 2019-08-16 205 list_for_each_entry(hose, &hose_list, list_node) { b905f8cdca7725 Sam Bobroff 2019-08-16 206 phb = hose->private_data; b905f8cdca7725 Sam Bobroff 2019-08-16 207 /* b905f8cdca7725 Sam Bobroff 2019-08-16 208 * If EEH is enabled, we're going to rely on that. b905f8cdca7725 Sam Bobroff 2019-08-16 209 * Otherwise, we restore to conventional mechanism b905f8cdca7725 Sam Bobroff 2019-08-16 210 * to clear frozen PE during PCI config access. b905f8cdca7725 Sam Bobroff 2019-08-16 211 */ b905f8cdca7725 Sam Bobroff 2019-08-16 212 if (eeh_enabled()) b905f8cdca7725 Sam Bobroff 2019-08-16 213 phb->flags |= PNV_PHB_FLAG_EEH; b905f8cdca7725 Sam Bobroff 2019-08-16 214 else b905f8cdca7725 Sam Bobroff 2019-08-16 215 phb->flags &= ~PNV_PHB_FLAG_EEH; b905f8cdca7725 Sam Bobroff 2019-08-16 216 } b905f8cdca7725 Sam Bobroff 2019-08-16 217 } b905f8cdca7725 Sam Bobroff 2019-08-16 218 29310e5e860697 Gavin Shan 2013-06-20 219 /** 01f3bfb7804ae2 Gavin Shan 2015-02-16 220 * pnv_eeh_post_init - EEH platform dependent post initialization 29310e5e860697 Gavin Shan 2013-06-20 221 * 29310e5e860697 Gavin Shan 2013-06-20 222 * EEH platform dependent post initialization on powernv. When 29310e5e860697 Gavin Shan 2013-06-20 223 * the function is called, the EEH PEs and devices should have 29310e5e860697 Gavin Shan 2013-06-20 224 * been built. If the I/O cache staff has been built, EEH is 29310e5e860697 Gavin Shan 2013-06-20 225 * ready to supply service. 29310e5e860697 Gavin Shan 2013-06-20 226 */ b9fde58db7e573 Benjamin Herrenschmidt 2017-09-07 227 int pnv_eeh_post_init(void) 29310e5e860697 Gavin Shan 2013-06-20 228 { 29310e5e860697 Gavin Shan 2013-06-20 229 struct pci_controller *hose; 29310e5e860697 Gavin Shan 2013-06-20 @230 struct pnv_phb *phb; 29310e5e860697 Gavin Shan 2013-06-20 231 int ret = 0; 29310e5e860697 Gavin Shan 2013-06-20 232 c44e4ccadaca58 Sam Bobroff 2019-08-16 233 eeh_show_enabled(); b9fde58db7e573 Benjamin Herrenschmidt 2017-09-07 234 4cf17445589932 Gavin Shan 2015-02-16 235 /* Register OPAL event notifier */ 79231448c929cc Alistair Popple 2015-05-15 236 eeh_event_irq = opal_event_request(ilog2(OPAL_EVENT_PCI_ERROR)); 79231448c929cc Alistair Popple 2015-05-15 237 if (eeh_event_irq < 0) { 79231448c929cc Alistair Popple 2015-05-15 238 pr_err("%s: Can't register OPAL event interrupt (%d)\n", 79231448c929cc Alistair Popple 2015-05-15 239 __func__, eeh_event_irq); 79231448c929cc Alistair Popple 2015-05-15 240 return eeh_event_irq; 79231448c929cc Alistair Popple 2015-05-15 241 } 79231448c929cc Alistair Popple 2015-05-15 242 79231448c929cc Alistair Popple 2015-05-15 243 ret = request_irq(eeh_event_irq, pnv_eeh_event, 79231448c929cc Alistair Popple 2015-05-15 244 IRQ_TYPE_LEVEL_HIGH, "opal-eeh", NULL); 79231448c929cc Alistair Popple 2015-05-15 245 if (ret < 0) { 79231448c929cc Alistair Popple 2015-05-15 246 irq_dispose_mapping(eeh_event_irq); 79231448c929cc Alistair Popple 2015-05-15 247 pr_err("%s: Can't request OPAL event interrupt (%d)\n", 79231448c929cc Alistair Popple 2015-05-15 248 __func__, eeh_event_irq); 4cf17445589932 Gavin Shan 2015-02-16 249 return ret; 4cf17445589932 Gavin Shan 2015-02-16 250 } 4cf17445589932 Gavin Shan 2015-02-16 251 79231448c929cc Alistair Popple 2015-05-15 252 if (!eeh_enabled()) 79231448c929cc Alistair Popple 2015-05-15 253 disable_irq(eeh_event_irq); 79231448c929cc Alistair Popple 2015-05-15 254 b905f8cdca7725 Sam Bobroff 2019-08-16 255 pnv_eeh_enable_phbs(); b905f8cdca7725 Sam Bobroff 2019-08-16 256 29310e5e860697 Gavin Shan 2013-06-20 257 list_for_each_entry(hose, &hose_list, list_node) { 29310e5e860697 Gavin Shan 2013-06-20 258 phb = hose->private_data; 29310e5e860697 Gavin Shan 2013-06-20 259 4cf17445589932 Gavin Shan 2015-02-16 260 /* Create debugfs entries */ 4cf17445589932 Gavin Shan 2015-02-16 261 #ifdef CONFIG_DEBUG_FS 4cf17445589932 Gavin Shan 2015-02-16 262 if (phb->has_dbgfs || !phb->dbgfs) 4cf17445589932 Gavin Shan 2015-02-16 263 continue; 4cf17445589932 Gavin Shan 2015-02-16 264 4cf17445589932 Gavin Shan 2015-02-16 265 phb->has_dbgfs = 1; 4cf17445589932 Gavin Shan 2015-02-16 266 debugfs_create_file("err_injct", 0200, 4cf17445589932 Gavin Shan 2015-02-16 267 phb->dbgfs, hose, 4cf17445589932 Gavin Shan 2015-02-16 268 &pnv_eeh_ei_fops); 4cf17445589932 Gavin Shan 2015-02-16 269 4cf17445589932 Gavin Shan 2015-02-16 270 debugfs_create_file("err_injct_outbound", 0600, 4cf17445589932 Gavin Shan 2015-02-16 271 phb->dbgfs, hose, ccc9662da5494a Gavin Shan 2016-02-09 272 &pnv_eeh_dbgfs_ops_outb); 4cf17445589932 Gavin Shan 2015-02-16 273 debugfs_create_file("err_injct_inboundA", 0600, 4cf17445589932 Gavin Shan 2015-02-16 274 phb->dbgfs, hose, ccc9662da5494a Gavin Shan 2016-02-09 275 &pnv_eeh_dbgfs_ops_inbA); 4cf17445589932 Gavin Shan 2015-02-16 276 debugfs_create_file("err_injct_inboundB", 0600, 4cf17445589932 Gavin Shan 2015-02-16 277 phb->dbgfs, hose, ccc9662da5494a Gavin Shan 2016-02-09 278 &pnv_eeh_dbgfs_ops_inbB); 4cf17445589932 Gavin Shan 2015-02-16 279 #endif /* CONFIG_DEBUG_FS */ 29310e5e860697 Gavin Shan 2013-06-20 280 } 29310e5e860697 Gavin Shan 2013-06-20 281 29310e5e860697 Gavin Shan 2013-06-20 282 return ret; 29310e5e860697 Gavin Shan 2013-06-20 283 } 29310e5e860697 Gavin Shan 2013-06-20 284 :::::: The code at line 230 was first introduced by commit :::::: 29310e5e860697955b9c10ddb448d61267fab0dc powerpc/eeh: PowerNV EEH backends :::::: TO: Gavin Shan <sha...@linux.vnet.ibm.com> :::::: CC: Benjamin Herrenschmidt <b...@kernel.crashing.org> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
.config.gz
Description: application/gzip