No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jack Pham a5542b45c7 usb: gadget: u_audio: Free requests only after callback
[ Upstream commit 7de8681be2cde9f6953d3be1fa6ce05f9fe6e637 ]

As per the kernel doc for usb_ep_dequeue(), it states that "this
routine is asynchronous, that is, it may return before the completion
routine runs". And indeed since v5.0 the dwc3 gadget driver updated
its behavior to place dequeued requests on to a cancelled list to be
given back later after the endpoint is stopped.

The free_ep() was incorrectly assuming that a request was ready to
be freed after calling dequeue which results in a use-after-free
in dwc3 when it traverses its cancelled list. Fix this by moving
the usb_ep_free_request() call to the callback itself in case the
ep is disabled.

Fixes: eb9fecb9e6 ("usb: gadget: f_uac2: split out audio core")
Reported-and-tested-by: Ferry Toth <fntoth@gmail.com>
Reviewed-and-tested-by: Peter Chen <peter.chen@nxp.com>
Acked-by: Felipe Balbi <balbi@kernel.org>
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://lore.kernel.org/r/20210118084642.322510-2-jbrunet@baylibre.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-03-04 10:26:14 +01:00
arch arm64: dts: allwinner: A64: Limit MMC2 bus frequency to 150 MHz 2021-03-04 10:26:13 +01:00
block bfq: Avoid false bfq queue merging 2021-03-04 10:26:10 +01:00
certs
crypto crypto: asym_tpm: correct zero out potential secrets 2021-01-12 20:16:17 +01:00
Documentation KVM: Forbid the use of tagged userspace addresses for memslots 2021-02-03 23:25:57 +01:00
drivers usb: gadget: u_audio: Free requests only after callback 2021-03-04 10:26:14 +01:00
fs debugfs: do not attempt to create a new file before the filesystem is initalized 2021-03-04 10:26:10 +01:00
include ACPICA: Fix exception code class checks 2021-03-04 10:26:14 +01:00
init fgraph: Initialize tracing_graph_pause at task creation 2021-02-10 09:25:29 +01:00
ipc
kernel kdb: Make memory allocations more robust 2021-03-04 10:26:10 +01:00
lib udp: fix skb_copy_and_csum_datagram with odd segment sizes 2021-02-17 10:35:19 +01:00
LICENSES
mm mm: provide a saner PTE walking API for modules 2021-02-26 10:10:28 +01:00
net Bluetooth: Fix initializing response id after clearing struct 2021-03-04 10:26:11 +01:00
samples samples: bpf: Fix lwt_len_hist reusing previous BPF map 2020-12-30 11:51:12 +01:00
scripts scripts/recordmcount.pl: support big endian for ARCH sh 2021-02-26 10:10:28 +01:00
security cap: fix conversions on getxattr 2021-02-17 10:35:15 +01:00
sound ALSA: usb-audio: Fix PCM buffer allocation in non-vmalloc mode 2021-03-04 10:26:10 +01:00
tools selftests: txtimestamp: fix compilation issue 2021-02-17 10:35:17 +01:00
usr
virt KVM: Use kvm_pfn_t for local PFN variable in hva_to_pfn_remapped() 2021-02-26 10:10:28 +01:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile Linux 5.4.101 2021-02-26 10:10:28 +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.