All of lore.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL] Driver core changes for 5.19-rc1
@ 2022-06-03 11:28 Greg KH
  2022-06-03 11:31 ` [PATCH 1/2] driver core: Fix wait_for_device_probe() & deferred_probe_timeout interaction Greg Kroah-Hartman
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Greg KH @ 2022-06-03 11:28 UTC (permalink / raw)
  To: Linus Torvalds, Andrew Morton
  Cc: linux-kernel, Stephen Rothwell, Saravana Kannan

The following changes since commit 672c0c5173427e6b3e2a9bbb7be51ceeec78093a:

  Linux 5.18-rc5 (2022-05-01 13:57:58 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git tags/driver-core-5.19-rc1

for you to fetch changes up to b232b02bf3c205b13a26dcec08e53baddd8e59ed:

  driver core: fix deadlock in __device_attach (2022-05-19 19:37:08 +0200)

----------------------------------------------------------------
Driver core changes for 5.19-rc1

Here is the set of driver core changes for 5.19-rc1.

Note, I'm not really happy with this pull request as-is, see below for
details, but overall this is all good for everything but a small set of
systems, which we have a fix for already.

Lots of tiny driver core changes and cleanups happened this cycle,
but the two major things were:

	- firmware_loader reorganization and additions including the
	  ability to have XZ compressed firmware images and the ability
	  for userspace to initiate the firmware load when it needs to,
	  instead of being always initiated by the kernel. FPGA devices
	  specifically want this ability to have their firmware changed
	  over the lifetime of the system boot, and this allows them to
	  work without having to come up with yet-another-custom-uapi
	  interface for loading firmware for them.
	- physical location support added to sysfs so that devices that
	  know this information, can tell userspace where they are
	  located in a common way.  Some ACPI devices already support
	  this today, and more bus types should support this in the
	  future.

Smaller changes included:
	- driver_override api cleanups and fixes
	- error path cleanups and fixes
	- get_abi script fixes
	- deferred probe timeout changes.

It's that last change that I'm the most worried about.  It has been
reported to cause boot problems for a number of systems, and I have a
tested patch series that resolves this issue.  But I didn't get it
merged into my tree before 5.18-final came out, so it has not gotten any
linux-next testing.

I'll send the fixup patches (there are 2) as a follow-on series to this
pull request if you want to take them directly, _OR_ I can just revert
the probe timeout changes and they can wait for the next -rc1 merge
cycle.  Given that the fixes are tested, and pretty simple, I'm leaning
toward that choice.  Sorry this all came at the end of the merge window,
I should have resolved this all 2 weeks ago, that's my fault as it was
in the middle of some travel for me.

All have been tested in linux-next for weeks, with no reported issues
other than the above-mentioned boot time outs.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

----------------------------------------------------------------
Bagas Sanjaya (2):
      Documentation: dd: Use ReST lists for return values of driver_deferred_probe_check_state()
      firmware_loader: describe 'module' parameter of firmware_upload_register()

Christophe JAILLET (1):
      drivers/base/memory: Fix an unlikely reference counting issue in __add_memory_block()

Dan Carpenter (2):
      driver core: location: Check for allocations failure
      test_firmware: fix end of loop test in upload_read_show()

Dietmar Eggemann (1):
      topology: Remove unused cpu_cluster_mask()

Greg Kroah-Hartman (3):
      Revert "firmware_loader: use kernel credentials when reading firmware"
      Merge 5.18-rc5 into driver-core-next
      export: fix string handling of namespace in EXPORT_SYMBOL_NS

Hao Luo (1):
      kernfs: Separate kernfs_pr_cont_buf and rename_lock.

Haowen Bai (1):
      firmware: edd: Remove redundant condition

Imran Khan (2):
      kernfs: Remove reference counting for kernfs_open_node.
      kernfs: Rename kernfs_put_open_node to kernfs_unlink_open_file.

Krzysztof Kozlowski (14):
      driver: platform: Add helper for safer setting of driver_override
      amba: Use driver_set_override() instead of open-coding
      fsl-mc: Use driver_set_override() instead of open-coding
      hv: Use driver_set_override() instead of open-coding
      PCI: Use driver_set_override() instead of open-coding
      s390/cio: Use driver_set_override() instead of open-coding
      spi: Use helper for safer setting of driver_override
      vdpa: Use helper for safer setting of driver_override
      clk: imx: scu: Fix kfree() of static memory on setting driver_override
      slimbus: qcom-ngd: Fix kfree() of static memory on setting driver_override
      rpmsg: Constify local variable in field store macro
      rpmsg: Fix kfree() of static memory on setting driver_override
      rpmsg: Fix calling device_lock() on non-initialized device
      rpmsg: use local 'dev' variable

Luis Chamberlain (1):
      MAINTAINERS: add Russ Weight as a firmware loader maintainer

Lukasz Luba (1):
      arch_topology: Trace the update thermal pressure

Mark-PK Tsai (1):
      driver core: Prevent overriding async driver of a device before it probe

Miaohe Lin (1):
      drivers/base/node.c: fix compaction sysfs file leak

Russ Weight (10):
      firmware_loader: Clear data and size in fw_free_paged_buf
      firmware_loader: Check fw_state_is_done in loading_store
      firmware_loader: Split sysfs support from fallback
      firmware_loader: Add firmware-upload support
      firmware_loader: Add sysfs nodes to monitor fw_upload
      test_firmware: Add test support for firmware upload
      test_firmware: Error injection for firmware upload
      selftests: firmware: Add firmware upload selftests
      firmware_loader: Fix configs for sysfs split
      firmware_loader: Move definitions from sysfs_upload.h to sysfs.h

Saravana Kannan (2):
      driver core: Add "*" wildcard support to driver_async_probe cmdline param
      driver core: Extend deferred probe timeout on driver registration

Schspa Shi (1):
      driver: base: fix UAF when driver_attach failed

SeongJae Park (1):
      scripts/get_abi: Fix wrong script file name in the help message

Sergey Shtylyov (1):
      platform: finally disallow IRQ0 in platform_get_irq() and its ilk

Takashi Iwai (5):
      firmware: Add the support for ZSTD-compressed firmware files
      selftests: firmware: Use smaller dictionary for XZ compression
      selftests: firmware: Fix the request_firmware_into_buf() test for XZ format
      selftests: firmware: Simplify test patterns
      selftests: firmware: Add ZSTD compressed file tests

Thiébaud Weksteen (1):
      firmware_loader: use kernel credentials when reading firmware

Won Chung (3):
      driver core: Add sysfs support for physical location of a device
      driver core: location: Free struct acpi_pld_info *pld
      driver core: location: Add "back" as a possible output for panel

Zhang Wensheng (1):
      driver core: fix deadlock in __device_attach

 Documentation/ABI/testing/sysfs-class-firmware     |  77 ++++
 .../ABI/testing/sysfs-devices-physical_location    |  42 ++
 Documentation/admin-guide/kernel-parameters.txt    |  11 +-
 Documentation/driver-api/firmware/fw_upload.rst    | 126 ++++++
 Documentation/driver-api/firmware/index.rst        |   1 +
 MAINTAINERS                                        |   1 +
 drivers/amba/bus.c                                 |  28 +-
 drivers/base/Makefile                              |   1 +
 drivers/base/arch_topology.c                       |   5 +
 drivers/base/base.h                                |   1 +
 drivers/base/bus.c                                 |   4 +-
 drivers/base/core.c                                |  15 +
 drivers/base/dd.c                                  |  44 ++-
 drivers/base/driver.c                              |  70 ++++
 drivers/base/firmware_loader/Kconfig               |  42 +-
 drivers/base/firmware_loader/Makefile              |   2 +
 drivers/base/firmware_loader/fallback.c            | 430 ---------------------
 drivers/base/firmware_loader/fallback.h            |  46 +--
 drivers/base/firmware_loader/firmware.h            |  16 +
 drivers/base/firmware_loader/main.c                |  94 ++++-
 drivers/base/firmware_loader/sysfs.c               | 422 ++++++++++++++++++++
 drivers/base/firmware_loader/sysfs.h               | 117 ++++++
 drivers/base/firmware_loader/sysfs_upload.c        | 397 +++++++++++++++++++
 drivers/base/firmware_loader/sysfs_upload.h        |  41 ++
 drivers/base/memory.c                              |   5 +-
 drivers/base/node.c                                |   1 +
 drivers/base/physical_location.c                   | 143 +++++++
 drivers/base/physical_location.h                   |  16 +
 drivers/base/platform.c                            |  34 +-
 drivers/bus/fsl-mc/fsl-mc-bus.c                    |  25 +-
 drivers/clk/imx/clk-scu.c                          |   7 +-
 drivers/firmware/edd.c                             |   3 +-
 drivers/hv/vmbus_drv.c                             |  28 +-
 drivers/pci/pci-sysfs.c                            |  28 +-
 drivers/rpmsg/rpmsg_core.c                         |  42 +-
 drivers/rpmsg/rpmsg_internal.h                     |   5 +-
 drivers/rpmsg/rpmsg_ns.c                           |   4 +-
 drivers/s390/cio/cio.h                             |   6 +-
 drivers/s390/cio/css.c                             |  28 +-
 drivers/slimbus/qcom-ngd-ctrl.c                    |  13 +-
 drivers/spi/spi.c                                  |  26 +-
 drivers/vdpa/vdpa.c                                |  29 +-
 fs/kernfs/dir.c                                    |  31 +-
 fs/kernfs/file.c                                   |  47 ++-
 include/linux/amba/bus.h                           |   6 +-
 include/linux/device.h                             |  73 ++++
 include/linux/device/driver.h                      |   2 +
 include/linux/export.h                             |   7 +-
 include/linux/firmware.h                           |  82 ++++
 include/linux/fsl/mc.h                             |   6 +-
 include/linux/hyperv.h                             |   6 +-
 include/linux/pci.h                                |   6 +-
 include/linux/platform_device.h                    |   6 +-
 include/linux/rpmsg.h                              |  14 +-
 include/linux/spi/spi.h                            |   2 +
 include/linux/topology.h                           |   7 -
 include/linux/vdpa.h                               |   4 +-
 include/trace/events/thermal_pressure.h            |  29 ++
 lib/test_firmware.c                                | 381 ++++++++++++++++++
 scripts/get_abi.pl                                 |   4 +-
 tools/testing/selftests/firmware/Makefile          |   2 +-
 tools/testing/selftests/firmware/config            |   1 +
 tools/testing/selftests/firmware/fw_filesystem.sh  | 170 ++++----
 tools/testing/selftests/firmware/fw_lib.sh         |  19 +-
 tools/testing/selftests/firmware/fw_run_tests.sh   |   4 +
 tools/testing/selftests/firmware/fw_upload.sh      | 214 ++++++++++
 66 files changed, 2736 insertions(+), 863 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-class-firmware
 create mode 100644 Documentation/ABI/testing/sysfs-devices-physical_location
 create mode 100644 Documentation/driver-api/firmware/fw_upload.rst
 create mode 100644 drivers/base/firmware_loader/sysfs.c
 create mode 100644 drivers/base/firmware_loader/sysfs.h
 create mode 100644 drivers/base/firmware_loader/sysfs_upload.c
 create mode 100644 drivers/base/firmware_loader/sysfs_upload.h
 create mode 100644 drivers/base/physical_location.c
 create mode 100644 drivers/base/physical_location.h
 create mode 100644 include/trace/events/thermal_pressure.h
 create mode 100755 tools/testing/selftests/firmware/fw_upload.sh

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 1/2] driver core: Fix wait_for_device_probe() & deferred_probe_timeout interaction
  2022-06-03 11:28 [GIT PULL] Driver core changes for 5.19-rc1 Greg KH
@ 2022-06-03 11:31 ` Greg Kroah-Hartman
  2022-06-03 11:31   ` [PATCH 2/2] driver core: Set default deferred_probe_timeout back to 0 Greg Kroah-Hartman
  2022-06-03 18:54   ` [PATCH 1/2] driver core: Fix wait_for_device_probe() & deferred_probe_timeout interaction Rafael J. Wysocki
  2022-06-03 19:07 ` [GIT PULL] Driver core changes for 5.19-rc1 pr-tracker-bot
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 10+ messages in thread
From: Greg Kroah-Hartman @ 2022-06-03 11:31 UTC (permalink / raw)
  To: Linus Torvalds, Andrew Morton
  Cc: linux-kernel, Stephen Rothwell, Saravana Kannan, John Stultz,
	David S. Miller, Alexey Kuznetsov, Hideaki YOSHIFUJI,
	Jakub Kicinski, Rafael J . Wysocki, Rob Herring,
	Geert Uytterhoeven, Yoshihiro Shimoda, Robin Murphy,
	Andy Shevchenko, Sudeep Holla, Andy Shevchenko, Naresh Kamboju,
	Basil Eljuse, Ferry Toth, Arnd Bergmann, Anders Roxell, linux-pm,
	Nathan Chancellor, Sebastian Andrzej Siewior, Geert Uytterhoeven,
	Greg Kroah-Hartman

From: Saravana Kannan <saravanak@google.com>

Mounting NFS rootfs was timing out when deferred_probe_timeout was
non-zero [1].  This was because ip_auto_config() initcall times out
waiting for the network interfaces to show up when
deferred_probe_timeout was non-zero. While ip_auto_config() calls
wait_for_device_probe() to make sure any currently running deferred
probe work or asynchronous probe finishes, that wasn't sufficient to
account for devices being deferred until deferred_probe_timeout.

Commit 35a672363ab3 ("driver core: Ensure wait_for_device_probe() waits
until the deferred_probe_timeout fires") tried to fix that by making
sure wait_for_device_probe() waits for deferred_probe_timeout to expire
before returning.

However, if wait_for_device_probe() is called from the kernel_init()
context:

- Before deferred_probe_initcall() [2], it causes the boot process to
  hang due to a deadlock.

- After deferred_probe_initcall() [3], it blocks kernel_init() from
  continuing till deferred_probe_timeout expires and beats the point of
  deferred_probe_timeout that's trying to wait for userspace to load
  modules.

Neither of this is good. So revert the changes to
wait_for_device_probe().

[1] - https://lore.kernel.org/lkml/TYAPR01MB45443DF63B9EF29054F7C41FD8C60@TYAPR01MB4544.jpnprd01.prod.outlook.com/
[2] - https://lore.kernel.org/lkml/YowHNo4sBjr9ijZr@dev-arch.thelio-3990X/
[3] - https://lore.kernel.org/lkml/Yo3WvGnNk3LvLb7R@linutronix.de/

Fixes: 35a672363ab3 ("driver core: Ensure wait_for_device_probe() waits until the deferred_probe_timeout fires")
Cc: John Stultz <jstultz@google.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Cc: Rob Herring <robh@kernel.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Naresh Kamboju <naresh.kamboju@linaro.org>
Cc: Basil Eljuse <Basil.Eljuse@arm.com>
Cc: Ferry Toth <fntoth@gmail.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Anders Roxell <anders.roxell@linaro.org>
Cc: linux-pm@vger.kernel.org
Reported-by: Nathan Chancellor <nathan@kernel.org>
Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: John Stultz <jstultz@google.com>
Signed-off-by: Saravana Kannan <saravanak@google.com>
Link: https://lore.kernel.org/r/20220526034609.480766-2-saravanak@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/base/dd.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index 2fc8507f59ee..91f63cd33b12 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -263,7 +263,6 @@ int driver_deferred_probe_timeout;
 #endif
 
 EXPORT_SYMBOL_GPL(driver_deferred_probe_timeout);
-static DECLARE_WAIT_QUEUE_HEAD(probe_timeout_waitqueue);
 
 static int __init deferred_probe_timeout_setup(char *str)
 {
@@ -318,7 +317,6 @@ static void deferred_probe_timeout_work_func(struct work_struct *work)
 	list_for_each_entry(p, &deferred_probe_pending_list, deferred_probe)
 		dev_info(p->device, "deferred probe pending\n");
 	mutex_unlock(&deferred_probe_mutex);
-	wake_up_all(&probe_timeout_waitqueue);
 }
 static DECLARE_DELAYED_WORK(deferred_probe_timeout_work, deferred_probe_timeout_work_func);
 
@@ -736,9 +734,6 @@ int driver_probe_done(void)
  */
 void wait_for_device_probe(void)
 {
-	/* wait for probe timeout */
-	wait_event(probe_timeout_waitqueue, !driver_deferred_probe_timeout);
-
 	/* wait for the deferred probe workqueue to finish */
 	flush_work(&deferred_probe_work);
 
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/2] driver core: Set default deferred_probe_timeout back to 0.
  2022-06-03 11:31 ` [PATCH 1/2] driver core: Fix wait_for_device_probe() & deferred_probe_timeout interaction Greg Kroah-Hartman
