]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
platform/x86: sony-laptop: Check ACPI_COMPANION() against NULL
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 12 May 2026 14:13:59 +0000 (16:13 +0200)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Wed, 20 May 2026 10:05:21 +0000 (13:05 +0300)
Every platform driver can be forced to match a device that doesn't match
its list of device IDs because of device_match_driver_override(), so
platform drivers that rely on the existence of a device's ACPI companion
object need to verify its presence.

Accordingly, add requisite ACPI_COMPANION() checks against NULL to the
platform/x86 sony-laptop driver.

Fixes: 138db7ee58c0 ("platform/x86: sony-laptop: Convert PIC driver to a platform one")
Fixes: 14004dd31caa ("platform/x86: sony-laptop: Convert NC driver to a platform one")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/1871155.VLH7GnMWUR@rafael.j.wysocki
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/sony-laptop.c

index b18f00e9082fa5efa16ff8dae77a87328d9d8b69..67370967df6f5141df1b41b7d1a36726c544138d 100644 (file)
@@ -3147,11 +3147,15 @@ static void sony_nc_backlight_cleanup(void)
 
 static int sony_nc_probe(struct platform_device *pdev)
 {
-       struct acpi_device *device = ACPI_COMPANION(&pdev->dev);
+       struct acpi_device *device;
        acpi_status status;
        int result = 0;
        struct sony_nc_value *item;
 
+       device = ACPI_COMPANION(&pdev->dev);
+       if (!device)
+               return -ENODEV;
+
        sony_nc_acpi_device = device;
        strscpy(acpi_device_class(device), "sony/hotkey");
 
@@ -4509,11 +4513,15 @@ static void sony_pic_remove(struct platform_device *pdev)
 
 static int sony_pic_probe(struct platform_device *pdev)
 {
-       struct acpi_device *device = ACPI_COMPANION(&pdev->dev);
        struct sony_pic_ioport *io, *tmp_io;
        struct sony_pic_irq *irq, *tmp_irq;
+       struct acpi_device *device;
        int result;
 
+       device = ACPI_COMPANION(&pdev->dev);
+       if (!device)
+               return -ENODEV;
+
        spic_dev.acpi_dev = device;
        strscpy(acpi_device_class(device), "sony/hotkey");
        sony_pic_detect_device_type(&spic_dev);