summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Rudolph <siro@das-labor.org>2017-06-07 09:39:28 +0200
committerPatrick Rudolph <siro@das-labor.org>2017-06-08 11:39:58 +0200
commit6086b4ee38bf7f004fdff4e5f783754607da54e5 (patch)
tree3b41103f3ada11fd3e03967f2bdf19b1972f3253
parent811d93af39142b4e18073574db69bfe36af512b1 (diff)
drvs/intel/wifi/wifi: Fix regression
Fix regression introduced by commit 5c026445 (drivers/intel/wifi: Add support for generating SSDT table) In case the regular PCI path is taken, there're no chip_ops and the code will segfault. The bug was covered by other bugs that caused this code to never execute. Add NULL pointer checks and only fill in device name if one is provided. Tested on Lenovo T430 and wifi card 8086:0085. Change-Id: I84e804f033bcd3af1a7f76670275fdf5159d381f Signed-off-by: Patrick Rudolph <siro@das-labor.org> Reviewed-on: https://review.coreboot.org/20082 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
-rw-r--r--src/drivers/intel/wifi/wifi.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/drivers/intel/wifi/wifi.c b/src/drivers/intel/wifi/wifi.c
index 15cb2c1a89..a71f014ced 100644
--- a/src/drivers/intel/wifi/wifi.c
+++ b/src/drivers/intel/wifi/wifi.c
@@ -145,7 +145,8 @@ static void intel_wifi_fill_ssdt(struct device *dev)
acpigen_write_scope(path);
acpigen_write_device(acpi_device_name(dev));
acpigen_write_name_integer("_UID", 0);
- acpigen_write_name_string("_DDN", dev->chip_ops->name);
+ if (dev->chip_ops)
+ acpigen_write_name_string("_DDN", dev->chip_ops->name);
/* Address */
address = PCI_SLOT(dev->path.pci.devfn) & 0xffff;
@@ -186,7 +187,7 @@ static void intel_wifi_fill_ssdt(struct device *dev)
acpigen_pop_len(); /* Scope */
printk(BIOS_INFO, "%s.%s: %s %s\n", path, acpi_device_name(dev),
- dev->chip_ops->name, dev_path(dev));
+ dev->chip_ops ? dev->chip_ops->name : "", dev_path(dev));
}
static const char *intel_wifi_acpi_name(struct device *dev)