@ 2022-06-03 11:31   ` Greg Kroah-Hartman
  2022-06-03 18:54   ` [PATCH 1/2] driver core: Fix wait_for_device_probe() & deferred_probe_timeout interaction Rafael J. Wysocki
  1 sibling, 0 replies; 10+ messages in thread
From: Greg Kroah-Hartman @ 2022-06-03 11:31 UTC (permalink / raw)
  To: Linus Torvalds, Andrew Morton
  Cc: linux-kernel, Stephen Rothwell, Saravana Kannan, Mark Brown,
	Rob Herring, Nathan Chancellor, Sebastian Andrzej Siewior,
	Geert Uytterhoeven, Greg Kroah-Hartman

From: Saravana Kannan <saravanak@google.com>

Since we had to effectively reverted
commit 35a672363ab3 ("driver core: Ensure wait_for_device_probe() waits
until the deferred_probe_timeout fires") in an earlier patch, a non-zero
deferred_probe_timeout will break NFS rootfs mounting [1] again. So, set
the default back to zero until we can fix that.

[1] - https://lore.kernel.org/lkml/TYAPR01MB45443DF63B9EF29054F7C41FD8C60@TYAPR01MB4544.jpnprd01.prod.outlook.com/

Fixes: 2b28a1a84a0e ("driver core: Extend deferred probe timeout on driver registration")
Cc: Mark Brown <broonie@kernel.org>
Cc: Rob Herring <robh@kernel.org>
Reported-by: Nathan Chancellor <nathan@kernel.org>
Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Saravana Kannan <saravanak@google.com>
Link: https://lore.kernel.org/r/20220526034609.480766-3-saravanak@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/base/dd.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index 91f63cd33b12..251b5ba1b84a 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -256,12 +256,7 @@ static int deferred_devs_show(struct seq_file *s, void *data)
 }
 DEFINE_SHOW_ATTRIBUTE(deferred_devs);
 
