Linux kernel source tree
Go to file
Xu Yang 84a13b97e8 usb: chipidea: core: handle power lost in workqueue
commit cc509b6a47 upstream.

When power is recycled in usb controller during system power management,
the controller will recognize it and switch role if role has been changed
during power lost. In current design, it will be completed in resume()
function. However, this may bring issues since usb class devices have
their pm operations too and these device's resume() functions are still
not being called at this point. When usb controller recognized host role
should be stopped, these usb class devices will be removed at this point.
But these usb class devices can't be removed in some cases, such as scsi
devices. Since scsi driver may sync data to U-disk, however it will block
there because scsi drvier can only handle pm request when is in suspended
state. Therefore, there may exist a dependency between ci_resume() and usb
class device's resume(). To break this potential dependency, we need to
handle power lost work in a workqueue.

Fixes: 74494b3321 ("usb: chipidea: core: add controller resume support when controller is powered off")
cc: stable@vger.kernel.org
Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
Link: https://lore.kernel.org/r/20240119123537.3614838-1-xu.yang_2@nxp.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-02-23 09:24:57 +01:00
arch parisc: Prevent hung tasks when printing inventory on serial console 2024-02-23 09:24:55 +01:00
block blk-iocost: Fix an UBSAN shift-out-of-bounds warning 2024-02-16 19:10:53 +01:00
certs certs: Reference revocation list for all keyrings 2023-08-17 20:12:41 +00:00
crypto crypto: api - Disallow identical driver names 2024-01-31 16:18:49 -08:00
Documentation net: sysfs: Fix /sys/class/net/<iface> path for statistics 2024-02-23 09:24:53 +01:00
drivers usb: chipidea: core: handle power lost in workqueue 2024-02-23 09:24:57 +01:00
fs btrfs: don't drop extent_map for free space inode on write error 2024-02-23 09:24:48 +01:00
include ptrace: Introduce exception_ip arch hook 2024-02-23 09:24:53 +01:00
init update workarounds for gcc "asm goto" issue 2024-02-23 09:24:47 +01:00
io_uring io_uring/net: limit inline multishot retries 2024-02-16 19:10:56 +01:00
ipc Add x86 shadow stack support 2023-08-31 12:20:12 -07:00
kernel tracing/trigger: Fix to return error if failed to alloc snapshot 2024-02-23 09:24:54 +01:00
lib kunit: run test suites only after module initialization completes 2024-02-05 20:14:34 +00:00
LICENSES LICENSES: Add the copyleft-next-0.3.1 license 2022-11-08 15:44:01 +01:00
mm mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again 2024-02-23 09:24:54 +01:00
net net: tls: fix returned read length with async decrypt 2024-02-23 09:24:52 +01:00
rust rust: upgrade to Rust 1.73.0 2024-02-16 19:10:43 +01:00
samples work around gcc bugs with 'asm goto' with outputs 2024-02-23 09:24:47 +01:00
scripts rust: upgrade to Rust 1.73.0 2024-02-16 19:10:43 +01:00
security lsm: new security_file_ioctl_compat() hook 2024-01-31 16:18:54 -08:00
sound ALSA: hda/realtek: Enable Mute LED on HP Laptop 14-fq0xxx 2024-02-23 09:24:55 +01:00
tools selftests: mm: fix map_hugetlb failure on 64K page size systems 2024-02-23 09:24:54 +01:00
usr initramfs: Encode dependency on KBUILD_BUILD_TIMESTAMP 2023-06-06 17:54:49 +09:00
virt ARM: 2023-09-07 13:52:20 -07:00
.clang-format iommu: Add for_each_group_device() 2023-05-23 08:15:51 +02:00
.cocciconfig
.get_maintainer.ignore
.gitattributes .gitattributes: set diff driver for Rust source code files 2023-05-31 17:48:25 +02:00
.gitignore kbuild: rpm-pkg: rename binkernel.spec to kernel.spec 2023-07-25 00:59:33 +09:00
.mailmap 20 hotfixes. 12 are cc:stable and the remainder address post-6.5 issues 2023-10-24 09:52:16 -10:00
.rustfmt.toml rust: add .rustfmt.toml 2022-09-28 09:02:20 +02:00
COPYING
CREDITS USB: Remove Wireless USB and UWB documentation 2023-08-09 14:17:32 +02:00
Kbuild Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Kconfig
MAINTAINERS MAINTAINERS: add Catherine as xfs maintainer for 6.6.y 2024-02-16 19:10:43 +01:00
Makefile Linux 6.6.17 2024-02-16 19:10:57 +01:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.