linux/lib
Andrey Konovalov c7d68c4502 BACKPORT: kasan, arm64: allow using KUnit tests with HW_TAGS mode
[ Conflicts due to conflicts when reverting the FROMGIT version. ]

On a high level, this patch allows running KUnit KASAN tests with the
hardware tag-based KASAN mode.

Internally, this change reenables tag checking at the end of each KASAN
test that triggers a tag fault and leads to tag checking being disabled.

Also simplify is_write calculation in report_tag_fault.

With this patch KASAN tests are still failing for the hardware tag-based
mode; fixes come in the next few patches.

[andreyknvl@google.com: export HW_TAGS symbols for KUnit tests]
  Link: https://lkml.kernel.org/r/e7eeb252da408b08f0c81b950a55fb852f92000b.1613155970.git.andreyknvl@google.com

Link: https://linux-review.googlesource.com/id/Id94dc9eccd33b23cda4950be408c27f879e474c8
Link: https://lkml.kernel.org/r/51b23112cf3fd62b8f8e9df81026fa2b15870501.1610733117.git.andreyknvl@google.com
Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Branislav Rankov <Branislav.Rankov@arm.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Evgenii Stepanov <eugenis@google.com>
Cc: Kevin Brodsky <kevin.brodsky@arm.com>
Cc: Marco Elver <elver@google.com>
Cc: Peter Collingbourne <pcc@google.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit f05842cfb9)
Bug: 172318110
Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
Change-Id: I56c2fb669b1440b6bb3cd5e41e514a6179ea3b81
2021-03-05 19:34:00 +00:00
..
842
crypto UPSTREAM: crypto: blake2s - move update and final logic to internal/blake2s.h 2021-02-23 08:06:19 +01:00
dim
fonts Fonts: Replace discarded const qualifier 2020-11-03 10:51:34 +01:00
kunit linux-kselftest-kunit-5.10-rc1 2020-10-18 14:45:59 -07:00
livepatch
lz4
lzo
math kernel.h: split out min()/max() et al. helpers 2020-10-16 11:11:19 -07:00
mpi lib/mpi/mpi-bit.c: fix spello of "functions" 2020-10-16 11:11:20 -07:00
pldmfw
raid6 lib/raid6: Let $(UNROLL) rules work with macOS userland 2021-01-19 18:27:25 +01:00
reed_solomon
vdso
xz
zlib_deflate
zlib_dfltcc zlib: move EXPORT_SYMBOL() and MODULE_LICENSE() out of dfltcc_syms.c 2021-01-06 14:56:51 +01:00
zlib_inflate
zstd
.gitignore
argv_split.c
ashldi3.c
ashrdi3.c
asn1_decoder.c
assoc_array.c
atomic64_test.c
atomic64.c
audit.c
bcd.c
bch.c
bitfield_kunit.c lib: kunit: Fix compilation test when using TEST_BIT_FIELD_COMPILE 2020-10-16 13:25:14 -06:00
bitmap.c lib: bitmap: delete duplicated words 2020-10-16 11:11:19 -07:00
bitrev.c
bootconfig.c
bsearch.c
btree.c
bucket_locks.c
bug.c ANDROID: bug: add vendor hook for bug trap 2021-01-21 12:04:44 +00:00
build_OID_registry
bust_spinlocks.c
check_signature.c
checksum.c
clz_ctz.c
clz_tab.c
cmdline.c
cmpdi2.c
compat_audit.c
cpu_rmap.c
cpumask.c Revert "lib: Restrict cpumask_local_spread to houskeeping CPUs" 2021-02-17 11:02:24 +01:00
crc-ccitt.c
crc-itu-t.c
crc-t10dif.c
crc4.c
crc7.c
crc8.c
crc16.c
crc32.c lib/crc32.c: fix trivial typo in preprocessor condition 2020-10-16 11:11:20 -07:00
crc32defs.h
crc32test.c lib/crc32test: remove extra local_irq_disable/enable 2020-11-02 12:14:19 -08:00
crc64.c
ctype.c
debug_info.c
debug_locks.c
debugobjects.c debugobjects: Free per CPU pool after CPU unplug 2020-10-01 16:13:54 +02:00
dec_and_lock.c
decompress_bunzip2.c lib: decompress_bunzip2: delete duplicated words 2020-10-16 11:11:19 -07:00
decompress_inflate.c
decompress_unlz4.c
decompress_unlzma.c
decompress_unlzo.c
decompress_unxz.c
decompress_unzstd.c
decompress.c
devres.c
digsig.c
dump_stack.c
dynamic_debug.c dyndbg: fix use before null check 2020-12-30 11:54:11 +01:00
dynamic_queue_limits.c lib: dynamic_queue_limits: delete duplicated words + fix typo 2020-10-16 11:11:20 -07:00
earlycpio.c lib: earlycpio: delete duplicated words 2020-10-16 11:11:20 -07:00
errname.c
error-inject.c
errseq.c
extable.c
fault-inject-usercopy.c lib, include/linux: add usercopy failure capability 2020-10-16 11:11:22 -07:00
fault-inject.c
fdt_addresses.c
fdt_empty_tree.c
fdt_ro.c
fdt_rw.c
fdt_strerror.c
fdt_sw.c
fdt_wip.c
fdt.c
find_bit_benchmark.c
find_bit.c kernel.h: split out min()/max() et al. helpers 2020-10-16 11:11:19 -07:00
flex_proportions.c
gen_crc32table.c
gen_crc64table.c
genalloc.c lib/genalloc: fix the overflow when size is too big 2021-01-12 20:18:16 +01:00
generic-radix-tree.c
glob.c
globtest.c
hexdump.c kernel.h: split out min()/max() et al. helpers 2020-10-16 11:11:19 -07:00
hweight.c
idr.c XArray updates for 5.9 2020-10-20 14:39:37 -07:00
inflate.c
interval_tree_test.c
interval_tree.c
iomap_copy.c
iomap.c
iommu-helper.c
iov_iter.c udp: fix skb_copy_and_csum_datagram with odd segment sizes 2021-02-17 11:02:28 +01:00
irq_poll.c
irq_regs.c
is_single_threaded.c
kasprintf.c
Kconfig FROMGIT: lib: stackdepot: add support to configure STACK_HASH_SIZE 2021-02-15 15:11:44 -08:00
Kconfig.debug BACKPORT: mm: add Kernel Electric-Fence infrastructure 2021-02-05 09:20:52 -08:00
Kconfig.kasan BACKPORT: kasan, arm64: allow using KUnit tests with HW_TAGS mode 2021-03-05 19:34:00 +00:00
Kconfig.kcsan
Kconfig.kfence FROMGIT: kfence: add test suite 2021-02-05 09:20:54 -08:00
Kconfig.kgdb kgdb: Honour the kprobe blocklist when setting breakpoints 2020-09-28 12:14:08 +01:00
Kconfig.ubsan ubsan: introduce CONFIG_UBSAN_LOCAL_BOUNDS for Clang 2020-10-16 11:11:22 -07:00
kfifo.c
klist.c
kobject_uevent.c
kobject.c
kstrtox.c
kstrtox.h
libcrc32c.c lib: libcrc32c: delete duplicated words 2020-10-16 11:11:19 -07:00
linear_ranges.c
list_debug.c
list_sort.c FROMLIST: lib/list_sort: fix function type mismatches 2021-01-14 16:32:31 +00:00
list-test.c
llist.c
locking-selftest-hardirq.h
locking-selftest-mutex.h
locking-selftest-rlock-hardirq.h
locking-selftest-rlock-softirq.h
locking-selftest-rlock.h
locking-selftest-rsem.h
locking-selftest-rtmutex.h
locking-selftest-softirq.h
locking-selftest-spin-hardirq.h
locking-selftest-spin-softirq.h
locking-selftest-spin.h
locking-selftest-wlock-hardirq.h
locking-selftest-wlock-softirq.h
locking-selftest-wlock.h
locking-selftest-wsem.h
locking-selftest.c
lockref.c
logic_pio.c
lru_cache.c
lshrdi3.c
Makefile FROMGIT: kasan: rename CONFIG_TEST_KASAN_MODULE 2021-02-07 13:41:41 -08:00
memcat_p.c
memory-notifier-error-inject.c
memregion.c lib/memregion.c: include memregion.h 2020-09-26 10:33:57 -07:00
memweight.c
muldi3.c
net_utils.c
netdev-notifier-error-inject.c
nlattr.c netlink: export policy in extended ACK 2020-10-09 20:22:32 -07:00
nmi_backtrace.c
nodemask.c
notifier-error-inject.c
notifier-error-inject.h
objagg.c
of-reconfig-notifier-error-inject.c
oid_registry.c
once.c
packing.c
parman.c
parser.c
pci_iomap.c
percpu_counter.c lib/percpu_counter.c: use helper macro abs() 2020-10-16 11:11:20 -07:00
percpu_test.c
percpu-refcount.c percpu_ref: don't refer to ref->data if it isn't allocated 2020-10-09 12:32:06 -06:00
plist.c
pm-notifier-error-inject.c
radix-tree.c XArray updates for 5.9 2020-10-20 14:39:37 -07:00
random32.c random32: add a selftest for the prandom32 code 2020-10-24 20:21:57 +02:00
ratelimit.c
rbtree_test.c
rbtree.c
refcount.c
rhashtable.c
sbitmap.c
scatterlist.c lib/scatterlist: use consistent sg_copy_buffer() return type 2020-10-29 08:55:45 -06:00
seq_buf.c
sg_pool.c
sg_split.c
sha1.c
show_mem.c
siphash.c
smp_processor_id.c
sort.c
stackdepot.c FROMGIT: lib: stackdepot: fix ignoring return value warning 2021-02-15 15:11:44 -08:00
stmp_device.c
string_helpers.c lib: string_helpers: provide kfree_strarray() 2020-09-30 10:50:30 +02:00
string.c lib/string.c: implement stpcpy 2020-09-26 10:33:57 -07:00
strncpy_from_user.c lib/strncpy_from_user.c: Mask out bytes after NUL terminator. 2020-11-19 11:56:16 -08:00
strnlen_user.c
syscall.c lib/syscall: fix syscall registers retrieval on 32-bit platforms 2020-12-03 09:52:44 -08:00
test_bitmap.c UPSTREAM: lib: use KSTM_MODULE_GLOBALS macro in kselftest drivers 2021-02-25 21:36:45 +00:00
test_bitops.c
test_bits.c
test_blackhole_dev.c
test_bpf.c
test_debug_virtual.c
test_firmware.c test_firmware: Test partial read support 2020-10-05 13:37:04 +02:00
test_fpu.c
test_free_pages.c mm/page_alloc.c: fix freeing non-compound pages 2020-10-13 18:38:33 -07:00
test_hash.c
test_hexdump.c
test_hmm_uapi.h
test_hmm.c lib/test_hmm.c: fix an error code in dmirror_allocate_chunk() 2020-10-16 11:11:20 -07:00
test_ida.c
test_kasan_module.c FROMGIT: kasan: clean up comments in tests 2021-02-07 13:41:41 -08:00
test_kasan.c BACKPORT: kasan, arm64: allow using KUnit tests with HW_TAGS mode 2021-03-05 19:34:00 +00:00
test_kmod.c
test_linear_ranges.c
test_list_sort.c
test_lockup.c
test_memcat_p.c
test_meminit.c
test_min_heap.c
test_module.c
test_objagg.c
test_overflow.c
test_parman.c
test_printf.c UPSTREAM: lib/vsprintf: no_hash_pointers prints all addresses as unhashed 2021-02-25 21:37:05 +00:00
test_rhashtable.c
test_siphash.c
test_sort.c
test_stackinit.c
test_static_key_base.c
test_static_keys.c
test_string.c
test_strscpy.c
test_sysctl.c lib: test_sysctl: delete duplicated words 2020-10-16 11:11:20 -07:00
test_ubsan.c
test_user_copy.c
test_uuid.c
test_vmalloc.c
test_xarray.c XArray updates for 5.9 2020-10-20 14:39:37 -07:00
test-kstrtox.c
test-string_helpers.c
textsearch.c
timerqueue.c
ts_bm.c
ts_fsm.c
ts_kmp.c
ubsan.c ubsan: implement __ubsan_handle_alignment_assumption 2021-02-17 11:02:24 +01:00
ubsan.h ubsan: implement __ubsan_handle_alignment_assumption 2021-02-17 11:02:24 +01:00
ucmpdi2.c
ucs2_string.c
usercopy.c lib, uaccess: add failure injection to usercopy functions 2020-10-16 11:11:22 -07:00
uuid.c
vsprintf.c UPSTREAM: lib/vsprintf: no_hash_pointers prints all addresses as unhashed 2021-02-25 21:37:05 +00:00
win_minmax.c
xarray.c XArray updates for 5.9 2020-10-20 14:39:37 -07:00
xxhash.c