-#ifdef CONFIG_MODULES
-int driver_deferred_probe_timeout = 10;
-#else
 int driver_deferred_probe_timeout;
-#endif
-
 EXPORT_SYMBOL_GPL(driver_deferred_probe_timeout);
 
 static int __init deferred_probe_timeout_setup(char *str)
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/2] driver core: Fix wait_for_device_probe() & deferred_probe_timeout interaction
  2022-06-03 11:31 ` [PATCH 1/2] driver core: Fix wait_for_device_probe() & deferred_probe_timeout interaction Greg Kroah-Hartman
  2022-06-03 11:31   ` [PATCH 2/2] driver core: Set default deferred_probe_timeout back to 0 Greg Kroah-Hartman
@ 2022-06-03 18:54   ` Rafael J. Wysocki
  1 sibling, 0 replies; 10+ messages in thread
From: Rafael J. Wysocki @ 2022-06-03 18:54 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Linus Torvalds, Andrew Morton, Linux Kernel Mailing List,
	Stephen Rothwell, Saravana Kannan, John Stultz, David S. Miller,
	Alexey Kuznetsov, Hideaki YOSHIFUJI, Jakub Kicinski,
	Rafael J . Wysocki, Rob Herring, Geert Uytterhoeven,
	Yoshihiro Shimoda, Robin Murphy, Andy Shevchenko, Sudeep Holla,
	Andy Shevchenko, Naresh Kamboju, Basil Eljuse, Ferry Toth,
	Arnd Bergmann, Anders Roxell, Linux PM, Nathan Chancellor,
	Sebastian Andrzej Siewior, Geert Uytterhoeven

On Fri, Jun 3, 2022 at 1:32 PM Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
>
> From: Saravana Kannan <saravanak@google.com>
>
> Mounting NFS rootfs was timing out when deferred_probe_timeout was
> non-zero [1].  This was because ip_auto_config() initcall times out
> waiting for the network interfaces to show up when
> deferred_probe_timeout was non-zero. While ip_auto_config() calls
> wait_for_device_probe() to make sure any currently running deferred
> probe work or asynchronous probe finishes, that wasn't sufficient to
> account for devices being deferred until deferred_probe_timeout.
>
> Commit 35a672363ab3 ("driver core: Ensure wait_for_device_probe() waits
> until the deferred_probe_timeout fires") tried to fix that by making
> sure wait_for_device_probe() waits for deferred_probe_timeout to expire
> before returning.
>
> However, if wait_for_device_probe() is called from the kernel_init()
> context:
>
> - Before deferred_probe_initcall() [2], it causes the boot process to
>   hang due to a deadlock.
>
> - After deferred_probe_initcall() [3], it blocks kernel_init() from
>   continuing till deferred_probe_timeout expires and beats the point of
>   deferred_probe_timeout that's trying to wait for userspace to load
>   modules.
>
> Neither of this is good. So revert the changes to
> wait_for_device_probe().
>
> [1] - https://lore.kernel.org/lkml/TYAPR01MB45443DF63B9EF29054F7C41FD8C60@TYAPR01MB4544.jpnprd01.prod.outlook.com/
> [2] - https://lore.kernel.org/lkml/YowHNo4sBjr9ijZr@dev-arch.thelio-3990X/
> [3] - https://lore.kernel.org/lkml/Yo3WvGnNk3LvLb7R@linutronix.de/
>
> Fixes: 35a672363ab3 ("driver core: Ensure wait_for_device_probe() waits until the deferred_probe_timeout fires")
> Cc: John Stultz <jstultz@google.com>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
> Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
> Cc: Jakub Kicinski <kuba@kernel.org>
> Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> Cc: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
> Cc: Robin Murphy <robin.murphy@arm.com>
> Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
> Cc: Sudeep Holla <sudeep.holla@arm.com>
> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Cc: Naresh Kamboju <naresh.kamboju@linaro.org>
> Cc: Basil Eljuse <Basil.Eljuse@arm.com>
> Cc: Ferry Toth <fntoth@gmail.com>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Anders Roxell <anders.roxell@linaro.org>
> Cc: linux-pm@vger.kernel.org
> Reported-by: Nathan Chancellor <nathan@kernel.org>
> Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
> Acked-by: John Stultz <jstultz@google.com>
> Signed-off-by: Saravana Kannan <saravanak@google.com>
> Link: https://lore.kernel.org/r/20220526034609.480766-2-saravanak@google.com
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Reviewed-by: Rafael J. Wysocki <rafael@kernel.org>

> ---
>  drivers/base/dd.c | 5 -----
>  1 file changed, 5 deletions(-)
>
> diff --git a/drivers/base/dd.c b/drivers/base/dd.c
> index 2fc8507f59ee..91f63cd33b12 100644
> --- a/drivers/base/dd.c
> +++ b/drivers/base/dd.c
> @@ -263,7 +263,6 @@ int driver_deferred_probe_timeout;
>  #endif
>
>  EXPORT_SYMBOL_GPL(driver_deferred_probe_timeout);
> -static DECLARE_WAIT_QUEUE_HEAD(probe_timeout_waitqueue);
>
>  static int __init deferred_probe_timeout_setup(char *str)
>  {
> @@ -318,7 +317,6 @@ static void deferred_probe_timeout_work_func(struct work_struct *work)
>         list_for_each_entry(p, &deferred_probe_pending_list, deferred_probe)
>                 dev_info(p->device, "deferred probe pending\n");
>         mutex_unlock(&deferred_probe_mutex);
> -       wake_up_all(&probe_timeout_waitqueue);
>  }
>  static DECLARE_DELAYED_WORK(deferred_probe_timeout_work, deferred_probe_timeout_work_func);
>
> @@ -736,9 +734,6 @@ int driver_probe_done(void)
>   */
>  void wait_for_device_probe(void)
>  {
> -       /* wait for probe timeout */
> -       wait_event(probe_timeout_waitqueue, !driver_deferred_probe_timeout);
> -
>         /* wait for the deferred probe workqueue to finish */
>         flush_work(&deferred_probe_work);
>
> --
> 2.36.1
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [GIT PULL] Driver core changes for 5.19-rc1
  2022-06-03 11:28 [GIT PULL] Driver core changes for 5.19-rc1 Greg KH
  2022-06-03 11:31 ` [PATCH 1/2] driver core: Fix wait_for_device_probe() & deferred_probe_timeout interaction Greg Kroah-Hartman
