No description
Find a file
Heiko Carstens 920db3ad2f s390/checksum: always use cksm instruction
[ Upstream commit e42ac7789d ]

Commit dfe843dce7 ("s390/checksum: support GENERIC_CSUM, enable it for
KASAN") switched s390 to use the generic checksum functions, so that KASAN
instrumentation also works checksum functions by avoiding architecture
specific inline assemblies.

There is however the problem that the generic csum_partial() function
returns a 32 bit value with a 16 bit folded checksum, while the original
s390 variant does not fold to 16 bit. This in turn causes that the
ipib_checksum in lowcore contains different values depending on kernel
config options.

The ipib_checksum is used by system dumpers to verify if pointers in
lowcore point to valid data. Verification is done by comparing checksum
values. The system dumpers still use 32 bit checksum values which are not
folded, and therefore the checksum verification fails (incorrectly).

Symptom is that reboot after dump does not work anymore when a KASAN
instrumented kernel is dumped.

Fix this by not using the generic checksum implementation. Instead add an
explicit kasan_check_read() so that KASAN knows about the read access from
within the inline assembly.

Reported-by: Alexander Egorenkov <egorenar@linux.ibm.com>
Fixes: dfe843dce7 ("s390/checksum: support GENERIC_CSUM, enable it for KASAN")
Tested-by: Alexander Egorenkov <egorenar@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-05-11 23:11:28 +09:00
arch s390/checksum: always use cksm instruction 2023-05-11 23:11:28 +09:00
block blk-mq: don't plug for head insertions in blk_execute_rq_nowait 2023-05-11 23:11:14 +09:00
certs certs: Fix build error when PKCS#11 URI contains semicolon 2023-01-31 17:53:01 +09:00
crypto crypto: drbg - Only fail when jent is unavailable in FIPS mode 2023-05-11 23:11:12 +09:00
Documentation ASoC: dt-bindings: qcom,lpass-rx-macro: correct minItems for clocks 2023-05-11 23:10:55 +09:00
drivers iommu/amd: Set page size bitmap during V2 domain allocation 2023-05-11 23:11:28 +09:00
fs NFSv4.1: Always send a RECLAIM_COMPLETE after establishing lease 2023-05-11 23:11:28 +09:00
include uapi/linux/const.h: prefer ISO-friendly __typeof__ 2023-05-11 23:11:23 +09:00
init gcc: disable '-Warray-bounds' for gcc-13 too 2023-04-26 14:30:08 +02:00
io_uring io_uring/rsrc: use nospec'ed indexes 2023-05-11 23:11:15 +09:00
ipc Non-MM patches for 6.2-rc1. 2022-12-12 17:28:58 -08:00
kernel workqueue: Fix hung time report of worker pools 2023-05-11 23:11:26 +09:00
lib debugobject: Prevent init race with static objects 2023-05-11 23:11:07 +09:00
LICENSES LICENSES: Add the copyleft-next-0.3.1 license 2022-11-08 15:44:01 +01:00
mm mm/mempolicy: fix use-after-free of VMA iterator 2023-05-01 08:29:23 +09:00
net tcp/udp: Fix memleaks of sk and zerocopy skbs with TX timestamp. 2023-05-11 23:11:19 +09:00
rust rust: kernel: Mark rust_fmt_argument as extern "C" 2023-04-26 14:30:02 +02:00
samples ftrace: Export ftrace_free_filter() to modules 2023-01-24 11:20:58 -05:00
scripts scripts/gdb: raise error with reduced debugging information 2023-05-11 23:11:23 +09:00
security selinux: ensure av_permissions.h is built when needed 2023-05-11 23:10:56 +09:00
sound ASoC: fsl_mqs: move of_node_put() to the correct location 2023-05-11 23:11:23 +09:00
tools tracing/user_events: Ensure write index cannot be negative 2023-05-11 23:11:25 +09:00
usr usr/gen_init_cpio.c: remove unnecessary -1 values from int file 2022-10-03 14:21:44 -07:00
virt KVM: Register /dev/kvm as the _very_ last thing during initialization 2023-03-10 09:29:33 +01:00
.clang-format iommufd for 6.2 2022-12-14 09:15:43 -08:00
.cocciconfig
.get_maintainer.ignore get_maintainer: add Alan to .get_maintainer.ignore 2022-08-20 15:17:44 -07:00
.gitattributes .gitattributes: use 'dts' diff driver for dts files 2019-12-04 19:44:11 -08:00
.gitignore .gitignore: ignore *.rpm 2022-12-30 17:22:14 +09:00
.mailmap 12 hotfixes, mostly against mm/. Five of these fixes are cc:stable. 2023-02-13 14:09:20 -08:00
.rustfmt.toml rust: add .rustfmt.toml 2022-09-28 09:02:20 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS MAINTAINERS: update SCTP maintainers 2023-02-02 11:35:33 -08:00
Kbuild Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS audit: update the mailing list in MAINTAINERS 2023-02-25 11:13:29 +01:00
Makefile Linux 6.2.14 2023-05-01 08:29:23 +09: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.