From f950cf4d6886242bec8fcdaf30372fd49dc4040e Mon Sep 17 00:00:00 2001 From: Patrick Rudolph Date: Wed, 7 Jun 2017 09:39:28 +0200 Subject: [PATCH] UPSTREAM: 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. BUG=none BRANCH=none TEST=none Change-Id: Ieb95c7f281d8f69ecf3cc2e0e176a24923891a2f Signed-off-by: Patrick Georgi Original-Commit-Id: 6086b4ee38bf7f004fdff4e5f783754607da54e5 Original-Change-Id: I84e804f033bcd3af1a7f76670275fdf5159d381f Original-Signed-off-by: Patrick Rudolph Original-Reviewed-on: https://review.coreboot.org/20082 Original-Tested-by: build bot (Jenkins) Original-Reviewed-by: Duncan Laurie Reviewed-on: https://chromium-review.googlesource.com/528269 Commit-Ready: Patrick Georgi Tested-by: Patrick Georgi Reviewed-by: Patrick Georgi --- src/drivers/intel/wifi/wifi.c | 5 +++-- 1 file 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)