Revision 56ee254d23c59fd48fb6f192d79858f60cfe2bf6 authored by David Sterba on 27 October 2021, 08:42:27 UTC, committed by David Sterba on 29 October 2021, 11:02:50 UTC
This reverts commit bbaf9715f3f5b5ff0de71da91fcc34ee9c198ed8.

The kmaps in compression code are still needed and cause crashes on
32bit machines (ARM, x86). Reproducible eg. by running fstest btrfs/004
with enabled LZO or ZSTD compression.

Example stacktrace with ZSTD on a 32bit ARM machine:

  Unable to handle kernel NULL pointer dereference at virtual address 00000000
  pgd = c4159ed3
  [00000000] *pgd=00000000
  Internal error: Oops: 5 [#1] PREEMPT SMP ARM
  Modules linked in:
  CPU: 0 PID: 210 Comm: kworker/u2:3 Not tainted 5.14.0-rc79+ #12
  Hardware name: Allwinner sun4i/sun5i Families
  Workqueue: btrfs-delalloc btrfs_work_helper
  PC is at mmiocpy+0x48/0x330
  LR is at ZSTD_compressStream_generic+0x15c/0x28c

  (mmiocpy) from [<c0629648>] (ZSTD_compressStream_generic+0x15c/0x28c)
  (ZSTD_compressStream_generic) from [<c06297dc>] (ZSTD_compressStream+0x64/0xa0)
  (ZSTD_compressStream) from [<c049444c>] (zstd_compress_pages+0x170/0x488)
  (zstd_compress_pages) from [<c0496798>] (btrfs_compress_pages+0x124/0x12c)
  (btrfs_compress_pages) from [<c043c068>] (compress_file_range+0x3c0/0x834)
  (compress_file_range) from [<c043c4ec>] (async_cow_start+0x10/0x28)
  (async_cow_start) from [<c0475c3c>] (btrfs_work_helper+0x100/0x230)
  (btrfs_work_helper) from [<c014ef68>] (process_one_work+0x1b4/0x418)
  (process_one_work) from [<c014f210>] (worker_thread+0x44/0x524)
  (worker_thread) from [<c0156aa4>] (kthread+0x180/0x1b0)
  (kthread) from [<c0100150>]

Link: https://lore.kernel.org/all/CAJCQCtT+OuemovPO7GZk8Y8=qtOObr0XTDp8jh4OHD6y84AFxw@mail.gmail.com/
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=214839
Signed-off-by: David Sterba <dsterba@suse.com>
1 parent 3a60f65
History
File Mode Size
Documentation
arch
bench
examples
include
jvmti
pmu-events
python
scripts
tests
trace
ui
util
.gitignore -rw-r--r-- 577 bytes
Build -rw-r--r-- 1.6 KB
CREDITS -rw-r--r-- 603 bytes
MANIFEST -rw-r--r-- 421 bytes
Makefile -rw-r--r-- 2.7 KB
Makefile.config -rw-r--r-- 36.6 KB
Makefile.perf -rw-r--r-- 39.5 KB
builtin-annotate.c -rw-r--r-- 17.5 KB
builtin-bench.c -rw-r--r-- 8.1 KB
builtin-buildid-cache.c -rw-r--r-- 12.8 KB
builtin-buildid-list.c -rw-r--r-- 3.2 KB
builtin-c2c.c -rw-r--r-- 71.4 KB
builtin-config.c -rw-r--r-- 5.7 KB
builtin-daemon.c -rw-r--r-- 31.0 KB
builtin-data.c -rw-r--r-- 3.2 KB
builtin-diff.c -rw-r--r-- 46.0 KB
builtin-evlist.c -rw-r--r-- 2.5 KB
builtin-ftrace.c -rw-r--r-- 21.7 KB
builtin-help.c -rw-r--r-- 11.7 KB
builtin-inject.c -rw-r--r-- 28.0 KB
builtin-kallsyms.c -rw-r--r-- 1.7 KB
builtin-kmem.c -rw-r--r-- 45.6 KB
builtin-kvm.c -rw-r--r-- 38.1 KB
builtin-list.c -rw-r--r-- 4.0 KB
builtin-lock.c -rw-r--r-- 23.1 KB
builtin-mem.c -rw-r--r-- 11.6 KB
builtin-probe.c -rw-r--r-- 18.9 KB
builtin-record.c -rw-r--r-- 78.1 KB
builtin-report.c -rw-r--r-- 46.3 KB
builtin-sched.c -rw-r--r-- 89.7 KB
builtin-script.c -rw-r--r-- 108.6 KB
builtin-stat.c -rw-r--r-- 69.2 KB
builtin-timechart.c -rw-r--r-- 46.5 KB
builtin-top.c -rw-r--r-- 47.4 KB
builtin-trace.c -rw-r--r-- 146.2 KB
builtin-version.c -rw-r--r-- 2.3 KB
builtin.h -rw-r--r-- 1.6 KB
check-headers.sh -rwxr-xr-x 4.9 KB
command-list.txt -rw-r--r-- 1.1 KB
design.txt -rw-r--r-- 17.5 KB
perf-archive.sh -rw-r--r-- 1.2 KB
perf-completion.sh -rw-r--r-- 6.2 KB
perf-iostat.sh -rw-r--r-- 290 bytes
perf-read-vdso.c -rw-r--r-- 547 bytes
perf-sys.h -rw-r--r-- 452 bytes
perf-with-kcore.sh -rw-r--r-- 6.2 KB
perf.c -rw-r--r-- 12.7 KB
perf.h -rw-r--r-- 450 bytes

back to top