[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 20/34] pnv_phb4.c: check if root port exists in rc_config function
From: |
Cédric Le Goater |
Subject: |
[PULL 20/34] pnv_phb4.c: check if root port exists in rc_config functions |
Date: |
Wed, 12 Jan 2022 12:55:37 +0100 |
From: Daniel Henrique Barboza <danielhb413@gmail.com>
pnv_phb4_rc_config_read() and pnv_phb4_rc_config_write() are asserting
the existence of the root port. The root port is now optional, and there
will be cases where a pnv-phb4 device won't have a root port attached.
Instead of asserting, check if the root port exists before read/writing
into it.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220105212338.49899-6-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
hw/pci-host/pnv_phb4.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c
index 14827f846434..83dedc878a57 100644
--- a/hw/pci-host/pnv_phb4.c
+++ b/hw/pci-host/pnv_phb4.c
@@ -152,7 +152,10 @@ static void pnv_phb4_rc_config_write(PnvPHB4 *phb,
unsigned off,
}
pdev = pci_find_device(pci->bus, 0, 0);
- assert(pdev);
+ if (!pdev) {
+ phb_error(phb, "rc_config_write device not found\n");
+ return;
+ }
pci_host_config_write_common(pdev, off, PHB_RC_CONFIG_SIZE,
bswap32(val), 4);
@@ -171,7 +174,10 @@ static uint64_t pnv_phb4_rc_config_read(PnvPHB4 *phb,
unsigned off,
}
pdev = pci_find_device(pci->bus, 0, 0);
- assert(pdev);
+ if (!pdev) {
+ phb_error(phb, "rc_config_read device not found\n");
+ return ~0ull;
+ }
val = pci_host_config_read_common(pdev, off, PHB_RC_CONFIG_SIZE, 4);
return bswap32(val);
--
2.31.1
- [PULL 17/34] pnv_phb4.c: add unique chassis and slot for pnv_phb4_root_port, (continued)
- [PULL 17/34] pnv_phb4.c: add unique chassis and slot for pnv_phb4_root_port, Cédric Le Goater, 2022/01/12
- [PULL 24/34] ppc/pnv: Move num_phbs under Pnv8Chip, Cédric Le Goater, 2022/01/12
- [PULL 27/34] pnv_phb4_pec.c: move pnv_pec_phb_offset() to pnv_phb4.c, Cédric Le Goater, 2022/01/12
- [PULL 03/34] spapr: Fix support of POWER5+ processors, Cédric Le Goater, 2022/01/12
- [PULL 14/34] target/ppc: Introduce a wrapper for powerpc_excp, Cédric Le Goater, 2022/01/12
- [PULL 01/34] pseries: Update SLOF firmware image, Cédric Le Goater, 2022/01/12
- [PULL 02/34] target/ppc: Add popcntb instruction to POWER5+ processors, Cédric Le Goater, 2022/01/12
- [PULL 11/34] target/ppc: Add HV support to ppc_interrupts_little_endian, Cédric Le Goater, 2022/01/12
- [PULL 12/34] target/ppc: Add MSR_ILE support to ppc_interrupts_little_endian, Cédric Le Goater, 2022/01/12
- [PULL 29/34] ppc/pnv: set phb4 properties in stk_realize(), Cédric Le Goater, 2022/01/12
- [PULL 20/34] pnv_phb4.c: check if root port exists in rc_config functions,
Cédric Le Goater <=
- [PULL 19/34] pnv_phb4.c: make pnv-phb4-root-port user creatable, Cédric Le Goater, 2022/01/12
- [PULL 33/34] ppc/pnv: turn pnv_phb4_update_regions() into static, Cédric Le Goater, 2022/01/12
- [PULL 16/34] pnv_phb3.c: add unique chassis and slot for pnv_phb3_root_port, Cédric Le Goater, 2022/01/12
- [PULL 32/34] ppc/pnv: Introduce user creatable pnv-phb4 devices, Cédric Le Goater, 2022/01/12
- [PULL 13/34] target/ppc: Use ppc_interrupts_little_endian in powerpc_excp, Cédric Le Goater, 2022/01/12
- [PULL 21/34] ppc/pnv: Introduce support for user created PHB3 devices, Cédric Le Goater, 2022/01/12
- [PULL 26/34] pnv_phb4.c: change TYPE_PNV_PHB4_ROOT_BUS name, Cédric Le Goater, 2022/01/12
- [PULL 22/34] ppc/pnv: Reparent user created PHB3 devices to the PnvChip, Cédric Le Goater, 2022/01/12
- [PULL 28/34] pnv_phb4_pec: use pnv_phb4_pec_get_phb_id() in pnv_pec_dt_xscom(), Cédric Le Goater, 2022/01/12
- [PULL 31/34] ppc/pnv: turn 'phb' into a pointer in struct PnvPhb4PecStack, Cédric Le Goater, 2022/01/12