@ 2022-06-03 19:07 ` pr-tracker-bot
  2022-06-03 19:11 ` Linus Torvalds
  2022-06-03 22:23 ` Linus Torvalds
  3 siblings, 0 replies; 10+ messages in thread
From: pr-tracker-bot @ 2022-06-03 19:07 UTC (permalink / raw)
  To: Greg KH
  Cc: Linus Torvalds, Andrew Morton, linux-kernel, Stephen Rothwell,
	Saravana Kannan

The pull request you sent on Fri, 3 Jun 2022 13:28:39 +0200:

> git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git tags/driver-core-5.19-rc1

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/500a434fc593f1fdb274c0e6fe09a0b9c0711a4b

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [GIT PULL] Driver core changes for 5.19-rc1
  2022-06-03 11:28 [GIT PULL] Driver core changes for 5.19-rc1 Greg KH
  2022-06-03 11:31 ` [PATCH 1/2] driver core: Fix wait_for_device_probe() & deferred_probe_timeout interaction Greg Kroah-Hartman
  2022-06-03 19:07 ` [GIT PULL] Driver core changes for 5.19-rc1 pr-tracker-bot
@ 2022-06-03 19:11 ` Linus Torvalds
  2022-06-04  9:06   ` Greg KH
  2022-06-03 22:23 ` Linus Torvalds
  3 siblings, 1 reply; 10+ messages in thread
