Herbert Xu
f2b639b2aa
crc-t10dif: Fix potential crypto notify dead-lock
...
[ Upstream commit 3906f640224dbe7714b52b66d7d68c0812808e19 ]
The crypto notify call occurs with a read mutex held so you must
not do any substantial work directly. In particular, you cannot
call crypto_alloc_* as they may trigger further notifications
which may dead-lock in the presence of another writer.
This patch fixes this by postponing the work into a work queue and
taking the same lock in the module init function.
While we're at it this patch also ensures that all RCU accesses are
marked appropriately (tested with sparse).
Finally this also reveals a race condition in module param show
function as it may be called prior to the module init function.
It's fixed by testing whether crct10dif_tfm is NULL (this is true
iff the init function has not completed assuming fallback is false).
Fixes: 11dcb1037f ("crc-t10dif: Allow current transform to be...")
Fixes: b76377543b ("crc-t10dif: Pick better transform if one...")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-08-19 08:15:54 +02:00
..
842
lib: 842: no need to check return value of debugfs_create functions
2019-07-03 16:57:17 +02:00
crypto
crypto: sha256 - Remove sha256/224_init code duplication
2019-09-05 14:54:54 +10:00
dim
lib/dim: Fix -Wunused-const-variable warnings
2019-07-25 11:34:39 -07:00
fonts
fonts: Prefer a bigger font for high resolution screens
2019-06-20 10:11:24 +02:00
livepatch
lz4
lz4: do not export static symbol
2019-09-20 09:06:26 -07:00
lzo
lib/lzo: fix ambiguous encoding bug in lzo-rle
2020-06-17 16:40:28 +02:00
math
treewide: Add SPDX license identifier - Makefile/Kconfig
2019-05-21 10:50:46 +02:00
mpi
lib/mpi: Fix 64-bit MIPS build with Clang
2020-06-22 09:31:00 +02:00
raid6
lib/raid6/test: fix build on distros whose /bin/sh is not bash
2020-04-29 16:33:00 +02:00
reed_solomon
rslib: Make some functions static
2019-07-02 08:41:37 +02:00
vdso
lib/vdso: Make clock_getres() POSIX compliant again
2019-10-23 14:48:23 +02:00
xz
lib/xz: fix XZ_DYNALLOC to avoid useless memory reallocations
2019-11-15 18:34:00 -08:00
zlib_deflate
treewide: Add SPDX license identifier - Makefile/Kconfig
2019-05-21 10:50:46 +02:00
zlib_inflate
lib/zlib: remove outdated and incorrect pre-increment optimization
2020-06-24 17:50:39 +02:00
zstd
lib/zstd/mem.h: replace __inline by inline
2019-09-15 19:42:16 +02:00
.gitignore
argv_split.c
ashldi3.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 120
2019-05-24 17:39:02 +02:00
ashrdi3.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 120
2019-05-24 17:39:02 +02:00
asn1_decoder.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36
2019-05-24 17:27:11 +02:00
assoc_array.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36
2019-05-24 17:27:11 +02:00
atomic64.c
locking/atomic: Use s64 for atomic64
2019-06-03 12:32:56 +02:00
atomic64_test.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
audit.c
bcd.c
bch.c
bitmap.c
cpumask: Implement cpumask_or_equal()
2019-07-25 15:47:37 +02:00
bitrev.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
bsearch.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 372
2019-06-05 17:37:10 +02:00
btree.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 431
2019-06-05 17:37:16 +02:00
bucket_locks.c
bug.c
bug: move WARN_ON() "cut here" into exception handler
2019-09-25 17:51:41 -07:00
build_OID_registry
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36
2019-05-24 17:27:11 +02:00
bust_spinlocks.c
chacha.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
check_signature.c
checksum.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
clz_ctz.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
clz_tab.c
cmdline.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 230
2019-06-19 17:09:06 +02:00
cmpdi2.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 120
2019-05-24 17:39:02 +02:00
compat_audit.c
cpu_rmap.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
cpumask.c
treewide: add checks for the return value of memblock_alloc*()
2019-03-12 10:04:02 -07:00
crc-ccitt.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 230
2019-06-19 17:09:06 +02:00
crc-itu-t.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 230
2019-06-19 17:09:06 +02:00
crc-t10dif.c
crc-t10dif: Fix potential crypto notify dead-lock
2020-08-19 08:15:54 +02:00
crc4.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 230
2019-06-19 17:09:06 +02:00
crc7.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 230
2019-06-19 17:09:06 +02:00
crc8.c
crc16.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 230
2019-06-19 17:09:06 +02:00
crc32.c
crc32defs.h
crc32test.c
crc64.c
ctype.c
debug_info.c
debug_locks.c
treewide: Add SPDX license identifier for missed files
2019-05-21 10:50:45 +02:00
debugobjects.c
debugobjects: Fix various data races
2020-02-24 08:36:52 +01:00
dec_and_lock.c
decompress.c
decompress_bunzip2.c
decompress_inflate.c
decompress_unlz4.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
decompress_unlzma.c
decompress_unlzo.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 95
2019-05-24 17:37:53 +02:00
decompress_unxz.c
devres.c
lib: devres: add a helper function for ioremap_uc
2020-05-10 10:31:30 +02:00
digsig.c
Revert "Merge tag 'keys-acl-20190703' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs"
2019-07-10 18:43:43 -07:00
dump_stack.c
dump_stack: avoid the livelock of the dump_lock
2019-11-06 08:47:50 -08:00
dynamic_debug.c
lib: dynamic_debug: no need to check return value of debugfs_create functions
2019-06-18 13:47:24 +02:00
dynamic_queue_limits.c
earlycpio.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 283
2019-06-05 17:36:37 +02:00
error-inject.c
treewide: Switch printk users from %pf and %pF to %ps and %pS, respectively
2019-04-09 14:19:06 +02:00
errseq.c
extable.c
lib/extable.c: add missing prototypes
2019-09-25 17:51:39 -07:00
fault-inject.c
fault-inject: clean up debugfs file creation logic
2019-06-18 13:47:24 +02:00
fdt.c
fdt_empty_tree.c
fdt_ro.c
fdt_rw.c
fdt_strerror.c
fdt_sw.c
fdt_wip.c
find_bit.c
uapi: rename ext2_swab() to swab() and share globally in swab.h
2020-04-13 10:48:07 +02:00
find_bit_benchmark.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 295
2019-06-05 17:36:38 +02:00
flex_proportions.c
gen_crc32table.c
gen_crc64table.c
genalloc.c
dma-mapping updates for Linux 5.3
2019-07-12 15:13:55 -07:00
generic-radix-tree.c
lib/generic-radix-tree.c: add kmemleak annotations
2019-10-14 15:04:00 -07:00
glob.c
globtest.c
hexdump.c
lib/hexdump: make print_hex_dump_bytes() a nop on !DEBUG builds
2019-09-25 17:51:39 -07:00
hweight.c
x86/kconfig: Disable CONFIG_GENERIC_HWEIGHT and remove __HAVE_ARCH_SW_HWEIGHT
2019-05-13 11:07:33 +02:00
idr.c
idr: Fix idr_get_next_ul race with idr_remove
2019-11-01 22:26:34 -04:00
inflate.c
interval_tree.c
treewide: Add SPDX license identifier for missed files
2019-05-21 10:50:45 +02:00
interval_tree_test.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
iomap.c
iomap_copy.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 504
2019-06-19 17:09:56 +02:00
iommu-helper.c
ioremap.c
mm/ioremap: probe platform for p4d huge map support
2019-07-16 19:23:22 -07:00
iov_iter.c
mm: introduce page_size()
2019-09-24 15:54:08 -07:00
irq_poll.c
irq_regs.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
is_single_threaded.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36
2019-05-24 17:27:11 +02:00
kasprintf.c
Kconfig
lib: Remove select of inexistant GENERIC_IO
2019-11-10 10:38:43 -08:00
Kconfig.debug
kbuild, btf: Fix dependencies for DEBUG_INFO_BTF
2020-04-23 10:36:18 +02:00
Kconfig.kasan
kasan: add memory corruption identification for software tag-based mode
2019-09-24 15:54:07 -07:00
Kconfig.kgdb
treewide: Add SPDX license identifier - Makefile/Kconfig
2019-05-21 10:50:46 +02:00
Kconfig.ubsan
treewide: Add SPDX license identifier - Makefile/Kconfig
2019-05-21 10:50:46 +02:00
kfifo.c
Partially revert "kfifo: fix kfifo_alloc() and kfifo_init()"
2019-08-30 18:47:15 -07:00
klist.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 248
2019-06-19 17:09:08 +02:00
kobject.c
lib : kobject: fix refcount imblance on kobject_rename
2019-06-19 19:27:39 +02:00
kobject_uevent.c
kobject: Don't trigger kobject_uevent(KOBJ_REMOVE) twice.
2019-04-01 07:37:12 +02:00
kstrtox.c
kstrtox.h
libcrc32c.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
list_debug.c
list_sort.c
lib: list_sort.c: add a blank line to avoid kernel-doc warnings
2019-06-20 14:07:34 -06:00
llist.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333
2019-06-05 17:37:06 +02:00
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
lockref: Limit number of cmpxchg loop retries
2019-06-07 13:15:06 -07:00
logic_pio.c
lib: logic_pio: Add logic_pio_unregister_range()
2019-08-13 14:54:24 +08:00
lru_cache.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 91
2019-05-24 17:37:53 +02:00
lshrdi3.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 120
2019-05-24 17:39:02 +02:00
Makefile
Merge branch 'x86/cleanups' into x86/cpu, to pick up dependent changes
2019-09-06 07:30:23 +02:00
memcat_p.c
memory-notifier-error-inject.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
memweight.c
muldi3.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 120
2019-05-24 17:39:02 +02:00
net_utils.c
netdev-notifier-error-inject.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
nlattr.c
netlink: add validation of NLA_F_NESTED flag
2019-05-04 01:27:11 -04:00
nmi_backtrace.c
nodemask.c
notifier-error-inject.c
lib: notifier-error-inject: no need to check return value of debugfs_create functions
2019-07-03 16:57:18 +02:00
notifier-error-inject.h
objagg.c
lib: objagg: Use struct_size() in kzalloc()
2019-06-05 19:03:39 -07:00
of-reconfig-notifier-error-inject.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
oid_registry.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36
2019-05-24 17:27:11 +02:00
once.c
packing.c
lib: Add support for generic packing operations
2019-05-03 10:49:17 -04:00
parman.c
parser.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 230
2019-06-19 17:09:06 +02:00
pci_iomap.c
percpu-refcount.c
Merge branch 'for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu
2019-07-14 16:17:18 -07:00
percpu_counter.c
percpu_test.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
plist.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 10
2019-05-21 11:28:45 +02:00
pm-notifier-error-inject.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
radix-tree.c
idr: Fix idr_alloc_u32 on 32-bit systems
2019-11-03 06:36:50 -05:00
random32.c
random32: remove net_rand_state from the latent entropy gcc plugin
2020-08-07 09:34:01 +02:00
ratelimit.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 428
2019-06-05 17:37:16 +02:00
rbtree.c
lib/rbtree: avoid generating code twice for the cached versions
2019-07-16 19:23:22 -07:00
rbtree_test.c
augmented rbtree: add new RB_DECLARE_CALLBACKS_MAX macro
2019-09-25 17:51:39 -07:00
refcount.c
rhashtable.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
sbitmap.c
sbitmap: only queue kyber's wait callback if not already active
2020-01-12 12:21:44 +01:00
scatterlist.c
lib/scatterlist.c: adjust indentation in __sg_alloc_table
2020-02-24 08:37:00 +01:00
seq_buf.c
sg_pool.c
SCSI sg on 20190709
2019-07-11 15:17:41 -07:00
sg_split.c
lib: scatterlist: Fix to support no mapped sg
2019-08-08 07:45:01 -06:00
sha1.c
show_mem.c
mm: remove quicklist page table caches
2019-09-24 15:54:09 -07:00
siphash.c
lib/siphash.c: mark expected switch fall-throughs
2019-04-25 19:47:24 +02:00
smp_processor_id.c
sched/core: Provide a pointer to the valid CPU mask
2019-06-03 11:49:37 +02:00
sort.c
media: lib/sort.c: implement sort() variant taking context argument
2019-08-19 13:14:53 -03:00
stackdepot.c
lib/stackdepot.c: fix global out-of-bounds in stack_slabs
2020-02-28 17:22:20 +01:00
stmp_device.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
string.c
lib/string: Make memzero_explicit() inline instead of external
2019-10-08 13:27:05 +02:00
string_helpers.c
lib/string_helpers: fix some kerneldoc warnings
2019-07-16 19:23:22 -07:00
strncpy_from_user.c
lib: Reduce user_access_begin() boundaries in strncpy_from_user() and strnlen_user()
2020-01-29 16:45:29 +01:00
strnlen_user.c
lib: Reduce user_access_begin() boundaries in strncpy_from_user() and strnlen_user()
2020-01-29 16:45:29 +01:00
syscall.c
syscalls: Remove start and number from syscall_get_arguments() args
2019-04-05 09:26:43 -04:00
test-kstrtox.c
test-string_helpers.c
test_bitfield.c
test_bitmap.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
test_blackhole_dev.c
blackhole_dev: add a selftest
2019-07-01 19:34:46 -07:00
test_bpf.c
test_bpf: Fix a new clang warning about xor-ing two numbers
2019-08-20 17:07:29 +02:00
test_debug_virtual.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
test_firmware.c
test_firmware: add support for request_firmware_into_buf
2019-09-04 13:31:28 +02:00
test_hash.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
test_hexdump.c
test_ida.c
test_kasan.c
kasan: stop tests being eliminated as dead code with FORTIFY_SOURCE
2020-06-22 09:31:12 +02:00
test_kmod.c
test_list_sort.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
test_memcat_p.c
test_meminit.c
lib/test_meminit: add a kmem_cache_alloc_bulk() test
2019-10-14 15:04:01 -07:00
test_module.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
test_objagg.c
test_objagg: Fix potential memory leak in error handling
2020-06-30 15:37:04 -04:00
test_overflow.c
lib/test_overflow.c: avoid tainting the kernel and fix wrap size
2019-07-16 19:23:22 -07:00
test_parman.c
test_printf.c
vsprintf: don't obfuscate NULL and error pointers
2020-05-27 17:46:43 +02:00
test_rhashtable.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
test_siphash.c
test_sort.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
test_stackinit.c
lib/test_stackinit: Handle Clang auto-initialization pattern
2019-06-05 07:36:43 -07:00
test_static_key_base.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282
2019-06-05 17:36:37 +02:00
test_static_keys.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282
2019-06-05 17:36:37 +02:00
test_string.c
lib/test_string.c: add some testcases for strchr and strnchr
2019-07-16 19:23:22 -07:00
test_strscpy.c
lib: Add test module for strscpy_pad
2019-04-08 16:44:21 -06:00
test_sysctl.c
tools/testing/selftests/sysctl/sysctl.sh: add proc_do_large_bitmap() test case
2019-05-14 19:52:51 -07:00
test_ubsan.c
lib/test_ubsan.c: VLA no longer used in kernel
2019-03-07 18:32:00 -08:00
test_user_copy.c
usercopy: Avoid soft lockups in test_check_nonzero_user()
2019-10-16 14:56:21 +02:00
test_uuid.c
test_vmalloc.c
lib/test_vmalloc.c:test_func(): eliminate local `ret'
2019-05-14 19:52:49 -07:00
test_xarray.c
XArray: Fix xas_pause for large multi-index entries
2020-04-17 10:50:18 +02:00
textsearch.c
lib: textsearch: fix escapes in example code
2019-10-03 12:12:23 -04:00
timerqueue.c
lib/timerqueue: Rely on rbtree semantics for next timer
2019-07-24 17:38:01 +02:00
ts_bm.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
ts_fsm.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
ts_kmp.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
ubsan.c
lib/ubsan: don't serialize UBSAN report
2020-01-09 10:20:07 +01:00
ubsan.h
ubsan: Remove vla bound checks.
2019-05-06 11:12:09 -07:00
ucmpdi2.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 120
2019-05-24 17:39:02 +02:00
ucs2_string.c
usercopy.c
lib: introduce copy_struct_from_user() helper
2019-10-01 15:45:03 +02:00
uuid.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174
2019-05-30 11:26:41 -07:00
vsprintf.c
vsprintf: don't obfuscate NULL and error pointers
2020-05-27 17:46:43 +02:00
win_minmax.c
xarray.c
xarray: Fix early termination of xas_for_each_marked
2020-04-17 10:50:18 +02:00
xxhash.c