No description
Find a file
Johannes Berg 006015bdd3 iwlwifi: pcie: reschedule in long-running memory reads
[ Upstream commit 3d372c4edf ]

If we spin for a long time in memory reads that (for some reason in
hardware) take a long time, then we'll eventually get messages such
as

  watchdog: BUG: soft lockup - CPU#2 stuck for 24s! [kworker/2:2:272]

This is because the reading really does take a very long time, and
we don't schedule, so we're hogging the CPU with this task, at least
if CONFIG_PREEMPT is not set, e.g. with CONFIG_PREEMPT_VOLUNTARY=y.

Previously I misinterpreted the situation and thought that this was
only going to happen if we had interrupts disabled, and then fixed
this (which is good anyway, however), but that didn't always help;
looking at it again now I realized that the spin unlock will only
reschedule if CONFIG_PREEMPT is used.

In order to avoid this issue, change the code to cond_resched() if
we've been spinning for too long here.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Fixes: 04516706bb ("iwlwifi: pcie: limit memory read spin time")
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/iwlwifi.20210115130253.217a9d6a6a12.If964cb582ab0aaa94e81c4ff3b279eaafda0fd3f@changeid
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-02-03 23:22:22 +01:00
arch ARM: imx: build suspend-imx6.S with arm instruction set 2021-02-03 23:22:22 +01:00
block block: fix use-after-free in disk_part_iter_next 2021-01-17 13:59:01 +01:00
certs
crypto crypto: ecdh - avoid buffer overflow in ecdh_set_secret() 2021-01-12 20:09:09 +01:00
Documentation USB: UAS: introduce a quirk to set no_write_same 2020-12-29 13:46:46 +01:00
drivers iwlwifi: pcie: reschedule in long-running memory reads 2021-02-03 23:22:22 +01:00
firmware Fix built-in early-load Intel microcode alignment 2020-01-23 08:20:30 +01:00
fs fs: fix lazytime expiration handling in __writeback_single_inode() 2021-01-30 13:31:17 +01:00
include writeback: Drop I_DIRTY_TIME_EXPIRE 2021-01-30 13:31:17 +01:00
init printk: reduce LOG_BUF_SHIFT range for H8300 2020-11-05 11:06:55 +01:00
ipc ipc/util.c: sysvipc_find_ipc() incorrectly updates position index 2020-05-20 08:17:07 +02:00
kernel tracing: Fix race in trace_open and buffer resize call 2021-01-30 13:31:16 +01:00
lib lib/genalloc: fix the overflow when size is too big 2021-01-12 20:09:06 +01:00
mm Revert "mm/slub: fix a memory leak in sysfs_slab_add()" 2021-01-30 13:31:15 +01:00
net xfrm: Fix oops in xfrm_replay_advance_bmp 2021-02-03 23:22:22 +01:00
samples samples: bpf: Fix lwt_len_hist reusing previous BPF map 2020-12-29 13:46:56 +01:00
scripts depmod: handle the case of /sbin/depmod without /sbin in PATH 2021-01-12 20:09:06 +01:00
security dump_common_audit_data(): fix racy accesses to ->d_name 2021-01-23 15:48:43 +01:00
sound ASoC: Intel: haswell: Add missing pm_ops 2021-01-30 13:31:12 +01:00
tools perf record: Fix memory leak when using '--user-regs=?' to list registers 2020-12-29 13:47:03 +01:00
usr initramfs: restore default compression behavior 2020-04-13 10:34:19 +02:00
virt KVM: fix overflow of zero page refcount with ksm running 2020-10-01 13:12:33 +02:00
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS MAINTAINERS: Update drm/i915 bug filing URL 2020-02-28 16:36:12 +01:00
Makefile Linux 4.14.218 2021-01-30 13:31:17 +01:00
README

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

This file was moved to Documentation/admin-guide/README.rst

Please notice that there are several guides for kernel developers and users.
These guides can be rendered in a number of formats, like HTML and PDF.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.

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.