mainlining shenanigans
Go to file
Tetsuo Handa 0538fa09bb
gpu/drm/bridge/cadence: avoid flush_scheduled_work() usage
Like commit c4f135d643 ("workqueue: Wrap flush_workqueue() using a
macro") says, flush_scheduled_work() is dangerous and will be forbidden.
We are on the way for removing all flush_scheduled_work() callers from
the kernel, and this patch is for removing flush_scheduled_work() call
 from cadence driver.

Since cdns-mhdp8546 driver uses 4 works

  mhdp->modeset_retry_work
  mhdp->hpd_work
  mhdp->hdcp.check_work
  mhdp->hdcp.prop_work

I assume that flush_scheduled_work() in cdns_mhdp_remove() needs to wait
for only these 4 works.

Since mhdp->modeset_retry_work already uses cancel_work_sync(), I assume
that flush_scheduled_work() needs to wait for only 3 works. But I came to
wonder whether mhdp->hdcp.check_work should be flushed or cancelled.

While flush_scheduled_work() waits for completion of works which were
already queued to system_wq, mhdp->hdcp.check_work is a delayed work.
That is, this work won't be queued to system_wq unless timeout expires.

Current code will wait for mhdp->hdcp.check_work only if timeout already
expired. If timeout is not expired yet, flush_scheduled_work() will fail
to cancel mhdp->hdcp.check_work, and cdns_mhdp_hdcp_check_work() which is
triggered by mhdp->hdcp.check_work will schedule hdcp->check_work, which
is too late for flush_scheduled_work() to wait for completion of
cdns_mhdp_hdcp_prop_work().

But since I couldn't get comments on how do we want to handle this race
window [1], this patch chose "do nothing" for mhdp->hdcp.check_work and
mhdp->hdcp.prop_work. That is, I assume that flush_scheduled_work() in
cdns_mhdp_remove() needs to wait for only mhdp->hpd_work work.

Link: https://lkml.kernel.org/r/943273cb-c2ec-24e3-5edb-64eacc6e2d30@I-love.SAKURA.ne.jp [1]
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: Robert Foss <robert.foss@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/216591bc-28bb-0453-10bb-59e268dff540@I-love.SAKURA.ne.jp
2022-09-01 13:43:46 +02:00
arch - Prepare for and clear .brk early in order to address XenPV guests 2022-07-10 08:43:52 -07:00
block block: remove WARN_ON() from bd_link_disk_holder 2022-06-23 07:48:05 -06:00
certs Certs changes 2022-06-21 12:13:53 -05:00
crypto crypto: s390 - do not depend on CRYPTO_HW for SIMD implementations 2022-07-06 20:04:06 -07:00
Documentation dt-bindings: display: bridge: icn6211: Add support for external REFCLK 2022-08-26 13:54:52 +02:00
drivers gpu/drm/bridge/cadence: avoid flush_scheduled_work() usage 2022-09-01 13:43:46 +02:00
fs o_uring-5.19-2022-07-09 2022-07-10 09:14:54 -07:00
include drm/dp: add drm_dp_phy_name() for getting DP PHY name 2022-08-30 11:02:42 +03:00
init gcc-12: disable '-Warray-bounds' universally for now 2022-06-09 10:11:12 -07:00
ipc These changes update the ipc sysctls so that they are fundamentally 2022-06-03 15:54:57 -07:00
kernel Linux 5.19-rc6 2022-07-13 10:54:56 +10:00
lib ida: don't use BUG_ON() for debugging 2022-07-10 13:55:49 -07:00
LICENSES
mm Minor things, mainly - mailmap updates, MAINTAINERS updates, etc. 2022-06-26 14:00:55 -07:00
net Networking fixes for 5.19-rc6, including fixes from bpf, netfilter, 2022-07-07 10:08:20 -07:00
samples fprobe, samples: Add module parameter descriptions 2022-06-24 15:23:04 -07:00
scripts kbuild: remove unused cmd_none in scripts/Makefile.modinst 2022-07-10 21:25:15 +09:00
security selinux: free contexts previously transferred in selinux_add_opt() 2022-06-15 21:20:45 -04:00
sound ALSA: cs46xx: Fix missing snd_card_free() call at probe error 2022-07-05 17:24:05 +02:00
tools - Prepare for and clear .brk early in order to address XenPV guests 2022-07-10 08:43:52 -07:00
usr Not a lot of material this cycle. Many singleton patches against various 2022-05-27 11:22:03 -07:00
virt KVM: x86: disable preemption around the call to kvm_arch_vcpu_{un|}blocking 2022-06-09 10:52:20 -04:00
.clang-format clang-format: Fix space after for_each macros 2022-05-20 19:27:16 +02:00
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap cxl fixes for 5.19-rc6 2022-07-08 12:55:25 -07:00
COPYING
CREDITS drm/exynos: MAINTAINERS: move Joonyoung Shim to credits 2022-07-12 13:52:59 +09:00
Kbuild
Kconfig
MAINTAINERS MAINTAINERS: Add myself as a reviewer for panel-edp.c 2022-08-30 08:45:22 -07:00
Makefile Linux 5.19-rc6 2022-07-10 14:40:51 -07: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.