diff options
author | Patrick Rudolph <siro@das-labor.org> | 2017-06-07 09:39:28 +0200 |
---|---|---|
committer | Patrick Rudolph <siro@das-labor.org> | 2017-06-08 11:39:58 +0200 |
commit | 6086b4ee38bf7f004fdff4e5f783754607da54e5 (patch) | |
tree | 3b41103f3ada11fd3e03967f2bdf19b1972f3253 | |
parent | 811d93af39142b4e18073574db69bfe36af512b1 (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.c | 5 |
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) |