From: Linus Torvalds @ 2022-06-03 19:11 UTC (permalink / raw)
  To: Greg KH
  Cc: Andrew Morton, Linux Kernel Mailing List, Stephen Rothwell,
	Saravana Kannan

On Fri, Jun 3, 2022 at 4:28 AM Greg KH <gregkh@linuxfoundation.org> wrote:
>
> It's that last change that I'm the most worried about.  It has been
> reported to cause boot problems for a number of systems, and I have a
> tested patch series that resolves this issue.

Ok, pulled and the two patches applied on top.

               Linus

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [GIT PULL] Driver core changes for 5.19-rc1
  2022-06-03 11:28 [GIT PULL] Driver core changes for 5.19-rc1 Greg KH
                   ` (2 preceding siblings ...)
  2022-06-03 19:11 ` Linus Torvalds
@ 2022-06-03 22:23 ` Linus Torvalds
  2022-06-04  6:32   ` Takashi Iwai
  3 siblings, 1 reply; 10+ messages in thread
From: Linus Torvalds @ 2022-06-03 22:23 UTC (permalink / raw)
  To: Greg KH, Takashi Iwai
  Cc: Andrew Morton, Linux Kernel Mailing List, Stephen Rothwell,
	Saravana Kannan

Augh.

This was very badly done, and I'm not talking about the deferred probe
timeout things that caused problems for people.

