Merge tag 'pci-v4.14-fixes-6' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci

Pull PCI fix from Bjorn Helgaas:
"Move alpha PCI IRQ map/swizzle functions out of initdata to fix
regression from PCI core IRQ mapping changes (Lorenzo Pieralisi)"

* tag 'pci-v4.14-fixes-6' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
alpha/PCI: Move pci_map_irq()/pci_swizzle() out of initdata

+2 -2
arch/alpha/kernel/sys_alcor.c
··· 181 181 * comes in on. This makes interrupt processing much easier. 182 182 */ 183 183 184 - static int __init 184 + static int 185 185 alcor_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 186 186 { 187 - static char irq_tab[7][5] __initdata = { 187 + static char irq_tab[7][5] = { 188 188 /*INT INTA INTB INTC INTD */ 189 189 /* note: IDSEL 17 is XLT only */ 190 190 {16+13, 16+13, 16+13, 16+13, 16+13}, /* IdSel 17, TULIP */
+6 -6
arch/alpha/kernel/sys_cabriolet.c
··· 173 173 * because it is the Saturn IO (SIO) PCI/ISA Bridge Chip. 174 174 */ 175 175 176 - static inline int __init 176 + static inline int 177 177 eb66p_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 178 178 { 179 - static char irq_tab[5][5] __initdata = { 179 + static char irq_tab[5][5] = { 180 180 /*INT INTA INTB INTC INTD */ 181 181 {16+0, 16+0, 16+5, 16+9, 16+13}, /* IdSel 6, slot 0, J25 */ 182 182 {16+1, 16+1, 16+6, 16+10, 16+14}, /* IdSel 7, slot 1, J26 */ ··· 203 203 * because it is the Saturn IO (SIO) PCI/ISA Bridge Chip. 204 204 */ 205 205 206 - static inline int __init 206 + static inline int 207 207 cabriolet_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 208 208 { 209 - static char irq_tab[5][5] __initdata = { 209 + static char irq_tab[5][5] = { 210 210 /*INT INTA INTB INTC INTD */ 211 211 { 16+2, 16+2, 16+7, 16+11, 16+15}, /* IdSel 5, slot 2, J21 */ 212 212 { 16+0, 16+0, 16+5, 16+9, 16+13}, /* IdSel 6, slot 0, J19 */ ··· 287 287 * 288 288 */ 289 289 290 - static inline int __init 290 + static inline int 291 291 alphapc164_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 292 292 { 293 - static char irq_tab[7][5] __initdata = { 293 + static char irq_tab[7][5] = { 294 294 /*INT INTA INTB INTC INTD */ 295 295 { 16+2, 16+2, 16+9, 16+13, 16+17}, /* IdSel 5, slot 2, J20 */ 296 296 { 16+0, 16+0, 16+7, 16+11, 16+15}, /* IdSel 6, slot 0, J29 */
+10 -10
arch/alpha/kernel/sys_dp264.c
··· 356 356 * 10 64 bit PCI option slot 3 (not bus 0) 357 357 */ 358 358 359 - static int __init 359 + static int 360 360 isa_irq_fixup(const struct pci_dev *dev, int irq) 361 361 { 362 362 u8 irq8; ··· 372 372 return irq8 & 0xf; 373 373 } 374 374 375 - static int __init 375 + static int 376 376 dp264_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 377 377 { 378 - static char irq_tab[6][5] __initdata = { 378 + static char irq_tab[6][5] = { 379 379 /*INT INTA INTB INTC INTD */ 380 380 { -1, -1, -1, -1, -1}, /* IdSel 5 ISA Bridge */ 381 381 { 16+ 3, 16+ 3, 16+ 2, 16+ 2, 16+ 2}, /* IdSel 6 SCSI builtin*/ ··· 394 394 return isa_irq_fixup(dev, irq); 395 395 } 396 396 397 - static int __init 397 + static int 398 398 monet_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 399 399 { 400 - static char irq_tab[13][5] __initdata = { 400 + static char irq_tab[13][5] = { 401 401 /*INT INTA INTB INTC INTD */ 402 402 { 45, 45, 45, 45, 45}, /* IdSel 3 21143 PCI1 */ 403 403 { -1, -1, -1, -1, -1}, /* IdSel 4 unused */ ··· 423 423 return isa_irq_fixup(dev, COMMON_TABLE_LOOKUP); 424 424 } 425 425 426 - static u8 __init 426 + static u8 427 427 monet_swizzle(struct pci_dev *dev, u8 *pinp) 428 428 { 429 429 struct pci_controller *hose = dev->sysdata; ··· 456 456 return slot; 457 457 } 458 458 459 - static int __init 459 + static int 460 460 webbrick_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 461 461 { 462 - static char irq_tab[13][5] __initdata = { 462 + static char irq_tab[13][5] = { 463 463 /*INT INTA INTB INTC INTD */ 464 464 { -1, -1, -1, -1, -1}, /* IdSel 7 ISA Bridge */ 465 465 { -1, -1, -1, -1, -1}, /* IdSel 8 unused */ ··· 478 478 return isa_irq_fixup(dev, COMMON_TABLE_LOOKUP); 479 479 } 480 480 481 - static int __init 481 + static int 482 482 clipper_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 483 483 { 484 - static char irq_tab[7][5] __initdata = { 484 + static char irq_tab[7][5] = { 485 485 /*INT INTA INTB INTC INTD */ 486 486 { 16+ 8, 16+ 8, 16+ 9, 16+10, 16+11}, /* IdSel 1 slot 1 */ 487 487 { 16+12, 16+12, 16+13, 16+14, 16+15}, /* IdSel 2 slot 2 */
+2 -2
arch/alpha/kernel/sys_eb64p.c
··· 167 167 * comes in on. This makes interrupt processing much easier. 168 168 */ 169 169 170 - static int __init 170 + static int 171 171 eb64p_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 172 172 { 173 - static char irq_tab[5][5] __initdata = { 173 + static char irq_tab[5][5] = { 174 174 /*INT INTA INTB INTC INTD */ 175 175 {16+7, 16+7, 16+7, 16+7, 16+7}, /* IdSel 5, slot ?, ?? */ 176 176 {16+0, 16+0, 16+2, 16+4, 16+9}, /* IdSel 6, slot ?, ?? */
+2 -2
arch/alpha/kernel/sys_eiger.c
··· 141 141 } 142 142 } 143 143 144 - static int __init 144 + static int 145 145 eiger_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 146 146 { 147 147 u8 irq_orig; ··· 158 158 return irq_orig - 0x80; 159 159 } 160 160 161 - static u8 __init 161 + static u8 162 162 eiger_swizzle(struct pci_dev *dev, u8 *pinp) 163 163 { 164 164 struct pci_controller *hose = dev->sysdata;
+3 -3
arch/alpha/kernel/sys_miata.c
··· 149 149 * comes in on. This makes interrupt processing much easier. 150 150 */ 151 151 152 - static int __init 152 + static int 153 153 miata_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 154 154 { 155 - static char irq_tab[18][5] __initdata = { 155 + static char irq_tab[18][5] = { 156 156 /*INT INTA INTB INTC INTD */ 157 157 {16+ 8, 16+ 8, 16+ 8, 16+ 8, 16+ 8}, /* IdSel 14, DC21142 */ 158 158 { -1, -1, -1, -1, -1}, /* IdSel 15, EIDE */ ··· 196 196 return COMMON_TABLE_LOOKUP; 197 197 } 198 198 199 - static u8 __init 199 + static u8 200 200 miata_swizzle(struct pci_dev *dev, u8 *pinp) 201 201 { 202 202 int slot, pin = *pinp;
+2 -2
arch/alpha/kernel/sys_mikasa.c
··· 145 145 * comes in on. This makes interrupt processing much easier. 146 146 */ 147 147 148 - static int __init 148 + static int 149 149 mikasa_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 150 150 { 151 - static char irq_tab[8][5] __initdata = { 151 + static char irq_tab[8][5] = { 152 152 /*INT INTA INTB INTC INTD */ 153 153 {16+12, 16+12, 16+12, 16+12, 16+12}, /* IdSel 17, SCSI */ 154 154 { -1, -1, -1, -1, -1}, /* IdSel 18, PCEB */
+1 -1
arch/alpha/kernel/sys_nautilus.c
··· 62 62 common_init_isa_dma(); 63 63 } 64 64 65 - static int __init 65 + static int 66 66 nautilus_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 67 67 { 68 68 /* Preserve the IRQ set up by the console. */
+3 -3
arch/alpha/kernel/sys_noritake.c
··· 193 193 * comes in on. This makes interrupt processing much easier. 194 194 */ 195 195 196 - static int __init 196 + static int 197 197 noritake_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 198 198 { 199 - static char irq_tab[15][5] __initdata = { 199 + static char irq_tab[15][5] = { 200 200 /*INT INTA INTB INTC INTD */ 201 201 /* note: IDSELs 16, 17, and 25 are CORELLE only */ 202 202 { 16+1, 16+1, 16+1, 16+1, 16+1}, /* IdSel 16, QLOGIC */ ··· 221 221 return COMMON_TABLE_LOOKUP; 222 222 } 223 223 224 - static u8 __init 224 + static u8 225 225 noritake_swizzle(struct pci_dev *dev, u8 *pinp) 226 226 { 227 227 int slot, pin = *pinp;
+2 -2
arch/alpha/kernel/sys_rawhide.c
··· 221 221 * 222 222 */ 223 223 224 - static int __init 224 + static int 225 225 rawhide_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 226 226 { 227 - static char irq_tab[5][5] __initdata = { 227 + static char irq_tab[5][5] = { 228 228 /*INT INTA INTB INTC INTD */ 229 229 { 16+16, 16+16, 16+16, 16+16, 16+16}, /* IdSel 1 SCSI PCI 1 */ 230 230 { 16+ 0, 16+ 0, 16+ 1, 16+ 2, 16+ 3}, /* IdSel 2 slot 2 */
+3 -3
arch/alpha/kernel/sys_ruffian.c
··· 117 117 * 118 118 */ 119 119 120 - static int __init 120 + static int 121 121 ruffian_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 122 122 { 123 - static char irq_tab[11][5] __initdata = { 123 + static char irq_tab[11][5] = { 124 124 /*INT INTA INTB INTC INTD */ 125 125 {-1, -1, -1, -1, -1}, /* IdSel 13, 21052 */ 126 126 {-1, -1, -1, -1, -1}, /* IdSel 14, SIO */ ··· 139 139 return COMMON_TABLE_LOOKUP; 140 140 } 141 141 142 - static u8 __init 142 + static u8 143 143 ruffian_swizzle(struct pci_dev *dev, u8 *pinp) 144 144 { 145 145 int slot, pin = *pinp;
+2 -2
arch/alpha/kernel/sys_rx164.c
··· 142 142 * 143 143 */ 144 144 145 - static int __init 145 + static int 146 146 rx164_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 147 147 { 148 148 #if 0 ··· 156 156 { 16+1, 16+1, 16+6, 16+11, 16+16}, /* IdSel 10, slot 4 */ 157 157 }; 158 158 #else 159 - static char irq_tab[6][5] __initdata = { 159 + static char irq_tab[6][5] = { 160 160 /*INT INTA INTB INTC INTD */ 161 161 { 16+0, 16+0, 16+6, 16+11, 16+16}, /* IdSel 5, slot 0 */ 162 162 { 16+1, 16+1, 16+7, 16+12, 16+17}, /* IdSel 6, slot 1 */
+5 -5
arch/alpha/kernel/sys_sable.c
··· 192 192 * with the values in the irq swizzling tables above. 193 193 */ 194 194 195 - static int __init 195 + static int 196 196 sable_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 197 197 { 198 - static char irq_tab[9][5] __initdata = { 198 + static char irq_tab[9][5] = { 199 199 /*INT INTA INTB INTC INTD */ 200 200 { 32+0, 32+0, 32+0, 32+0, 32+0}, /* IdSel 0, TULIP */ 201 201 { 32+1, 32+1, 32+1, 32+1, 32+1}, /* IdSel 1, SCSI */ ··· 374 374 * with the values in the irq swizzling tables above. 375 375 */ 376 376 377 - static int __init 377 + static int 378 378 lynx_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 379 379 { 380 - static char irq_tab[19][5] __initdata = { 380 + static char irq_tab[19][5] = { 381 381 /*INT INTA INTB INTC INTD */ 382 382 { -1, -1, -1, -1, -1}, /* IdSel 13, PCEB */ 383 383 { -1, -1, -1, -1, -1}, /* IdSel 14, PPB */ ··· 404 404 return COMMON_TABLE_LOOKUP; 405 405 } 406 406 407 - static u8 __init 407 + static u8 408 408 lynx_swizzle(struct pci_dev *dev, u8 *pinp) 409 409 { 410 410 int slot, pin = *pinp;
+4 -4
arch/alpha/kernel/sys_sio.c
··· 144 144 outb((level_bits >> 8) & 0xff, 0x4d1); 145 145 } 146 146 147 - static inline int __init 147 + static inline int 148 148 noname_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 149 149 { 150 150 /* ··· 165 165 * that they use the default INTA line, if they are interrupt 166 166 * driven at all). 167 167 */ 168 - static char irq_tab[][5] __initdata = { 168 + static char irq_tab[][5] = { 169 169 /*INT A B C D */ 170 170 { 3, 3, 3, 3, 3}, /* idsel 6 (53c810) */ 171 171 {-1, -1, -1, -1, -1}, /* idsel 7 (SIO: PCI/ISA bridge) */ ··· 183 183 return irq >= 0 ? tmp : -1; 184 184 } 185 185 186 - static inline int __init 186 + static inline int 187 187 p2k_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 188 188 { 189 - static char irq_tab[][5] __initdata = { 189 + static char irq_tab[][5] = { 190 190 /*INT A B C D */ 191 191 { 0, 0, -1, -1, -1}, /* idsel 6 (53c810) */ 192 192 {-1, -1, -1, -1, -1}, /* idsel 7 (SIO: PCI/ISA bridge) */
+2 -2
arch/alpha/kernel/sys_sx164.c
··· 94 94 * 9 32 bit PCI option slot 3 95 95 */ 96 96 97 - static int __init 97 + static int 98 98 sx164_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 99 99 { 100 - static char irq_tab[5][5] __initdata = { 100 + static char irq_tab[5][5] = { 101 101 /*INT INTA INTB INTC INTD */ 102 102 { 16+ 9, 16+ 9, 16+13, 16+17, 16+21}, /* IdSel 5 slot 2 J17 */ 103 103 { 16+11, 16+11, 16+15, 16+19, 16+23}, /* IdSel 6 slot 0 J19 */
+3 -3
arch/alpha/kernel/sys_takara.c
··· 155 155 * assign it whatever the hell IRQ we like and it doesn't matter. 156 156 */ 157 157 158 - static int __init 158 + static int 159 159 takara_map_irq_srm(const struct pci_dev *dev, u8 slot, u8 pin) 160 160 { 161 - static char irq_tab[15][5] __initdata = { 161 + static char irq_tab[15][5] = { 162 162 { 16+3, 16+3, 16+3, 16+3, 16+3}, /* slot 6 == device 3 */ 163 163 { 16+2, 16+2, 16+2, 16+2, 16+2}, /* slot 7 == device 2 */ 164 164 { 16+1, 16+1, 16+1, 16+1, 16+1}, /* slot 8 == device 1 */ ··· 210 210 return COMMON_TABLE_LOOKUP; 211 211 } 212 212 213 - static u8 __init 213 + static u8 214 214 takara_swizzle(struct pci_dev *dev, u8 *pinp) 215 215 { 216 216 int slot = PCI_SLOT(dev->devfn);
+2 -2
arch/alpha/kernel/sys_wildfire.c
··· 288 288 * 7 64 bit PCI 1 option slot 7 289 289 */ 290 290 291 - static int __init 291 + static int 292 292 wildfire_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 293 293 { 294 - static char irq_tab[8][5] __initdata = { 294 + static char irq_tab[8][5] = { 295 295 /*INT INTA INTB INTC INTD */ 296 296 { -1, -1, -1, -1, -1}, /* IdSel 0 ISA Bridge */ 297 297 { 36, 36, 36+1, 36+2, 36+3}, /* IdSel 1 SCSI builtin */