Skip to content

Commit 91a45b1

Browse files
AlisonSchofielddjbw
authored andcommitted
cxl/acpi: Do not fail cxl_acpi_probe() based on a missing CHBS
When an ACPI0016 Host Bridge device is present yet no corresponding CEDT Host Bridge Structure (CHBS) exists, the ACPI probe method fails. Rather than fail, emit this warning and continue: cxl_acpi ACPI0017:00: No CHBS found for Host Bridge: ACPI0016:02 This error may occur on systems that are not compliant with the ACPI specification. Compliant systems include a CHBS entry for every CXL host bridge that is present at boot. Suggested-by: Ira Weiny <[email protected]> Signed-off-by: Alison Schofield <[email protected]> Tested-by: Vishal Verma <[email protected]> Reviewed-by: Ira Weiny <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Dan Williams <[email protected]>
1 parent ed97afb commit 91a45b1

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

drivers/cxl/acpi.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ static int add_host_bridge_uport(struct device *match, void *arg)
288288
dport = find_dport_by_dev(root_port, match);
289289
if (!dport) {
290290
dev_dbg(host, "host bridge expected and not found\n");
291-
return -ENODEV;
291+
return 0;
292292
}
293293

294294
port = devm_cxl_add_port(host, match, dport->component_reg_phys,
@@ -377,9 +377,11 @@ static int add_host_bridge_dport(struct device *match, void *arg)
377377
}
378378

379379
chbs = cxl_acpi_match_chbs(host, uid);
380-
if (IS_ERR(chbs))
381-
dev_dbg(host, "No CHBS found for Host Bridge: %s\n",
382-
dev_name(match));
380+
if (IS_ERR(chbs)) {
381+
dev_warn(host, "No CHBS found for Host Bridge: %s\n",
382+
dev_name(match));
383+
return 0;
384+
}
383385

384386
rc = cxl_add_dport(root_port, match, uid, get_chbcr(chbs));
385387
if (rc) {

0 commit comments

Comments
 (0)