Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e2577d22 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull PCI fixes from Bjorn Helgaas:

 - fix endpoint "end of test" interrupt issue (introduced in v4.14-rc1)
   (John Keeping)

 - fix MIPS use-after-free map_irq() issue (introduced in v4.14-rc1)
   (Lorenzo Pieralisi)

* tag 'pci-v4.14-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
  PCI: endpoint: Use correct "end of test" interrupt
  MIPS: PCI: Move map_irq() hooks out of initdata
parents 9ae0b37e 749aaf33
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -22,10 +22,10 @@
#include "pci.h"

static int (*ath79_pci_plat_dev_init)(struct pci_dev *dev);
static const struct ath79_pci_irq *ath79_pci_irq_map __initdata;
static unsigned ath79_pci_nr_irqs __initdata;
static const struct ath79_pci_irq *ath79_pci_irq_map;
static unsigned ath79_pci_nr_irqs;

static const struct ath79_pci_irq ar71xx_pci_irq_map[] __initconst = {
static const struct ath79_pci_irq ar71xx_pci_irq_map[] = {
	{
		.slot	= 17,
		.pin	= 1,
@@ -41,7 +41,7 @@ static const struct ath79_pci_irq ar71xx_pci_irq_map[] __initconst = {
	}
};

static const struct ath79_pci_irq ar724x_pci_irq_map[] __initconst = {
static const struct ath79_pci_irq ar724x_pci_irq_map[] = {
	{
		.slot	= 0,
		.pin	= 1,
@@ -49,7 +49,7 @@ static const struct ath79_pci_irq ar724x_pci_irq_map[] __initconst = {
	}
};

static const struct ath79_pci_irq qca955x_pci_irq_map[] __initconst = {
static const struct ath79_pci_irq qca955x_pci_irq_map[] = {
	{
		.bus	= 0,
		.slot	= 0,
@@ -64,7 +64,7 @@ static const struct ath79_pci_irq qca955x_pci_irq_map[] __initconst = {
	},
};

int __init pcibios_map_irq(const struct pci_dev *dev, uint8_t slot, uint8_t pin)
int pcibios_map_irq(const struct pci_dev *dev, uint8_t slot, uint8_t pin)
{
	int irq = -1;
	int i;
+1 −1
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@
#define INTC	PC104PLUS_INTC_IRQ
#define INTD	PC104PLUS_INTD_IRQ

static char irq_tab_capcella[][5] __initdata = {
static char irq_tab_capcella[][5] = {
 [11] = { -1, INT1, INT1, INT1, INT1 },
 [12] = { -1, INT2, INT2, INT2, INT2 },
 [14] = { -1, INTA, INTB, INTC, INTD }
+3 −3
Original line number Diff line number Diff line
@@ -147,7 +147,7 @@ static void qube_raq_via_board_id_fixup(struct pci_dev *dev)
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_0,
	 qube_raq_via_board_id_fixup);

static char irq_tab_qube1[] __initdata = {
static char irq_tab_qube1[] = {
  [COBALT_PCICONF_CPU]	   = 0,
  [COBALT_PCICONF_ETH0]	   = QUBE1_ETH0_IRQ,
  [COBALT_PCICONF_RAQSCSI] = SCSI_IRQ,
@@ -156,7 +156,7 @@ static char irq_tab_qube1[] __initdata = {
  [COBALT_PCICONF_ETH1]	   = 0
};

static char irq_tab_cobalt[] __initdata = {
static char irq_tab_cobalt[] = {
  [COBALT_PCICONF_CPU]	   = 0,
  [COBALT_PCICONF_ETH0]	   = ETH0_IRQ,
  [COBALT_PCICONF_RAQSCSI] = SCSI_IRQ,
@@ -165,7 +165,7 @@ static char irq_tab_cobalt[] __initdata = {
  [COBALT_PCICONF_ETH1]	   = ETH1_IRQ
};

static char irq_tab_raq2[] __initdata = {
static char irq_tab_raq2[] = {
  [COBALT_PCICONF_CPU]	   = 0,
  [COBALT_PCICONF_ETH0]	   = ETH0_IRQ,
  [COBALT_PCICONF_RAQSCSI] = RAQ2_SCSI_IRQ,
+1 −1
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@
 */

#define MAX_SLOT_NUM 10
static unsigned char irq_map[][5] __initdata = {
static unsigned char irq_map[][5] = {
	[3] = {0, MARKEINS_PCI_IRQ_INTB, MARKEINS_PCI_IRQ_INTC,
	       MARKEINS_PCI_IRQ_INTD, 0,},
	[4] = {0, MARKEINS_PCI_IRQ_INTA, 0, 0, 0,},
+1 −1
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@
#define INTB   MACEPCI_SHARED0_IRQ
#define INTC   MACEPCI_SHARED1_IRQ
#define INTD   MACEPCI_SHARED2_IRQ
static char irq_tab_mace[][5] __initdata = {
static char irq_tab_mace[][5] = {
      /* Dummy	INT#A  INT#B  INT#C  INT#D */
	{0,	    0,	   0,	  0,	 0}, /* This is placeholder row - never used */
	{0,	SCSI0, SCSI0, SCSI0, SCSI0},
Loading