On Fri, Jun 3, 2022 at 4:28 AM Greg KH <gregkh@linuxfoundation.org> wrote:
>
>         - firmware_loader reorganization and additions including the
>           ability to have XZ compressed firmware images and the ability
>           for userspace to initiate the firmware load when it needs to,
>           instead of being always initiated by the kernel.

This is actively misleading.

We *always* supported XZ compressed firmware images, and it was
enabled by CONFIG_FW_LOADER_COMPRESS,

What's new is the option to use ZSTD compression.

However, the Kconfig file addition for this was done as badly as the
above explanation was, and the FW_LOADER_COMPRESS_XZ option was added
with a help message and a default value that both are complete
garbage.

So when you do "make oldconfig", you would be expected to say 'N', and
in the process you lose the existing XZ compression.

Only when the resulting kernel doesn't boot, and you spent half an
hour trying to bisect things, and you start looking closer, do you
notice that "ooh, the config changed in bad ways".

Yeah, I'm a bit grumpy. This was *really* annoying.

The commit that does this breakage is literally called "firmware: Add
the support for ZSTD-compressed firmware files", and only when looking
closer do you notice that IT REMOVES SUPPORT FOR XZ COMPRESSION BY
DEFAULT.

Because even when keeping the FW_LOADER_COMPRESS option enabled, the
XZ compression is just gone, gone, gone, unless you realize that it
was implicitly enabled before, and now needs that default disable of
FW_LOADER_COMPRESS_XZ to be enabled.

