/* * Copyright (c) 2014, Steffen Trumtrar * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and * may be copied, distributed, and modified under those terms. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef _DT_BINDINGS_RESET_ALTR_RST_MGR_A10_H #define _DT_BINDINGS_RESET_ALTR_RST_MGR_A10_H /* MPUMODRST */ #define CPU0_RESET 0 #define CPU1_RESET 1 #define WDS_RESET 2 #define SCUPER_RESET 3 /* PER0MODRST */ #define EMAC0_RESET 32 #define EMAC1_RESET 33 #define EMAC2_RESET 34 #define USB0_RESET 35 #define USB1_RESET 36 #define NAND_RESET 37 #define QSPI_RESET 38 #define SDMMC_RESET 39 #define EMAC0_OCP_RESET 40 #define EMAC1_OCP_RESET 41 #define EMAC2_OCP_RESET 42 #define USB0_OCP_RESET 43 #define USB1_OCP_RESET 44 #define NAND_OCP_RESET 45 #define QSPI_OCP_RESET 46 #define SDMMC_OCP_RESET 47 #define DMA_RESET 48 #define SPIM0_RESET 49 #define SPIM1_RESET 50 #define SPIS0_RESET 51 #define SPIS1_RESET 52 #define DMA_OCP_RESET 53 #define EMAC_PTP_RESET 54 /* 55 is empty*/ #define DMAIF0_RESET 56 #define DMAIF1_RESET 57 #define DMAIF2_RESET 58 #define DMAIF3_RESET 59 #define DMAIF4_RESET 60 #define DMAIF5_RESET 61 #define DMAIF6_RESET 62 #define DMAIF7_RESET 63 /* PER1MODRST */ #define L4WD0_RESET 64 #define L4WD1_RESET 65 #define L4SYSTIMER0_RESET 66 #define L4SYSTIMER1_RESET 67 #define SPTIMER0_RESET 68 #define SPTIMER1_RESET 69 /* 70-71 is reserved */ #define I2C0_RESET 72 #define I2C1_RESET 73 #define I2C2_RESET 74 #define I2C3_RESET 75 #define I2C4_RESET 76 /* 77-79 is reserved */ #define UART0_RESET 80 #define UART1_RESET 81 /* 82-87 is reserved */ #define GPIO0_RESET 88 #define GPIO1_RESET 89 #define GPIO2_RESET 90 /* BRGMODRST */ #define HPS2FPGA_RESET 96 #define LWHPS2FPGA_RESET 97 #define FPGA2HPS_RESET 98 #define F2SSDRAM0_RESET 99 #define F2SSDRAM1_RESET 100 #define F2SSDRAM2_RESET 101 #define DDRSCH_RESET 102 /* SYSMODRST*/ #define ROM_RESET 128 #define OCRAM_RESET 129 /* 130 is reserved */ #define FPGAMGR_RESET 131 #define S2F_RESET 132 #define SYSDBG_RESET 133 #define OCRAM_OCP_RESET 134 /* COLDMODRST */ #define CLKMGRCOLD_RESET 160 /* 161-162 is reserved */ #define S2FCOLD_RESET 163 #define TIMESTAMPCOLD_RESET 164 #define TAPCOLD_RESET 165 #define HMCCOLD_RESET 166 #define IOMGRCOLD_RESET 167 /* NRSTMODRST */ #define NRSTPINOE_RESET 192 /* DBGMODRST */ #define DBG_RESET 224 #endif 43'>root/net/8021q/vlanproc.c
diff options
context:
space:
mode:
authorBjorn Helgaas <bhelgaas@google.com>2017-01-27 15:00:45 -0600
committerBjorn Helgaas <bhelgaas@google.com>2017-01-27 15:00:45 -0600
commit030305d69fc6963c16003f50d7e8d74b02d0a143 (patch)
tree363a4e34d199178769b7e7eeb26ea2620a55847b /net/8021q/vlanproc.c
parent4d191b1b63c209e37bf27938ef365244d3c41084 (diff)
PCI/ASPM: Handle PCI-to-PCIe bridges as roots of PCIe hierarchies
In a struct pcie_link_state, link->root points to the pcie_link_state of the root of the PCIe hierarchy. For the topmost link, this points to itself (link->root = link). For others, we copy the pointer from the parent (link->root = link->parent->root). Previously we recognized that Root Ports originated PCIe hierarchies, but we treated PCI/PCI-X to PCIe Bridges as being in the middle of the hierarchy, and when we tried to copy the pointer from link->parent->root, there was no parent, and we dereferenced a NULL pointer: BUG: unable to handle kernel NULL pointer dereference at 0000000000000090 IP: [<ffffffff9e424350>] pcie_aspm_init_link_state+0x170/0x820 Recognize that PCI/PCI-X to PCIe Bridges originate PCIe hierarchies just like Root Ports do, so link->root for these devices should also point to itself. Fixes: 51ebfc92b72b ("PCI: Enumerate switches below PCI-to-PCIe bridges") Link: https://bugzilla.kernel.org/show_bug.cgi?id=193411 Link: https://bugzilla.opensuse.org/show_bug.cgi?id=1022181 Tested-by: lists@ssl-mail.com Tested-by: Jayachandran C. <jnair@caviumnetworks.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> CC: stable@vger.kernel.org # v4.2+
Diffstat (limited to 'net/8021q/vlanproc.c')