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
Jiri Kosina 29ed45653b block/floppy: fix contended case in floppy_queue_rq()
commit 263c61581a38d0a5ad1f5f4a9143b27d68caeffd upstream.

Since the switch of floppy driver to blk-mq, the contended (fdc_busy) case
in floppy_queue_rq() is not handled correctly.

In case we reach floppy_queue_rq() with fdc_busy set (i.e. with the floppy
locked due to another request still being in-flight), we put the request
on the list of requests and return BLK_STS_OK to the block core, without
actually scheduling delayed work / doing further processing of the
request. This means that processing of this request is postponed until
another request comes and passess uncontended.

Which in some cases might actually never happen and we keep waiting
indefinitely. The simple testcase is

	for i in `seq 1 2000`; do echo -en $i '\r'; blkid --info /dev/fd0 2> /dev/null; done

run in quemu. That reliably causes blkid eventually indefinitely hanging
in __floppy_read_block_0() waiting for completion, as the BIO callback
never happens, and no further IO is ever submitted on the (non-existent)
floppy device. This was observed reliably on qemu-emulated device.

Fix that by not queuing the request in the contended case, and return
BLK_STS_RESOURCE instead, so that blk core handles the request
rescheduling and let it pass properly non-contended later.

Fixes: a9f38e1dec ("floppy: convert to blk-mq")
Cc: stable@vger.kernel.org
Tested-by: Libor Pechacek <lpechacek@suse.cz>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-06-17 16:40:38 +02:00
arch ARM: dts: at91: sama5d2_ptc_ek: fix sdmmc0 node description 2020-06-17 16:40:37 +02:00
block
certs
crypto crypto: drbg - fix error return code in drbg_alloc_state() 2020-06-17 16:40:31 +02:00
Documentation lib/lzo: fix ambiguous encoding bug in lzo-rle 2020-06-17 16:40:28 +02:00
drivers block/floppy: fix contended case in floppy_queue_rq() 2020-06-17 16:40:38 +02:00
fs fat: don't allow to mount if the FAT length == 0 2020-06-17 16:40:36 +02:00
include dccp: Fix possible memleak in dccp_init and dccp_fini 2020-06-17 16:40:32 +02:00
init
ipc
kernel perf: Add cond_resched() to task_function_call() 2020-06-17 16:40:36 +02:00
lib lib/lzo: fix ambiguous encoding bug in lzo-rle 2020-06-17 16:40:28 +02:00
LICENSES
mm mm/slub: fix a memory leak in sysfs_slab_add() 2020-06-17 16:40:36 +02:00
net dccp: Fix possible memleak in dccp_init and dccp_fini 2020-06-17 16:40:32 +02:00
samples
scripts bpf: Support llvm-objcopy for vmlinux BTF 2020-06-17 16:40:20 +02:00
security Smack: slab-out-of-bounds in vsscanf 2020-06-17 16:40:36 +02:00
sound ALSA: usb-audio: Add vendor, product and profile name for HP Thunderbolt Dock 2020-06-17 16:40:28 +02:00
tools selftests/ftrace: Return unsupported if no error_log file 2020-06-17 16:40:35 +02:00
usr
virt KVM: x86: Fix APIC page invalidation race 2020-06-17 16:40:26 +02:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile Linux 5.4.46 2020-06-10 20:24:58 +02: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.