From nobody Mon Apr 13 20:05:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5E913C433FE for ; Wed, 16 Nov 2022 12:03:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232745AbiKPMD1 (ORCPT ); Wed, 16 Nov 2022 07:03:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46758 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233082AbiKPMCl (ORCPT ); Wed, 16 Nov 2022 07:02:41 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DD2001D0F4 for ; Wed, 16 Nov 2022 03:54:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1668599651; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=YSf6lqgrQaBsJ/0K/DNRpP5ozpW+gGv/TdDdDL02QJw=; b=FsLKCX7SARWHlN2STo569LXtDTj/gVSjc0p/iDXGnJGQ/TWbVJu5KxNNkKfdE6FEZOjfEx Xh8lvbDlOO3aFqWUZcbnv8aJDsdJ/oesI48uGNnjOTyLpZGQQkio9lu/u9Q8/kmVsexjFV T8dD7AxJ23y2fxaQI0YHchBhoLQ2dsI= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-584-W-SSFQZGNyC-xodecIby_Q-1; Wed, 16 Nov 2022 06:54:10 -0500 X-MC-Unique: W-SSFQZGNyC-xodecIby_Q-1 Received: by mail-wm1-f71.google.com with SMTP id 203-20020a1c02d4000000b003cfe9e8e3f9so162746wmc.0 for ; Wed, 16 Nov 2022 03:54:09 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YSf6lqgrQaBsJ/0K/DNRpP5ozpW+gGv/TdDdDL02QJw=; b=ri6fmDzqWsQ8HO8WVlkzFXzOlqN930p+csUrTbM4VM+MRjj8qUNQJCafgJ9LkHgGT1 JHzAFTPK34S3KiVKoeCKFVhnYYaPeubWXwoTGXhM2xE3vtR8Loe2yLwPzpTYp7jBcMiO WOvjYf9gJjyxTDbOm2Kr6sR1JGO0WttXodTyo6GBu7d34zUStpPl2X8oZEShGIzh6k7K IuIzUZY9YzjJNa7NizNppiy6foaNY04DEE5qJ+uUDqWrIK+gYC7vv/BFRT64zN8GNl63 65s3aYWJ9ydFUAyj26TXPOuMP0Bg06sKNdSItHKJ451B3ZIXPfeMmim41PwBynwdACwP pEag== X-Gm-Message-State: ANoB5pntSCNfdvEkGT+YFbM8x9aId3pUJpEOk+ZoIpEiyHrabP7dMhBk SpY/SZWz3Zz24RBguvGz9xxDJKx49aFInWPnC7XBmrMDQi9pH7/Y7fGU3tOGlqZ0JJRsBhVbIj3 jGefK/LOxET0HEVj/6i7waSWxxLTvSIxqfr0F4sfftPAU6VeqanoybaHnY01dCkBIDWq3I6HD4a E= X-Received: by 2002:a5d:4525:0:b0:236:5d8d:630d with SMTP id j5-20020a5d4525000000b002365d8d630dmr13215847wra.462.1668599647053; Wed, 16 Nov 2022 03:54:07 -0800 (PST) X-Google-Smtp-Source: AA0mqf5Erxz6YYsabeDSMLZkJtHfUkWBeL0vY3a8N5BG6vE2LmYE1UTkfZbnDw//T0xT469YGI54zw== X-Received: by 2002:a5d:4525:0:b0:236:5d8d:630d with SMTP id j5-20020a5d4525000000b002365d8d630dmr13215823wra.462.1668599646828; Wed, 16 Nov 2022 03:54:06 -0800 (PST) Received: from minerva.home (205.pool92-176-231.dynamic.orange.es. [92.176.231.205]) by smtp.gmail.com with ESMTPSA id m28-20020a05600c3b1c00b003cf37c5ddc0sm2059939wms.22.2022.11.16.03.54.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Nov 2022 03:54:06 -0800 (PST) From: Javier Martinez Canillas To: linux-kernel@vger.kernel.org Cc: Brian Masney , Bjorn Andersson , Douglas Anderson , John Stultz , Peter Robinson , Enric Balletbo i Serra , Steev Klimaszewski , Rob Herring , Daniel Vetter , linux-arm-msm@vger.kernel.org, Saravana Kannan , Greg Kroah-Hartman , Javier Martinez Canillas , Alexei Starovoitov , Jakub Kicinski , Krzysztof Kozlowski , "Rafael J. Wysocki" Subject: [PATCH v2 1/4] driver core: Make driver_deferred_probe_timeout a static variable Date: Wed, 16 Nov 2022 12:53:45 +0100 Message-Id: <20221116115348.517599-2-javierm@redhat.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221116115348.517599-1-javierm@redhat.com> References: <20221116115348.517599-1-javierm@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" It is not used outside of its compilation unit, so there's no need to export this variable. Signed-off-by: Javier Martinez Canillas Acked-by: John Stultz Reviewed-by: Andrew Halaney --- (no changes since v1) drivers/base/dd.c | 6 ++---- include/linux/device/driver.h | 1 - 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/base/dd.c b/drivers/base/dd.c index 3dda62503102..040b4060f903 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c @@ -257,13 +257,11 @@ static int deferred_devs_show(struct seq_file *s, voi= d *data) DEFINE_SHOW_ATTRIBUTE(deferred_devs); =20 #ifdef CONFIG_MODULES -int driver_deferred_probe_timeout =3D 10; +static int driver_deferred_probe_timeout =3D 10; #else -int driver_deferred_probe_timeout; +static int driver_deferred_probe_timeout; #endif =20 -EXPORT_SYMBOL_GPL(driver_deferred_probe_timeout); - static int __init deferred_probe_timeout_setup(char *str) { int timeout; diff --git a/include/linux/device/driver.h b/include/linux/device/driver.h index 2114d65b862f..50d0a416a5e7 100644 --- a/include/linux/device/driver.h +++ b/include/linux/device/driver.h @@ -240,7 +240,6 @@ driver_find_device_by_acpi_dev(struct device_driver *dr= v, const void *adev) } #endif =20 -extern int driver_deferred_probe_timeout; void driver_deferred_probe_add(struct device *dev); int driver_deferred_probe_check_state(struct device *dev); void driver_init(void); --=20 2.38.1 From nobody Mon Apr 13 20:05:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D6ACCC4332F for ; Wed, 16 Nov 2022 12:09:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229582AbiKPMJ2 (ORCPT ); Wed, 16 Nov 2022 07:09:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53562 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229617AbiKPMIF (ORCPT ); Wed, 16 Nov 2022 07:08:05 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4AFB6A3 for ; Wed, 16 Nov 2022 04:01:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1668600074; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qXpS5ogY+quOVBSqhFr3jD7fUFESPhWtnRgSpqA/kiQ=; b=CQGDJjRxtH3VgVhznwqsBhGuMANrybOgdJX4e7yc28wZPW3Gjet7o+EdeUGPG2HVs2jD71 mVJTDNHJI6SJoJtgLJ7rWZ4hgAerv7D73YkJGXma/t+x+CdUtIvkXvCY7U4LNf+ltrB9ue EmbpMoq/HJJcWhAlj5npcOJ2trKZx5Y= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-321-tDjxHqfVMVWS_e0R1uoHMQ-1; Wed, 16 Nov 2022 07:01:07 -0500 X-MC-Unique: tDjxHqfVMVWS_e0R1uoHMQ-1 Received: by mail-wm1-f69.google.com with SMTP id x10-20020a05600c420a00b003cfa33f2e7cso9895431wmh.2 for ; Wed, 16 Nov 2022 04:01:07 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qXpS5ogY+quOVBSqhFr3jD7fUFESPhWtnRgSpqA/kiQ=; b=fHxxx4+2r8T7mKQuov9MbQwdHvwMgTJCy6po91dRsUfpWhXiUBh4S0S1iU4aD0tnqR IkMPcL8mO2U193S+8GKFG5LTSqc7C4qC8iOIfy0IyM2rJUF3YF7oKHgK0dnf6IOl5ylN cUJka2kymer2jTTVMipQU1BpNOmTtipA+tzF0Mrub2lYedEOT5Dj24JAsR9H7/x646zh wfNZDScEnAilJ+c/CtucRH8GGkbZ8bfzWvRqwDtneoVfpJmGlMYx6QKq8RC/gU91vD9v xX7hYvMzEKSeAR3pEYoUoctcZ0O5piYG0U/Y6fjXObB0zvqOK2JjVgxg5VGaxYr44rc2 /eAg== X-Gm-Message-State: ANoB5pmxnVhoOu4cplZZghMlwvWtHuKldcAopq5v2nBy7E140iC0hy4s hWEW+FYw43fR5/jKUAkDfhqCy4sKwxENWdlavTfuYbl+Hgoa5J6RbnEisi1w4Ww65Ybw6HzhkB7 +ZmiQ/O0gRlk+URJlAbcTfJrjblGrvk0pXkj/T9AB17tMCnS99ifb0HrbD/iWOD4eRECxo/Ex4A k= X-Received: by 2002:a5d:6752:0:b0:236:73b2:f026 with SMTP id l18-20020a5d6752000000b0023673b2f026mr13799536wrw.396.1668600066375; Wed, 16 Nov 2022 04:01:06 -0800 (PST) X-Google-Smtp-Source: AA0mqf4JOT6/zsQCPAo4bnANXkeD6+Wah+l7xo5KbcAGf+Aw9JQb7E9QHfplxlEHsyJcBBgtA/Vxqg== X-Received: by 2002:a5d:6752:0:b0:236:73b2:f026 with SMTP id l18-20020a5d6752000000b0023673b2f026mr13799498wrw.396.1668600066055; Wed, 16 Nov 2022 04:01:06 -0800 (PST) Received: from minerva.home (205.pool92-176-231.dynamic.orange.es. [92.176.231.205]) by smtp.gmail.com with ESMTPSA id by7-20020a056000098700b002368a6deaf8sm15112370wrb.57.2022.11.16.04.01.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Nov 2022 04:01:05 -0800 (PST) From: Javier Martinez Canillas To: linux-kernel@vger.kernel.org Cc: "Rafael J . Wysocki" , Douglas Anderson , Saravana Kannan , Daniel Vetter , linux-arm-msm@vger.kernel.org, John Stultz , Peter Robinson , Steev Klimaszewski , Greg Kroah-Hartman , Enric Balletbo i Serra , Bjorn Andersson , Brian Masney , Rob Herring , Javier Martinez Canillas Subject: [PATCH v2 2/4] driver core: Set deferred probe timeout to 0 if modules are disabled Date: Wed, 16 Nov 2022 13:00:43 +0100 Message-Id: <20221116120043.519614-1-javierm@redhat.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221116115348.517599-1-javierm@redhat.com> References: <20221116115348.517599-1-javierm@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" There is no point to schedule the work queue to timeout the deferred probe if all the initcalls are done and modules are not enabled. The default for this case is already 0 but can be overridden by the deferred_probe_timeout parameter. Let's just disable to avoid queuing a work that is not needed. Signed-off-by: Javier Martinez Canillas --- (no changes since v1) drivers/base/dd.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/base/dd.c b/drivers/base/dd.c index 040b4060f903..1e8f1afeac98 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c @@ -350,8 +350,10 @@ static int deferred_probe_initcall(void) flush_work(&deferred_probe_work); initcalls_done =3D true; =20 - if (!IS_ENABLED(CONFIG_MODULES)) + if (!IS_ENABLED(CONFIG_MODULES)) { + driver_deferred_probe_timeout =3D 0; fw_devlink_drivers_done(); + } =20 /* * Trigger deferred probe again, this time we won't defer anything --=20 2.38.1 From nobody Mon Apr 13 20:05:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1304FC4332F for ; Wed, 16 Nov 2022 12:09:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233165AbiKPMJr (ORCPT ); Wed, 16 Nov 2022 07:09:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53542 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232190AbiKPMIi (ORCPT ); Wed, 16 Nov 2022 07:08:38 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 728E013D3C for ; Wed, 16 Nov 2022 04:02:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1668600128; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=sBCDaltTnEkyasPr95FrZvMKGG7154FaBt72snWNmEY=; b=atfodMCYdecfbDQJ60P8Lqw4eVD3Amu/pklU3y2Xzo6mUL1x5BAthVnWaiHVCJ+hD9WUcz rCfKPbyOqQVw1+GM+5HkHyrcLG1R/clgrK2EJdbmI4JTDupTolclD4ozM6SALDgvxnxaDa PeYDUxY/O7GJV6ZUySr0uXE0Ofkjits= Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-118-kvOeMQtxNNOVcn-WRH_5qw-1; Wed, 16 Nov 2022 07:02:07 -0500 X-MC-Unique: kvOeMQtxNNOVcn-WRH_5qw-1 Received: by mail-wr1-f71.google.com with SMTP id r4-20020adfbb04000000b00236639438e9so3663704wrg.11 for ; Wed, 16 Nov 2022 04:02:07 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sBCDaltTnEkyasPr95FrZvMKGG7154FaBt72snWNmEY=; b=PRTxuDIZVxo0vuRN2k53pI2Il+k4c3zeL0Lcm1N/fNBMmL0qqwpAw02Bm2qDNa/gdJ b3CqUPrTVR8/m+uH4KVGPqQDNQHR1+uhyJWUI764MBNlBTpcKKLBIzw4nz3fT+x7OeEz xFwhdSwLTAWBdcO8lzdpG72bGX0wnr5D1sl12aWEOohbfwrM1LP3c17vDmbwdQ7WKOhh NExdV8LP/1vCxmlxR+c13BP1J+uHO6lEnEKaIyWoanji7fnF/JgGLzcCJJIWaNzn7IqD yhCgiW3SUM00NtJ9AB0oq1LgUcvslUWJESljQQf9Q4hh+FhuJMuhzggtaQkiB75tz41Z 5aBw== X-Gm-Message-State: ANoB5plGJPym+HD0oRJE3MiS0FJqaFa95DqhrMsFyWqNVnUJrqja1l3G llxhGVFgsV6N86cCcTZyeouXTGMeKn5elu22br084wcEo2Y3pXBvV3y61Zv6BHcjKJ7cWi1F7FC TSDi7l9820XsNzJPMX9+I5JkQM0UruT02yfV3OegJ9b50auuG7A+rD3iutZ9eAr7lH4HQjLmrD1 4= X-Received: by 2002:a05:600c:4b17:b0:3cf:8b22:b567 with SMTP id i23-20020a05600c4b1700b003cf8b22b567mr1858796wmp.144.1668600126409; Wed, 16 Nov 2022 04:02:06 -0800 (PST) X-Google-Smtp-Source: AA0mqf6KcgmCL/QNhicRTBPFu1lqivBGGB3rknS3b5jX3oiZWxdz2L0DdR/VFWVJ9fiTIvp+K3GmAg== X-Received: by 2002:a05:600c:4b17:b0:3cf:8b22:b567 with SMTP id i23-20020a05600c4b1700b003cf8b22b567mr1858754wmp.144.1668600126011; Wed, 16 Nov 2022 04:02:06 -0800 (PST) Received: from minerva.home (205.pool92-176-231.dynamic.orange.es. [92.176.231.205]) by smtp.gmail.com with ESMTPSA id i17-20020adfefd1000000b00236b2804d79sm15327240wrp.2.2022.11.16.04.02.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Nov 2022 04:02:05 -0800 (PST) From: Javier Martinez Canillas To: linux-kernel@vger.kernel.org Cc: "Rafael J . Wysocki" , Douglas Anderson , Saravana Kannan , Daniel Vetter , linux-arm-msm@vger.kernel.org, John Stultz , Peter Robinson , Steev Klimaszewski , Greg Kroah-Hartman , Enric Balletbo i Serra , Bjorn Andersson , Brian Masney , Rob Herring , Javier Martinez Canillas Subject: [PATCH v2 3/4] driver core: Add fw_devlink.timeout param to stop waiting for devlinks Date: Wed, 16 Nov 2022 13:01:59 +0100 Message-Id: <20221116120159.519908-1-javierm@redhat.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221116115348.517599-1-javierm@redhat.com> References: <20221116115348.517599-1-javierm@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Currently, the probe deferral timeout does two things: 1) Call to fw_devlink_drivers_done() to relax the device dependencies and allow drivers to be probed if these dependencies are optional. 2) Disable the probe deferral mechanism so that drivers will fail to probe if the required dependencies are not present, instead of adding them to the deferred probe pending list. But there is no need to couple these two, for example the probe deferral can be used even when the device links are disable (i.e: fw_devlink=3Doff). So let's add a separate fw_devlink.timeout command line parameter to allow relaxing the device links and prevent drivers to wait for these to probe. Signed-off-by: Javier Martinez Canillas Acked-by: Andrew Halaney --- (no changes since v1) .../admin-guide/kernel-parameters.txt | 7 ++++ drivers/base/dd.c | 38 ++++++++++++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentatio= n/admin-guide/kernel-parameters.txt index a465d5242774..38138a44d5ed 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -1581,6 +1581,13 @@ dependencies. This only applies for fw_devlink=3Don|rpm. Format: =20 + fw_devlink.timeout=3D + [KNL] Debugging option to set a timeout in seconds for + drivers to give up waiting on dependencies and to probe + these are optional. A timeout of 0 will timeout at the + end of initcalls. If the time out hasn't expired, it'll + be restarted by each successful driver registration. + gamecon.map[2|3]=3D [HW,JOY] Multisystem joystick and NES/SNES/PSX pad support via parallel port (up to 5 devices per port) diff --git a/drivers/base/dd.c b/drivers/base/dd.c index 1e8f1afeac98..ea448df94d24 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c @@ -261,6 +261,7 @@ static int driver_deferred_probe_timeout =3D 10; #else static int driver_deferred_probe_timeout; #endif +static int fw_devlink_timeout =3D -1; =20 static int __init deferred_probe_timeout_setup(char *str) { @@ -272,6 +273,16 @@ static int __init deferred_probe_timeout_setup(char *s= tr) } __setup("deferred_probe_timeout=3D", deferred_probe_timeout_setup); =20 +static int __init fw_devlink_timeout_setup(char *str) +{ + int timeout; + + if (!kstrtoint(str, 10, &timeout)) + fw_devlink_timeout =3D timeout; + return 1; +} +__setup("fw_devlink.timeout=3D", fw_devlink_timeout_setup); + /** * driver_deferred_probe_check_state() - Check deferred probe state * @dev: device to check @@ -318,6 +329,15 @@ static void deferred_probe_timeout_work_func(struct wo= rk_struct *work) } static DECLARE_DELAYED_WORK(deferred_probe_timeout_work, deferred_probe_ti= meout_work_func); =20 +static void fw_devlink_timeout_work_func(struct work_struct *work) +{ + fw_devlink_drivers_done(); + + driver_deferred_probe_trigger(); + flush_work(&deferred_probe_work); +} +static DECLARE_DELAYED_WORK(fw_devlink_timeout_work, fw_devlink_timeout_wo= rk_func); + void deferred_probe_extend_timeout(void) { /* @@ -330,6 +350,13 @@ void deferred_probe_extend_timeout(void) pr_debug("Extended deferred probe timeout by %d secs\n", driver_deferred_probe_timeout); } + + if (cancel_delayed_work(&fw_devlink_timeout_work)) { + schedule_delayed_work(&fw_devlink_timeout_work, + fw_devlink_timeout * HZ); + pr_debug("Extended fw_devlink timeout by %d secs\n", + fw_devlink_timeout); + } } =20 /** @@ -352,9 +379,12 @@ static int deferred_probe_initcall(void) =20 if (!IS_ENABLED(CONFIG_MODULES)) { driver_deferred_probe_timeout =3D 0; - fw_devlink_drivers_done(); + fw_devlink_timeout =3D 0; } =20 + if (!fw_devlink_timeout) + fw_devlink_drivers_done(); + /* * Trigger deferred probe again, this time we won't defer anything * that is optional @@ -366,6 +396,12 @@ static int deferred_probe_initcall(void) schedule_delayed_work(&deferred_probe_timeout_work, driver_deferred_probe_timeout * HZ); } + + if (fw_devlink_timeout > 0) { + schedule_delayed_work(&fw_devlink_timeout_work, + fw_devlink_timeout * HZ); + } + return 0; } late_initcall(deferred_probe_initcall); --=20 2.38.1 From nobody Mon Apr 13 20:05:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3C72DC433FE for ; Wed, 16 Nov 2022 12:10:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233618AbiKPMKz (ORCPT ); Wed, 16 Nov 2022 07:10:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54342 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238531AbiKPMKg (ORCPT ); Wed, 16 Nov 2022 07:10:36 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5AC013FBAE for ; Wed, 16 Nov 2022 04:03:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1668600180; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2bKdDWjb/yR9GkUK+RJy2/FRw0utp2NjQXlBH9JbbvI=; b=IPV8qyDFPFjzs88q2JZ0G5xDmcAD5RmYhWZTeX5irfUPpnbQLJol7cIvTDMEsR8b2NYbQQ 4UcVPdJXb/6vUm91iVoRg5zq7z+aitwKVn9tDzrboJhguafbBz4lJqABilmk6+GxqNEi28 0JOOp/XdQq2nQ8bRyeErbgIijYR/86M= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-536--b3yZEGGOti0GIw-WAcLvA-1; Wed, 16 Nov 2022 07:02:59 -0500 X-MC-Unique: -b3yZEGGOti0GIw-WAcLvA-1 Received: by mail-wr1-f69.google.com with SMTP id w11-20020adfbacb000000b002418a90da01so2208217wrg.16 for ; Wed, 16 Nov 2022 04:02:58 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2bKdDWjb/yR9GkUK+RJy2/FRw0utp2NjQXlBH9JbbvI=; b=kKBks5zrT3/BN46pu+JEXq9o6a6eO+ccJi5q/eD4zSlevdRIrFYfSNGc3D3NFVjqNI bsId0U//ZudF1taN3agtiisypGTbrHRiXR+RbDGZAlLGyRPY9S8R2YoTOdwv5+U9y5x6 Cw8fvriL/EKBlAqbULfz2N72FxjdWf7rhFeCLYXxdxMvm/R/Cj5PZxUGDzO/4dMhuyAq BU+R8fZ/jV2zi3QodVMxh83rADeuNQu3oAnTXhaU4W7wFKuk5XAhtr7GxM4rvoF6qZLY YqIIg6ncKeffAsJKwIRIiZQwnff1kqS4upgcMKZYnv5PG4dhXle81+LJVMWwcwY1qNw3 rIPQ== X-Gm-Message-State: ANoB5pnfq8+fdCRs9SRZQj0sudg5QHuFf5n7R94mAMXZhXtIyHwo2Hzi HchUtm3ofqihNoyZMpZeOwcXn8QUAnSEW1CCNtXL95MWsOWugDAS8I9BlPq62FLgbcxiPNTSbH5 ghpEkSZSJlHJVJY0w7i7A7cyVD0YkaxMcyLzo3BZd8+nsWH32ey/wlDVu4Jvrt3O3A+v9dMu296 A= X-Received: by 2002:adf:e6ca:0:b0:22c:e009:a201 with SMTP id y10-20020adfe6ca000000b0022ce009a201mr13972081wrm.70.1668600177657; Wed, 16 Nov 2022 04:02:57 -0800 (PST) X-Google-Smtp-Source: AA0mqf6jrqx7xXE7iEAU+DPg8d7D/B8NwSeegMi83WIWnrRgYFjqPcupo1NUjghur0H1eJtRc3gdJw== X-Received: by 2002:adf:e6ca:0:b0:22c:e009:a201 with SMTP id y10-20020adfe6ca000000b0022ce009a201mr13972045wrm.70.1668600177318; Wed, 16 Nov 2022 04:02:57 -0800 (PST) Received: from minerva.home (205.pool92-176-231.dynamic.orange.es. [92.176.231.205]) by smtp.gmail.com with ESMTPSA id h3-20020a05600c2ca300b003b49bd61b19sm2025563wmc.15.2022.11.16.04.02.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Nov 2022 04:02:56 -0800 (PST) From: Javier Martinez Canillas To: linux-kernel@vger.kernel.org Cc: "Rafael J . Wysocki" , Douglas Anderson , Saravana Kannan , Daniel Vetter , linux-arm-msm@vger.kernel.org, John Stultz , Peter Robinson , Steev Klimaszewski , Greg Kroah-Hartman , Enric Balletbo i Serra , Bjorn Andersson , Brian Masney , Rob Herring , Javier Martinez Canillas Subject: [PATCH v2 4/4] driver core: Disable driver deferred probe timeout by default Date: Wed, 16 Nov 2022 13:02:36 +0100 Message-Id: <20221116120236.520017-1-javierm@redhat.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221116115348.517599-1-javierm@redhat.com> References: <20221116115348.517599-1-javierm@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The driver_deferred_probe_timeout value has a long history. It was first set to -1 when was introduced by commit 25b4e70dcce9 ("driver core: allow stopping deferred probe after init"), meaning that the driver core would defer the probe forever unless a subsystem would opt-in by checking if the initcalls where done using the driver_deferred_probe_check_state() helper, or if a timeout was explicitly set with a "deferred_probe_timeout" param. Only the power domain, IOMMU and MDIO subsystems currently opt-in to check if the initcalls have completed with driver_deferred_probe_check_state(). Commit c8c43cee29f6 ("driver core: Fix driver_deferred_probe_check_state() logic") then changed the driver_deferred_probe_check_state() helper logic, to take into account whether modules have been enabled or not and also to return -EPROBE_DEFER if the probe deferred timeout work was still running. Then in commit e2cec7d68537 ("driver core: Set deferred_probe_timeout to a longer default if CONFIG_MODULES is set"), the timeout was increased to 30 seconds if modules are enabled. Because seems that some of the subsystems that were opt-in to not return -EPROBE_DEFER after the initcall where done could still have dependencies whose drivers were built as a module. This commit did a fundamental change to how probe deferral worked though, since now the default was not to attempt probing for drivers indefinitely but instead to timeout after 30 seconds, unless a different timeout is set using the "deferred_probe_timeout" command line parameter. The behavior was changed even more with commit ce68929f07de ("driver core: Revert default driver_deferred_probe_timeout value to 0"), since the value was set to 0 by default. Meaning that the probe deferral would be disabled after the initcalls where done. Unless a timeout was set in the cmdline. Notice that the commit said that it was reverting the default value to 0, but this was never 0. The default was -1 at the beginning and then changed to 30 in a later commit. This default value of 0 was reverted again by commit f516d01b9df2 ("Revert "driver core: Set default deferred_probe_timeout back to 0."") and set to 10 seconds instead. Which was still less than the 30 seconds that was set at some point, to allow systems with drivers built as modules and loaded later by user-land to probe drivers that were still in the deferred list. The 10 seconds timeout isn't enough in some cases, for example the Fedora kernel builds as much drivers as possible as modules. And this leads to an Snapdragon SC7180 based HP X2 Chromebook to not have display, due the DRM driver failing to probe if CONFIG_ARM_SMMU=3Dy and CONFIG_SC_GPUCC_7180=3Dm. So let's change the default again to -1 as it was at the beginning. That's how probe deferral always worked. The kernel should try to avoid guessing when it should be safe to give up on deferred drivers to be probed. The reason why the default "deferred_probe_timeout" was changed from -1 to the other values was to allow drivers that have only optional dependencies to probe even if the suppliers are not available. But now there is a "fw_devlink.timeout" parameter to timeout the links and allow drivers to probe even when the dependencies are not present. Let's set the default for that timeout to 10 seconds, to give the same behaviour as expected by these driver with optional device links. Signed-off-by: Javier Martinez Canillas Acked-by: Andrew Halaney --- Changes in v2: - Mention in the commit messsage the specific machine and drivers that are affected by the issue (Greg). - Double check the commit message for accuracy (John). - Add a second workqueue to timeout the devlink enforcing and allow drivers to probe even without their optional dependencies available. drivers/base/dd.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/base/dd.c b/drivers/base/dd.c index ea448df94d24..5f18cd497850 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c @@ -256,12 +256,8 @@ static int deferred_devs_show(struct seq_file *s, void= *data) } DEFINE_SHOW_ATTRIBUTE(deferred_devs); =20 -#ifdef CONFIG_MODULES -static int driver_deferred_probe_timeout =3D 10; -#else -static int driver_deferred_probe_timeout; -#endif -static int fw_devlink_timeout =3D -1; +static int driver_deferred_probe_timeout =3D -1; +static int fw_devlink_timeout =3D 10; =20 static int __init deferred_probe_timeout_setup(char *str) { --=20 2.38.1