I've said this before, and I'll say it here again (and I bet I'll have
to say it in the future too): the kernel config is probably the most
annoying part of building a kernel for anybody.

And it damn well does NOT HELP when people then actively break things,
and ask actively bad and misleading questions. In this case, for
example, it's not just that the XZ option is now misleading by
default, it's also that the whole thing has been set up so that you
can say "enable compressed images", but then HAVE NO ACTUAL
COMPRESSION METHOD!

Grr. This was *REALLY* badly done.

                      Linus

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [GIT PULL] Driver core changes for 5.19-rc1
  2022-06-03 22:23 ` Linus Torvalds
@ 2022-06-04  6:32   ` Takashi Iwai
  2022-06-04  9:07     ` Greg KH
  0 siblings, 1 reply; 10+ messages in thread
From: Takashi Iwai @ 2022-06-04  6:32 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Greg KH, Takashi Iwai, Andrew Morton, Linux Kernel Mailing List,
	Stephen Rothwell, Saravana Kannan

On Sat, 04 Jun 2022 00:23:18 +0200,
Linus Torvalds wrote:
> 
> Augh.
> 
> This was very badly done, and I'm not talking about the deferred probe
> timeout things that caused problems for people.
> 
> On Fri, Jun 3, 2022 at 4:28 AM Greg KH <gregkh@linuxfoundation.org> wrote:
> >
> >         - firmware_loader reorganization and additions including the
> >           ability to have XZ compressed firmware images and the ability
> >           for userspace to initiate the firmware load when it needs to,
> >           instead of being always initiated by the kernel.
> 
> This is actively misleading.
> 
> We *always* supported XZ compressed firmware images, and it was
> enabled by CONFIG_FW_LOADER_COMPRESS,
> 
> What's new is the option to use ZSTD compression.
> 
> However, the Kconfig file addition for this was done as badly as the
> above explanation was, and the FW_LOADER_COMPRESS_XZ option was added
> with a help message and a default value that both are complete
> garbage.
> 
> So when you do "make oldconfig", you would be expected to say 'N', and
> in the process you lose the existing XZ compression.
> 
> Only when the resulting kernel doesn't boot, and you spent half an
> hour trying to bisect things, and you start looking closer, do you
> notice that "ooh, the config changed in bad ways".
> 
> Yeah, I'm a bit grumpy. This was *really* annoying.
> 
> The commit that does this breakage is literally called "firmware: Add
> the support for ZSTD-compressed firmware files", and only when looking
> closer do you notice that IT REMOVES SUPPORT FOR XZ COMPRESSION BY
> DEFAULT.
> 
> Because even when keeping the FW_LOADER_COMPRESS option enabled, the
> XZ compression is just gone, gone, gone, unless you realize that it
> was implicitly enabled before, and now needs that default disable of
> FW_LOADER_COMPRESS_XZ to be enabled.
> 
> I've said this before, and I'll say it here again (and I bet I'll have
> to say it in the future too): the kernel config is probably the most
> annoying part of building a kernel for anybody.
> 
> And it damn well does NOT HELP when people then actively break things,
> and ask actively bad and misleading questions. In this case, for
> example, it's not just that the XZ option is now misleading by
> default, it's also that the whole thing has been set up so that you
> can say "enable compressed images", but then HAVE NO ACTUAL
> COMPRESSION METHOD!
> 
> Grr. This was *REALLY* badly done.

Mea culpa, I hesitated to add "default y", but it should have been
added at least for the case with the config takeover case.  Now I see
that you've already added "default y" to
CONFIG_FW_LOADER_COMPRESS_XZ.  Thanks for taking care of this!


Takashi


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [GIT PULL] Driver core changes for 5.19-rc1
  2022-06-03 19:11 ` Linus Torvalds
