Linux kernel source tree
Go to file
William Wu a73f42850a usb: dwc3: core: fix NULL pointer dereference when plug out otg host
When do hot plug test on RK3566 Tablet with Type-C to Type-A receptacle.
The dwc3 driver may receive the EXTCON_USB_HOST notifier with disconnect
state twice occasionally, then it do dwc3_host_exit() repeatedly and cause
panic issue with the following log:

[  260.793245] xhci-hcd xhci-hcd.4.auto: remove, state 4
[  260.796706] xhci-hcd xhci-hcd.4.auto: USB bus 2 deregistered
[  260.797889] xhci-hcd xhci-hcd.4.auto: remove, state 1
[  261.286875] xhci-hcd xhci-hcd.4.auto: USB bus 1 deregistered
[  261.289416] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000070
[  261.290353] Mem abort info:
[  261.290624]   ESR = 0x96000005
[  261.290911]   Exception class = DABT (current EL), IL = 32 bits
[  261.291501]   SET = 0, FnV = 0
[  261.291785]   EA = 0, S1PTW = 0
[  261.292065] Data abort info:
[  261.292323]   ISV = 0, ISS = 0x00000005
[  261.292660]   CM = 0, WnR = 0
[  261.293009] user pgtable: 4k pages, 39-bit VAs, pgdp = 000000005d271f4e
[  261.293610] [0000000000000070] pgd=0000000000000000, pud=0000000000000000
[  261.294221] Internal error: Oops: 96000005 [#1] PREEMPT SMP
[  261.294726] Modules linked in: rknpu
[  261.295059] Process kworker/0:3 (pid: 1785, stack limit = 0x000000006a077ac4)
[  261.295693] CPU: 0 PID: 1785 Comm: kworker/0:3 Not tainted 4.19.161 #52
[  261.296276] Hardware name: Rockchip RK3566 RK817 TABLET LP4X Board (DT)
[  261.296892] Workqueue: events_freezable __dwc3_set_mode
[  261.297371] pstate: 60c00009 (nZCv daif +PAN +UAO)
[  261.297817] pc : kernfs_find_ns+0x24/0x118
[  261.298186] lr : kernfs_find_and_get_ns+0x3c/0x60
[  261.298607] sp : ffffff800f90bbd0
...
[  261.411635]
[  261.411780] Call trace:
[  261.412026]  kernfs_find_ns+0x24/0x118
[  261.412366]  kernfs_find_and_get_ns+0x3c/0x60
[  261.412757]  sysfs_unmerge_group+0x20/0x60
[  261.413125]  dpm_sysfs_remove+0x3c/0x78
[  261.413471]  device_del+0x98/0x3f8
[  261.413778]  platform_device_del+0x2c/0xa8
[  261.414139]  platform_device_unregister+0x14/0x30
[  261.414561]  dwc3_host_exit+0x78/0x90
[  261.414893]  __dwc3_set_mode+0x39c/0x3a0
[  261.415250]  process_one_work+0x1a0/0x418
[  261.415611]  worker_thread+0x32c/0x3e0
[  261.415950]  kthread+0x12c/0x158
[  261.416247]  ret_from_fork+0x10/0x18

This patch checks the drd_connected status before handle
disconnect process for host to avoid duplicating unregister
platform device.

Signed-off-by: William Wu <william.wu@rock-chips.com>
Change-Id: I815d800febea89dbf1f5f84eba8efd9e910e3e9a
2021-02-25 15:43:09 +08:00
android ANDROID: GKI: Update ABI for incfs and dm-user 2020-11-20 10:33:53 -08:00
arch arm64: dts: rockchip: rk3568: Add Legacy INT support for PCIe 2021-02-25 14:28:32 +08:00
block Merge tag 'ASB-2020-12-05_4.19-stable' of https://android.googlesource.com/kernel/common 2020-12-29 16:10:48 +08:00
certs rk: revert to v4.4 2019-02-10 00:33:21 +08:00
crypto Merge tag 'ASB-2020-12-05_4.19-stable' of https://android.googlesource.com/kernel/common 2020-12-29 16:10:48 +08:00
Documentation soc: rockchip: support rk3568 pm config 2021-01-26 19:29:40 +08:00
drivers usb: dwc3: core: fix NULL pointer dereference when plug out otg host 2021-02-25 15:43:09 +08:00
firmware Fix built-in early-load Intel microcode alignment 2020-01-23 08:21:29 +01:00
fs ubifs: Recovery for cases of unclean reboot 2021-02-05 10:43:56 +08:00
include media: i2c: rk628csi: add rk628csi HDMI to MIPI CSI-2 bridge driver 2021-02-24 14:38:33 +08:00
init Merge tag 'ASB-2020-12-05_4.19-stable' of https://android.googlesource.com/kernel/common 2020-12-29 16:10:48 +08:00
ipc Revert "Revert "ANDROID: vfs: Add permission2 for filesystems with per mount permissions"" 2020-09-25 09:32:04 +08:00
kernel PM / sleep: support mem_lite/mem_ultra mode 2021-01-26 19:29:35 +08:00
lib Merge tag 'ASB-2020-12-05_4.19-stable' of https://android.googlesource.com/kernel/common 2020-12-29 16:10:48 +08:00
LICENSES LICENSES: Remove CC-BY-SA-4.0 license text 2018-10-18 11:28:50 +02:00
mm mm: cma: add CmaAllocated/CmaReleased info for meminfo node 2021-01-07 14:16:12 +08:00
net net: rfkill-wlan: fixes WARN if WIFI,poweren_gpio is not assigned 2021-01-22 20:13:01 +08:00
samples This is the 4.19.154 stable release 2020-10-30 11:43:26 +01:00
scripts scripts/gcc-wrapper.py: ignore pseudo_files.c:715 2021-01-04 10:18:15 +08:00
security Merge tag 'ASB-2020-12-05_4.19-stable' of https://android.googlesource.com/kernel/common 2020-12-29 16:10:48 +08:00
sound ASoC: es7202: Add missing sentinel to es7202_dt_ids 2021-02-08 11:40:01 +08:00
tools Merge tag 'ASB-2020-12-05_4.19-stable' of https://android.googlesource.com/kernel/common 2020-12-29 16:10:48 +08:00
usr initramfs: restore default compression behavior 2020-04-13 10:44:59 +02:00
virt KVM: arm64: vgic-v3: Drop the reporting of GICR_TYPER.Last for userspace 2020-12-02 08:48:07 +01:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore rk: .gitignore: ignore boot.img/kernel.img/resource.img/zboot.mg 2019-02-15 18:31:05 +08:00
.mailmap rk: revert to v4.4 2019-02-10 00:33:21 +08:00
.scmversion
build.config.aarch64 Revert "ANDROID: Kbuild, LLVMLinux: allow overriding clang target triple" 2020-11-10 11:47:24 -08:00
build.config.allmodconfig Revert "ANDROID: Kbuild, LLVMLinux: allow overriding clang target triple" 2020-11-10 11:47:24 -08:00
build.config.allmodconfig.aarch64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-09-25 15:14:51 +08:00
build.config.allmodconfig.arm ANDROID: drop KERNEL_DIR setting in build.config.common 2020-09-25 15:14:51 +08:00
build.config.allmodconfig.x86_64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-09-25 15:14:51 +08:00
build.config.arm Revert "ANDROID: Kbuild, LLVMLinux: allow overriding clang target triple" 2020-11-10 11:47:24 -08:00
build.config.common Revert "Revert "ANDROID: clang: update to 11.0.5"" 2020-12-04 12:58:01 -08:00
build.config.gki ANDROID: gki: Removed cf modules from gki_defconfig 2020-01-31 16:23:38 -08:00
build.config.gki_kasan ANDROID: drop KERNEL_DIR setting in build.config.common 2020-09-25 15:14:51 +08:00
build.config.gki_kasan.aarch64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-09-25 15:14:51 +08:00
build.config.gki_kasan.x86_64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-09-25 15:14:51 +08:00
build.config.gki-debug.aarch64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-09-25 15:14:51 +08:00
build.config.gki-debug.x86_64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-09-25 15:14:51 +08:00
build.config.gki.aarch64 ANDROID: GKI: prevent removal of monitored symbols 2020-09-29 11:48:43 +01:00
build.config.gki.x86_64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-09-25 15:14:51 +08:00
build.config.x86_64 Revert "ANDROID: Kbuild, LLVMLinux: allow overriding clang target triple" 2020-11-10 11:47:24 -08:00
COPYING
CREDITS
Kbuild rk: revert to v4.4 2019-02-10 00:33:21 +08:00
Kconfig
logo_kernel.bmp rk: logo: update logo file 2019-08-29 19:45:37 +08:00
logo.bmp rk: logo: update logo file 2019-08-29 19:45:37 +08:00
MAINTAINERS UPSTREAM: include: trace: Add SCMI header with trace events 2020-12-22 15:54:10 +08:00
Makefile Merge tag 'ASB-2020-12-05_4.19-stable' of https://android.googlesource.com/kernel/common 2020-12-29 16:10:48 +08: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.
See Documentation/00-INDEX for a list of what is contained in each file.

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.