Linus Torvalds
2c6a392cdd
Merge branch 'core-stacktrace-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
...
Pull stack trace updates from Ingo Molnar:
"So Thomas looked at the stacktrace code recently and noticed a few
weirdnesses, and we all know how such stories of crummy kernel code
meeting German engineering perfection end: a 45-patch series to clean
it all up! :-)
Here's the changes in Thomas's words:
'Struct stack_trace is a sinkhole for input and output parameters
which is largely pointless for most usage sites. In fact if embedded
into other data structures it creates indirections and extra storage
overhead for no benefit.
Looking at all usage sites makes it clear that they just require an
interface which is based on a storage array. That array is either on
stack, global or embedded into some other data structure.
Some of the stack depot usage sites are outright wrong, but
fortunately the wrongness just causes more stack being used for
nothing and does not have functional impact.
Another oddity is the inconsistent termination of the stack trace
with ULONG_MAX. It's pointless as the number of entries is what
determines the length of the stored trace. In fact quite some call
sites remove the ULONG_MAX marker afterwards with or without nasty
comments about it. Not all architectures do that and those which do,
do it inconsistenly either conditional on nr_entries == 0 or
unconditionally.
The following series cleans that up by:
1) Removing the ULONG_MAX termination in the architecture code
2) Removing the ULONG_MAX fixups at the call sites
3) Providing plain storage array based interfaces for stacktrace
and stackdepot.
4) Cleaning up the mess at the callsites including some related
cleanups.
5) Removing the struct stack_trace based interfaces
This is not changing the struct stack_trace interfaces at the
architecture level, but it removes the exposure to the generic
code'"
* 'core-stacktrace-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (45 commits)
x86/stacktrace: Use common infrastructure
stacktrace: Provide common infrastructure
lib/stackdepot: Remove obsolete functions
stacktrace: Remove obsolete functions
livepatch: Simplify stack trace retrieval
tracing: Remove the last struct stack_trace usage
tracing: Simplify stack trace retrieval
tracing: Make ftrace_trace_userstack() static and conditional
tracing: Use percpu stack trace buffer more intelligently
tracing: Simplify stacktrace retrieval in histograms
lockdep: Simplify stack trace handling
lockdep: Remove save argument from check_prev_add()
lockdep: Remove unused trace argument from print_circular_bug()
drm: Simplify stacktrace handling
dm persistent data: Simplify stack trace handling
dm bufio: Simplify stack trace retrieval
btrfs: ref-verify: Simplify stack trace retrieval
dma/debug: Simplify stracktrace retrieval
fault-inject: Simplify stacktrace retrieval
mm/page_owner: Simplify stack trace handling
...
2019-05-06 13:11:48 -07:00
..
842
fonts
Fonts: New Terminus large console font
2018-12-19 10:42:08 +01:00
livepatch
livepatch: Proper error handling in the shadow variables selftest
2019-02-06 11:01:57 +01:00
lz4
lib/lz4: update LZ4 decompressor module
2018-10-31 08:54:14 -07:00
lzo
lib/lzo: fix bugs for very short or empty input
2019-04-05 16:02:30 -10:00
mpi
lib/mpi: remove redundant variable esign
2018-08-07 17:51:39 +08:00
raid6
ARM updates for 5.1-rc1
2019-03-15 14:37:46 -07:00
reed_solomon
reed_solomon: Fix kernel-doc
2018-07-10 15:00:52 -06:00
xz
lib/xz: Put CRC32_POLY_LE in xz_private.h
2018-10-02 08:44:59 +10:00
zlib_deflate
zlib_inflate
lib/zlib_inflate/inflate.c: remove fall through warnings
2018-10-31 08:54:13 -07:00
zstd
.gitignore
lib: add crc64 calculation routines
2018-08-22 10:52:48 -07:00
argv_split.c
treewide: kmalloc() -> kmalloc_array()
2018-06-12 16:19:22 -07:00
ashldi3.c
ashrdi3.c
asn1_decoder.c
assoc_array.c
lib/assoc_array.c: mark expected switch fall-through
2019-03-07 18:32:00 -08:00
atomic64.c
atomics/generic: Define atomic64_fetch_add_unless()
2018-06-21 14:25:21 +02:00
atomic64_test.c
audit.c
bcd.c
bch.c
lib/bch: fix possible stack overrun
2018-10-12 09:17:46 +02:00
bitmap.c
Remove 'type' argument from access_ok() function
2019-01-03 18:57:57 -08:00
bitrev.c
bsearch.c
kprobes: Prohibit probing on bsearch()
2019-02-13 08:16:41 +01:00
btree.c
bucket_locks.c
ila: make lockdep happy again
2018-08-16 12:14:42 -07:00
bug.c
build_OID_registry
bust_spinlocks.c
s390: use common bust_spinlocks()
2018-11-30 07:22:05 +01:00
chacha.c
crypto: chacha - add XChaCha12 support
2018-11-20 14:26:55 +08:00
check_signature.c
checksum.c
clz_ctz.c
clz_tab.c
cmdline.c
cmpdi2.c
compat_audit.c
cordic.c
lib: cordic: Move cordic macros and defines to header file
2018-11-29 17:30:48 +02:00
cpu_rmap.c
cpumask.c
treewide: add checks for the return value of memblock_alloc*()
2019-03-12 10:04:02 -07:00
crc-ccitt.c
crc-itu-t.c
crc-t10dif.c
crc-t10dif: crc_t10dif_mutex can be static
2018-09-14 14:08:52 +08:00
crc4.c
crc7.c
crc8.c
crc16.c
crc32.c
lib/crc32.c: mark crc32_le_base/__crc32c_le_base aliases as __pure
2019-02-15 19:50:07 +01:00
crc32defs.h
lib/crc: Move polynomial definition to separate header
2018-07-27 19:04:33 +08:00
crc32test.c
crc64.c
lib: add crc64 calculation routines
2018-08-22 10:52:48 -07:00
ctype.c
debug_info.c
debug_locks.c
locking/lockdep: Make global debug_locks* variables read-mostly
2018-10-19 07:53:18 +02:00
debugobjects.c
debugobjects: call debug_objects_mem_init eariler
2018-12-28 12:11:45 -08:00
dec_and_lock.c
atomic: Add irqsave variant of atomic_dec_and_lock()
2018-06-12 23:33:24 +02:00
decompress.c
decompress_bunzip2.c
lib: Use existing define with polynomial
2018-07-27 19:16:38 +08:00
decompress_inflate.c
decompress_unlz4.c
decompress_unlzma.c
decompress_unlzo.c
decompress_unxz.c
devres.c
devres: always use dev_name() in devm_ioremap_resource()
2019-01-31 19:28:40 +01:00
digsig.c
div64.c
lib/div64.c: off by one in shift
2019-03-07 18:32:00 -08:00
dump_stack.c
dynamic_debug.c
dynamic_debug: move pr_err from module.c to ddebug_add_module
2019-03-07 18:32:00 -08:00
dynamic_queue_limits.c
earlycpio.c
error-inject.c
errseq.c
errseq: Always report a writeback error once
2018-04-27 08:51:26 -04:00
extable.c
fault-inject.c
fault-inject: Simplify stacktrace retrieval
2019-04-29 12:37:50 +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
find_bit_benchmark.c
lib/find_bit_benchmark.c: align test_find_next_and_bit with others
2019-01-04 13:13:46 -08:00
flex_proportions.c
gcd.c
lib/gcd: Remove use of CPU_NO_EFFICIENT_FFS macro
2018-11-12 14:26:21 -08:00
gen_crc32table.c
lib/crc: Use consistent naming for CRC-32 polynomials
2018-07-27 19:04:33 +08:00
gen_crc64table.c
lib: don't depend on linux headers being installed.
2018-12-29 11:36:44 -08:00
genalloc.c
lib/genalloc.c: include vmalloc.h
2019-01-05 13:54:53 -08:00
generic-radix-tree.c
generic radix trees
2019-03-12 10:04:02 -07:00
glob.c
globtest.c
hexdump.c
hweight.c
idr.c
radix tree: Remove radix_tree_update_node_t
2018-10-21 10:46:44 -04:00
inflate.c
int_sqrt.c
fix int_sqrt64() for very large numbers
2019-01-21 07:20:18 +13:00
interval_tree.c
interval_tree_test.c
treewide: kmalloc() -> kmalloc_array()
2018-06-12 16:19:22 -07:00
iomap.c
iomap: introduce io{read|write}64_{lo_hi|hi_lo}
2019-01-22 13:39:59 +01:00
iomap_copy.c
iommu-helper.c
iommu-helper: mark iommu_is_span_boundary as inline
2018-05-09 06:55:44 +02:00
ioremap.c
lib/ioremap: ensure break-before-make is used for huge p4d mappings
2018-12-28 12:11:50 -08:00
iov_iter.c
iov_iter: Fix build error without CONFIG_CRYPTO
2019-04-03 22:37:41 -04:00
irq_poll.c
lib/irq_poll: Support schedules in non-interrupt contexts
2019-02-19 20:52:19 -07:00
irq_regs.c
is_single_threaded.c
jedec_ddr_data.c
kasprintf.c
Kconfig
stacktrace: Provide common infrastructure
2019-04-29 12:37:57 +02:00
Kconfig.debug
lib/Kconfig.debug: fix build error without CONFIG_BLOCK
2019-04-26 09:18:05 -07:00
Kconfig.kasan
kasan: remove use after scope bugs detection.
2019-03-05 21:07:13 -08:00
Kconfig.kgdb
Kconfig.ubsan
lib/ubsan: default UBSAN_ALIGNMENT to not set
2019-03-07 18:32:02 -08:00
kfifo.c
treewide: kmalloc() -> kmalloc_array()
2018-06-12 16:19:22 -07:00
klist.c
scsi: klist: Make it safe to use klists in atomic context
2018-07-02 16:20:23 -04:00
kobject.c
kobject: make kset_get_ownership() 'static'
2019-01-22 14:25:26 +01:00
kobject_uevent.c
kobject: drop newline from msg string
2019-01-22 14:25:26 +01:00
kstrtox.c
lib/kstrtox.c: delete unnecessary casts
2018-10-31 08:54:13 -07:00
kstrtox.h
lcm.c
libcrc32c.c
list_debug.c
lib/list_debug.c: print unmangled addresses
2018-04-11 10:28:35 -07:00
list_sort.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
locking/lockdep: Make it easy to detect whether or not inside a selftest
2019-02-28 07:55:43 +01:00
lockref.c
lockref: Add lockref_put_not_zero
2018-04-12 09:41:19 -07:00
logic_pio.c
lru_cache.c
treewide: kzalloc() -> kcalloc()
2018-06-12 16:19:22 -07:00
lshrdi3.c
Makefile
Merge branch 'core-objtool-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2019-05-06 11:39:17 -07:00
memcat_p.c
lib: Fix ia64 bootloader linkage
2018-10-16 13:45:44 +02:00
memory-notifier-error-inject.c
memweight.c
muldi3.c
net_utils.c
netdev-notifier-error-inject.c
nlattr.c
netlink: Add strict version of nlmsg_parse and nla_parse
2018-10-08 10:39:04 -07:00
nmi_backtrace.c
printk/nmi: Prevent deadlock when accessing the main log buffer in NMI
2018-07-09 14:10:40 +02:00
nodemask.c
notifier-error-inject.c
notifier-error-inject.h
objagg.c
lib: objagg: fix handling of object with 0 users when assembling hints
2019-02-14 12:41:54 -05:00
of-reconfig-notifier-error-inject.c
oid_registry.c
once.c
parman.c
parser.c
lib/parser.c: switch match_number() over to use match_strdup()
2018-10-31 08:54:12 -07:00
pci_iomap.c
percpu-refcount.c
percpu-refcount: Replace call_rcu_sched() with call_rcu()
2018-11-27 09:21:45 -08:00
percpu_counter.c
notifier: Remove notifier header file wherever not used
2018-08-30 12:56:40 +02:00
percpu_test.c
plist.c
pm-notifier-error-inject.c
prime_numbers.c
radix-tree.c
radix tree: Don't return retry entries from lookup
2018-12-06 08:26:16 -05:00
random32.c
ratelimit.c
rational.c
rbtree.c
rbtree_test.c
treewide: kmalloc() -> kmalloc_array()
2018-06-12 16:19:22 -07:00
reciprocal_div.c
lib: reciprocal_div: implement the improved algorithm on the paper mentioned
2018-07-07 01:45:31 +02:00
refcount.c
refcount_t: Add ACQUIRE ordering on success for dec(sub)_and_test() variants
2019-02-04 09:03:31 +01:00
rhashtable.c
rhashtable: Still do rehash when we get EEXIST
2019-03-21 13:57:28 -07:00
sbitmap.c
sbitmap: order READ/WRITE freed instance and setting clear bit
2019-03-25 13:05:47 -06:00
scatterlist.c
lib/scatterlist: Provide a DMA page iterator
2019-02-11 15:02:33 -07:00
seq_buf.c
seq_buf: Use size_t for len in seq_buf_puts()
2018-12-22 08:21:03 -05:00
sg_pool.c
lib/sg_pool.c: remove unnecessary null check when freeing object
2018-10-31 08:54:13 -07:00
sg_split.c
sha1.c
sha256.c
kernel/kexec_file.c: move purgatories sha256 to common code
2018-04-13 17:10:28 -07:00
show_mem.c
lib/show_mem.c: drop pgdat_resize_lock in show_mem()
2018-12-28 12:11:49 -08:00
siphash.c
smp_processor_id.c
kprobes: Prohibit probing on preemption checking debug functions
2019-02-13 08:16:40 +01:00
sort.c
stackdepot.c
lib/stackdepot: Remove obsolete functions
2019-04-29 12:37:57 +02:00
stmp_device.c
string.c
lib/string.c: implement a basic bcmp
2019-04-05 16:02:30 -10:00
string_helpers.c
strncpy_from_user.c
mm/uaccess: Use 'unsigned long' to placate UBSAN warnings on older GCC versions
2019-04-24 12:19:45 +02:00
strnlen_user.c
mm/uaccess: Use 'unsigned long' to placate UBSAN warnings on older GCC versions
2019-04-24 12:19:45 +02: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
bitfield: add tests
2018-06-27 18:58:49 +03:00
test_bitmap.c
lib/test_bitmap.c: fix bitmap optimisation tests to report errors correctly
2018-05-18 17:17:12 -07:00
test_bpf.c
bpf: test_bpf: turn off preemption in function __run_once
2019-02-25 22:18:07 +01:00
test_debug_virtual.c
lib: fix build failure in CONFIG_DEBUG_VIRTUAL test
2018-12-17 22:12:30 +11:00
test_firmware.c
lib/test_firmware.c: remove some dead code
2019-03-07 18:32:00 -08:00
test_hash.c
test_hexdump.c
test_hexdump: use memcpy instead of strncpy
2018-11-30 12:13:15 -08:00
test_ida.c
test_ida: Fix lockdep warning
2018-10-15 16:31:29 -04:00
test_kasan.c
kasan: remove use after scope bugs detection.
2019-03-05 21:07:13 -08:00
test_kmod.c
lib/test_kmod.c: potential double free in error handling
2019-02-01 15:46:23 -08:00
test_list_sort.c
test_memcat_p.c
lib: Fix ia64 bootloader linkage
2018-10-16 13:45:44 +02:00
test_module.c
test_objagg.c
test_objagg: Uninitialized variable in error handling
2019-02-13 22:13:29 -08:00
test_overflow.c
test_overflow: Add shift overflow tests
2018-08-08 09:47:26 -06:00
test_parman.c
test_printf.c
lib/vsprintf: Print time and date in human readable format via %pt
2018-12-10 22:39:34 +01:00
test_rhashtable.c
rhashtable: Remove obsolete rhashtable_walk_init function
2019-02-22 13:49:00 +01:00
test_siphash.c
test_sort.c
test_stackinit.c
lib: Introduce test_stackinit module
2019-03-04 09:29:52 -08:00
test_static_key_base.c
test_static_keys.c
test_string.c
test_sysctl.c
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
test_uuid.c
test_vmalloc.c
lib/test_vmalloc.c: do not create cpumask_t variable on stack
2019-04-26 09:18:05 -07:00
test_xarray.c
XArray: Fix xa_reserve for 2-byte aligned entries
2019-02-21 17:54:44 -05:00
textsearch.c
textsearch: fix kernel-doc warnings and add kernel-api section
2018-04-16 18:53:13 -04:00
timerqueue.c
ts_bm.c
ts_fsm.c
ts_kmp.c
ubsan.c
Merge branch 'core-objtool-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2019-05-06 11:39:17 -07:00
ubsan.h
ubsan: Remove vla bound checks.
2019-05-06 11:12:09 -07:00
ucmpdi2.c
Add notrace to lib/ucmpdi2.c
2018-04-23 16:39:35 +01:00
ucs2_string.c
lib/ucs2_string.c: add MODULE_LICENSE()
2018-06-07 17:34:39 -07:00
usercopy.c
Remove 'type' argument from access_ok() function
2019-01-03 18:57:57 -08:00
uuid.c
vsprintf.c
Printk changes for 5.1
2019-03-09 09:22:42 -08:00
win_minmax.c
xarray.c
XArray: Fix xa_reserve for 2-byte aligned entries
2019-02-21 17:54:44 -05:00
xxhash.c