@ 2022-06-04  9:06   ` Greg KH
  0 siblings, 0 replies; 10+ messages in thread
From: Greg KH @ 2022-06-04  9:06 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Andrew Morton, Linux Kernel Mailing List, Stephen Rothwell,
	Saravana Kannan

On Fri, Jun 03, 2022 at 12:11:29PM -0700, Linus Torvalds wrote:
> On Fri, Jun 3, 2022 at 4:28 AM Greg KH <gregkh@linuxfoundation.org> wrote:
> >
> > It's that last change that I'm the most worried about.  It has been
> > reported to cause boot problems for a number of systems, and I have a
> > tested patch series that resolves this issue.
> 
> Ok, pulled and the two patches applied on top.

Thanks!

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [GIT PULL] Driver core changes for 5.19-rc1
  2022-06-04  6:32   ` Takashi Iwai
@ 2022-06-04  9:07     ` Greg KH
  0 siblings, 0 replies; 10+ messages in thread
From: Greg KH @ 2022-06-04  9:07 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Linus Torvalds, Andrew Morton, Linux Kernel Mailing List,
	Stephen Rothwell, Saravana Kannan

On Sat, Jun 04, 2022 at 08:32:29AM +0200, Takashi Iwai wrote:
> On Sat, 04 Jun 2022 00:23:18 +0200,
> Linus Torvalds wrote:
> > 
> > Augh.
> > 
> > This was very badly done, and I'm not talking about the deferred probe
> > timeout things that caused problems for people.
> > 
> > On Fri, Jun 3, 2022 at 4:28 AM Greg KH <gregkh@linuxfoundation.org> wrote:
> > >
> > >         - firmware_loader reorganization and additions including the
> > >           ability to have XZ compressed firmware images and the ability
> > >           for userspace to initiate the firmware load when it needs to,
> > >           instead of being always initiated by the kernel.
> > 
> > This is actively misleading.
> > 
> > We *always* supported XZ compressed firmware images, and it was
> > enabled by CONFIG_FW_LOADER_COMPRESS,
> > 
> > What's new is the option to use ZSTD compression.
> > 
> > However, the Kconfig file addition for this was done as badly as the
> > above explanation was, and the FW_LOADER_COMPRESS_XZ option was added
> > with a help message and a default value that both are complete
> > garbage.
> > 
> > So when you do "make oldconfig", you would be expected to say 'N', and
> > in the process you lose the existing XZ compression.
> > 
> > Only when the resulting kernel doesn't boot, and you spent half an
> > hour trying to bisect things, and you start looking closer, do you
> > notice that "ooh, the config changed in bad ways".
> > 
> > Yeah, I'm a bit grumpy. This was *really* annoying.
> > 
> > The commit that does this breakage is literally called "firmware: Add
> > the support for ZSTD-compressed firmware files", and only when looking
> > closer do you notice that IT REMOVES SUPPORT FOR XZ COMPRESSION BY
> > DEFAULT.
> > 
> > Because even when keeping the FW_LOADER_COMPRESS option enabled, the
> > XZ compression is just gone, gone, gone, unless you realize that it
> > was implicitly enabled before, and now needs that default disable of
> > FW_LOADER_COMPRESS_XZ to be enabled.
> > 
> > I've said this before, and I'll say it here again (and I bet I'll have
> > to say it in the future too): the kernel config is probably the most
> > annoying part of building a kernel for anybody.
> > 
> > And it damn well does NOT HELP when people then actively break things,
> > and ask actively bad and misleading questions. In this case, for
> > example, it's not just that the XZ option is now misleading by
> > default, it's also that the whole thing has been set up so that you
> > can say "enable compressed images", but then HAVE NO ACTUAL
> > COMPRESSION METHOD!
> > 
> > Grr. This was *REALLY* badly done.
> 
> Mea culpa, I hesitated to add "default y", but it should have been
> added at least for the case with the config takeover case.  Now I see
> that you've already added "default y" to
> CONFIG_FW_LOADER_COMPRESS_XZ.  Thanks for taking care of this!

Sorry about that, I missed it too as I just selected that option to
ensure it built and worked properly on my systems :(

greg k-h

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2022-06-04  9:06 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-03 11:28 [GIT PULL] Driver core changes for 5.19-rc1 Greg KH
2022-06-03 11:31 ` [PATCH 1/2] driver core: Fix wait_for_device_probe() & deferred_probe_timeout interaction Greg Kroah-Hartman
2022-06-03 11:31   ` [PATCH 2/2] driver core: Set default deferred_probe_timeout back to 0 Greg Kroah-Hartman
2022-06-03 18:54   ` [PATCH 1/2] driver core: Fix wait_for_device_probe() & deferred_probe_timeout interaction Rafael J. Wysocki
2022-06-03 19:07 ` [GIT PULL] Driver core changes for 5.19-rc1 pr-tracker-bot
2022-06-03 19:11 ` Linus Torvalds
2022-06-04  9:06   ` Greg KH
2022-06-03 22:23 ` Linus Torvalds
2022-06-04  6:32   ` Takashi Iwai
2022-06-04  9:07     ` Greg KH

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.