]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
platform/x86: x86-android-tablets: Stop using EPROBE_DEFER
authorHans de Goede <hansg@kernel.org>
Sat, 20 Sep 2025 20:07:13 +0000 (22:07 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Nov 2025 20:37:32 +0000 (15:37 -0500)
[ Upstream commit 01fd7cf3534aa107797d130f461ba7bcad30414d ]

Since the x86-android-tablets code uses platform_create_bundle() it cannot
use EPROBE_DEFER and the driver-core will translate EPROBE_DEFER to ENXIO.

Stop using EPROBE_DEFER instead log an error and return ENODEV, or for
non-fatal cases log a warning and return 0.

Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Hans de Goede <hansg@kernel.org>
Link: https://patch.msgid.link/20250920200713.20193-21-hansg@kernel.org
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/platform/x86/x86-android-tablets/core.c
drivers/platform/x86/x86-android-tablets/other.c

index 2a9c471785050c1c6e43940cbe4ced336aa2f934..8c8f10983f2894420c23162faef4aa13b71255cb 100644 (file)
@@ -277,8 +277,10 @@ get_serdev_controller_by_pci_parent(const struct x86_serdev_info *info)
        struct pci_dev *pdev;
 
        pdev = pci_get_domain_bus_and_slot(0, 0, info->ctrl.pci.devfn);
-       if (!pdev)
-               return ERR_PTR(-EPROBE_DEFER);
+       if (!pdev) {
+               pr_err("error could not get PCI serdev at devfn 0x%02x\n", info->ctrl.pci.devfn);
+               return ERR_PTR(-ENODEV);
+       }
 
        /* This puts our reference on pdev and returns a ref on the ctrl */
        return get_serdev_controller_from_parent(&pdev->dev, 0, info->ctrl_devname);
index f7bd9f863c85ed55408fcb33b92c508f7bd735f2..aa4f8810974d593dc48ab92749238225b051d119 100644 (file)
@@ -809,8 +809,10 @@ static int __init vexia_edu_atla10_9v_init(struct device *dev)
 
        /* Reprobe the SDIO controller to enumerate the now enabled Wifi module */
        pdev = pci_get_domain_bus_and_slot(0, 0, PCI_DEVFN(0x11, 0));
-       if (!pdev)
-               return -EPROBE_DEFER;
+       if (!pdev) {
+               pr_warn("Could not get PCI SDIO at devfn 0x%02x\n", PCI_DEVFN(0x11, 0));
+               return 0;
+       }
 
        ret = device_reprobe(&pdev->dev);
        if (ret)