Linus Torvalds
e7901af143
This includes fixes for seq_buf_bprintf() truncation issue. It also
...
contains fixes to ftrace when /proc/sys/kernel/ftrace_enabled and
function tracing are started. Doing the following causes some issues:
# echo 0 > /proc/sys/kernel/ftrace_enabled
# echo function_graph > /sys/kernel/debug/tracing/current_tracer
# echo 1 > /proc/sys/kernel/ftrace_enabled
# echo nop > /sys/kernel/debug/tracing/current_tracer
# echo function_graph > /sys/kernel/debug/tracing/current_tracer
As well as with function tracing too. Pratyush Anand first reported
this issue to me and supplied a patch. When I tested this on my x86
test box, it caused thousands of backtraces and warnings to appear in
dmesg, which also caused a denial of service (a warning for every
function that was listed). I applied Pratyush's patch but it did not
fix the issue for me. I looked into it and found a slight problem
with trampoline accounting. I fixed it and sent Pratyush a patch, but
he said that it did not fix the issue for him.
I later learned tha Pratyush was using an ARM64 server, and when I tested
on my ARM board, I was able to reproduce the same issue as Pratyush.
After applying his patch, it fixed the problem. The above test uncovered
two different bugs, one in x86 and one in ARM and ARM64. As this looked
like it would affect PowerPC, I tested it on my PPC64 box. It too broke,
but neither the patch that fixed ARM or x86 fixed this box (the changes
were all in generic code!). The above test, uncovered two more bugs that
affected PowerPC. Again, the changes were only done to generic code.
It's the way the arch code expected things to be done that was different
between the archs. Some where more sensitive than others.
The rest of this series fixes the PPC bugs as well.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAABAgAGBQJU/cQSAAoJEEjnJuOKh9lde9sH/1MAPq+6jr7YaEFru0GKajE9
rVHjw8rde/I4tN2UxIVk+Qm6pXRZYpv3OKxHT48EHzkvgm++voioykpJP4IEVrP5
mEDuIcYe28csE2nV5u5Q9kwnZoC86TQW5nVV6zB1Gx/3IEzA8Z046jAov40Jya0y
zqHc/U43JeeVIDIOkwjzbH6OaFEDP13FkF3TO502WJhJLqMo+kPOalIgv0eauKzy
lVCQBSC4WS3rVsgW4W3dSrEBaUxbJxgunjxOuV2DwHj5eghHq0M2MKeIUxBz0PuN
wnhTrpf5cAfshTvYHxKlE0uItdyYfVb7UChAD5zTbBL4kMUFhpb183zVKH8K8kU=
=8R8y
-----END PGP SIGNATURE-----
Merge tag 'trace-fixes-v4.0-rc2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
Pull seq-buf/ftrace fixes from Steven Rostedt:
"This includes fixes for seq_buf_bprintf() truncation issue. It also
contains fixes to ftrace when /proc/sys/kernel/ftrace_enabled and
function tracing are started. Doing the following causes some issues:
# echo 0 > /proc/sys/kernel/ftrace_enabled
# echo function_graph > /sys/kernel/debug/tracing/current_tracer
# echo 1 > /proc/sys/kernel/ftrace_enabled
# echo nop > /sys/kernel/debug/tracing/current_tracer
# echo function_graph > /sys/kernel/debug/tracing/current_tracer
As well as with function tracing too. Pratyush Anand first reported
this issue to me and supplied a patch. When I tested this on my x86
test box, it caused thousands of backtraces and warnings to appear in
dmesg, which also caused a denial of service (a warning for every
function that was listed). I applied Pratyush's patch but it did not
fix the issue for me. I looked into it and found a slight problem
with trampoline accounting. I fixed it and sent Pratyush a patch, but
he said that it did not fix the issue for him.
I later learned tha Pratyush was using an ARM64 server, and when I
tested on my ARM board, I was able to reproduce the same issue as
Pratyush. After applying his patch, it fixed the problem. The above
test uncovered two different bugs, one in x86 and one in ARM and
ARM64. As this looked like it would affect PowerPC, I tested it on my
PPC64 box. It too broke, but neither the patch that fixed ARM or x86
fixed this box (the changes were all in generic code!). The above
test, uncovered two more bugs that affected PowerPC. Again, the
changes were only done to generic code. It's the way the arch code
expected things to be done that was different between the archs. Some
where more sensitive than others.
The rest of this series fixes the PPC bugs as well"
* tag 'trace-fixes-v4.0-rc2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
ftrace: Fix ftrace enable ordering of sysctl ftrace_enabled
ftrace: Fix en(dis)able graph caller when en(dis)abling record via sysctl
ftrace: Clear REGS_EN and TRAMP_EN flags on disabling record via sysctl
seq_buf: Fix seq_buf_bprintf() truncation
seq_buf: Fix seq_buf_vprintf() truncation
2015-03-09 18:44:06 -07:00
..
fonts
fonts: Add 6x10 font
2014-10-09 11:35:48 +03:00
lz4
lz4: add overrun checks to lz4_uncompress_unknownoutputsize()
2014-07-03 16:12:04 -07:00
lzo
lzo: check for length overrun in variable length encoding.
2014-09-28 11:08:01 +02:00
mpi
MPILIB: Fix comparison of negative MPIs
2015-01-14 16:10:12 +00:00
raid6
x86/raid6: correctly check for assembler capabilities
2015-02-04 08:35:51 +11:00
reed_solomon
xz
lib/xz: enable all filters by default in Kconfig
2014-06-04 16:54:18 -07:00
zlib_deflate
zlib: clean up some dead code
2014-08-06 18:01:24 -07:00
zlib_inflate
zlib: clean up some dead code
2014-08-06 18:01:24 -07:00
.gitignore
X.509: Implement simple static OID registry
2012-10-08 13:50:18 +10:30
argv_split.c
argv_split(): teach it to handle mutable strings
2013-04-29 18:28:19 -07:00
asn1_decoder.c
lib/asn1_decoder.c: kernel-doc warning fix
2014-06-04 16:54:19 -07:00
assoc_array.c
assoc_array: Include rcupdate.h for call_rcu() definition
2015-01-07 16:08:41 +00:00
atomic64.c
locking,arch: Rewrite generic atomic support
2014-08-14 12:48:14 +02:00
atomic64_test.c
lib/atomic64_test.c: convert printk(KERN_INFO to pr_info
2014-06-04 16:54:19 -07:00
audit.c
syscalls: implement execveat() system call
2014-12-13 12:42:51 -08:00
average.c
lib: Ensure EWMA does not store wrong intermediate values
2014-01-16 23:46:06 -08:00
bcd.c
usb/core: use bin2bcd() for bcdDevice in RH
2012-09-10 11:13:16 -07:00
bch.c
bitmap.c
bitmap, cpumask, nodemask: remove dedicated formatting functions
2015-02-13 21:21:39 -08:00
bitrev.c
ARM: 8187/1: add CONFIG_HAVE_ARCH_BITREVERSE to support rbit instruction
2014-12-22 16:43:06 +00:00
bsearch.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
btree.c
lib/btree.c: fix leak of whole btree nodes
2014-06-04 16:54:18 -07:00
bug.c
lib/bug: Use RCU list ops for module_bug_list
2014-11-11 17:07:46 +10:30
build_OID_registry
X.509: do not emit any informational output
2013-06-19 17:54:06 +02:00
bust_spinlocks.c
printk: Provide a wake_up_klogd() off-case
2013-03-22 16:41:20 -07:00
check_signature.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
checksum.c
lib/checksum.c: fix build for generic csum_tcpudp_nofold
2015-01-29 11:57:38 -08:00
clz_ctz.c
lib/clz_ctz.c: add prototype declarations in lib/clz_ctz.c
2014-04-03 16:21:12 -07:00
clz_tab.c
lib: Fix multiple definitions of clz_tab
2012-02-02 10:34:23 +11:00
cmdline.c
lib: Add a generic cmdline parse function parse_option_str
2014-10-03 18:40:58 +01:00
compat_audit.c
audit: Add generic compat syscall support
2014-03-20 10:11:35 -04:00
cordic.c
Docs: wording: functions -> algorithm
2011-10-29 21:20:22 +02:00
cpu-notifier-error-inject.c
cpu: rewrite cpu-notifier-error-inject module
2012-07-30 17:25:22 -07:00
cpu_rmap.c
Remove GENERIC_HARDIRQ config option
2013-09-13 15:09:52 +02:00
cpumask.c
lib/cpumask: cpumask_set_cpu_local_first to use all cores when numa node is not defined
2014-07-02 18:29:23 -07:00
crc-ccitt.c
crc-itu-t.c
crc-t10dif.c
crypto: crct10dif - Add fallback for broken initrds
2013-09-12 15:31:34 +10:00
crc7.c
lib/crc7: Shift crc7() output left 1 bit
2014-05-16 14:26:52 -04:00
crc8.c
crc16.c
crc32.c
lib: crc32: Add some additional __pure annotations
2014-06-25 16:04:00 -07:00
crc32defs.h
crc32: select an algorithm via Kconfig
2012-03-23 16:58:38 -07:00
ctype.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
debug_locks.c
mutex: Add support for wound/wait style locks
2013-06-26 12:10:56 +02:00
debugobjects.c
lib/debugobjects.c: convert printk(KERN_DEBUG to pr_debug
2014-06-04 16:53:53 -07:00
dec_and_lock.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
decompress.c
lib/decompress.c: consistency of compress formats for kernel image
2014-12-13 12:42:52 -08:00
decompress_bunzip2.c
decompress_bunzip2: off by one in get_next_block()
2014-12-13 12:42:52 -08:00
decompress_inflate.c
initramfs: support initramfs that is bigger than 2GiB
2014-08-08 15:57:26 -07:00
decompress_unlz4.c
initramfs: support initramfs that is bigger than 2GiB
2014-08-08 15:57:26 -07:00
decompress_unlzma.c
initramfs: support initramfs that is bigger than 2GiB
2014-08-08 15:57:26 -07:00
decompress_unlzo.c
initramfs: support initramfs that is bigger than 2GiB
2014-08-08 15:57:26 -07:00
decompress_unxz.c
initramfs: support initramfs that is bigger than 2GiB
2014-08-08 15:57:26 -07:00
devres.c
devres: support sizes greater than an unsigned long
2014-11-07 10:09:07 -08:00
digsig.c
lib/digsig.c: kernel-doc warning fixes
2014-06-04 16:54:19 -07:00
div64.c
math64: New separate div64_u64_rem helper
2013-08-23 09:02:14 -04:00
dma-debug.c
dma-debug: prevent early callers from crashing
2014-12-10 17:41:02 -08:00
dump_stack.c
asmlinkage: Add explicit __visible to drivers/*, lib/*, kernel/*
2014-05-05 16:07:46 -07:00
dynamic_debug.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2015-02-10 18:57:15 -08:00
dynamic_queue_limits.c
lib/dynamic_queue_limits.c: simplify includes
2015-02-12 18:54:15 -08:00
earlycpio.c
earlycpio.c: Fix the confusing comment of find_cpio_data().
2013-08-14 23:24:01 +02:00
extable.c
fault-inject.c
fault-inject: add ratelimit option
2014-12-13 12:42:52 -08:00
fdt.c
of/lib: Allow scripts/dtc/libfdt to be used from kernel code
2012-07-23 13:54:52 +01:00
fdt_empty_tree.c
lib: add fdt_empty_tree.c
2014-04-30 19:49:37 +01:00
fdt_ro.c
of/lib: Allow scripts/dtc/libfdt to be used from kernel code
2012-07-23 13:54:52 +01:00
fdt_rw.c
of/lib: Allow scripts/dtc/libfdt to be used from kernel code
2012-07-23 13:54:52 +01:00
fdt_strerror.c
of/lib: Allow scripts/dtc/libfdt to be used from kernel code
2012-07-23 13:54:52 +01:00
fdt_sw.c
of/lib: Allow scripts/dtc/libfdt to be used from kernel code
2012-07-23 13:54:52 +01:00
fdt_wip.c
of/lib: Allow scripts/dtc/libfdt to be used from kernel code
2012-07-23 13:54:52 +01:00
find_last_bit.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
find_next_bit.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
flex_array.c
reciprocal_divide: update/correction of the algorithm
2014-01-21 23:17:20 -08:00
flex_proportions.c
proportions: add @gfp to init functions
2014-09-08 09:51:30 +09:00
gcd.c
lib/gcd.c: prevent possible div by 0
2012-10-06 03:04:57 +09:00
gen_crc32table.c
lib: crc32: constify crc32 lookup table
2015-02-13 21:21:35 -08:00
genalloc.c
lib/genalloc.c: check result of devres_alloc()
2015-02-13 21:21:36 -08:00
glob.c
lib/glob.c: add CONFIG_GLOB_SELFTEST
2014-08-06 18:01:25 -07:00
halfmd4.c
lib/halfmd4.c: simplify includes
2015-02-12 18:54:15 -08:00
hexdump.c
hexdump: make it return number of bytes placed in buffer
2015-02-12 18:54:15 -08:00
hweight.c
Make ARCH_HAS_FAST_MULTIPLIER a real config variable
2014-09-13 11:14:53 -07:00
idr.c
lib/idr.c: remove redundant include
2015-02-12 18:54:15 -08:00
inflate.c
int_sqrt.c
lib/int_sqrt.c: optimize square root algorithm
2013-04-29 18:28:19 -07:00
interval_tree.c
lib/interval_tree.c: simplify includes
2015-02-12 18:54:15 -08:00
interval_tree_test.c
lib: Export interval_tree
2014-05-05 09:09:14 +02:00
iomap.c
Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP
2014-04-07 16:36:11 -07:00
iomap_copy.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
iommu-helper.c
The following text was taken from the original review request:
2012-03-24 10:24:31 -07:00
ioremap.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
irq_regs.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
is_single_threaded.c
jedec_ddr_data.c
ddr: add LPDDR2 data from JESD209-2
2012-05-02 00:04:06 -07:00
kasprintf.c
lib/kasprintf.c: use kmalloc_track_caller() to get accurate traces for kvasprintf
2012-10-11 08:50:15 +09:00
Kconfig
Merge branch 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
2015-02-19 10:36:45 -08:00
Kconfig.debug
scripts/gdb: add infrastructure
2015-02-17 14:34:53 -08:00
Kconfig.kasan
kasan: enable instrumentation of global variables
2015-02-13 21:21:42 -08:00
Kconfig.kgdb
kdb: Allow access to sensitive commands to be restricted by default
2014-11-11 09:31:52 -06:00
Kconfig.kmemcheck
kfifo.c
kfifo: use BUG_ON
2014-08-08 15:57:25 -07:00
klist.c
klist: use same naming scheme as hlist for klist_add_after()
2014-08-06 18:01:24 -07:00
kobject.c
kobject: fix NULL pointer derefernce in kobj_child_ns_ops
2014-11-07 10:52:19 -08:00
kobject_uevent.c
lib/kobject_uevent.c: remove redundant include
2015-02-12 18:54:15 -08:00
kstrtox.c
lib/kstrtox.c: remove redundant cleanup
2014-01-23 16:36:57 -08:00
kstrtox.h
lib/kstrtox: common code between kstrto*() and simple_strto*() functions
2011-10-31 17:30:56 -07:00
lcm.c
lib/lcm.c: replace include
2015-02-12 18:54:16 -08:00
libcrc32c.c
crypto: LLVMLinux: Remove VLAIS usage from libcrc32c.c
2014-10-14 10:51:23 +02:00
list_debug.c
rcu: Fix broken strings in RCU's source code.
2012-07-06 06:01:49 -07:00
list_sort.c
lib/list_sort.c: rearrange includes
2015-02-12 18:54:15 -08:00
llist.c
lib/llist.c: remove redundant include
2015-02-12 18:54:15 -08: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-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: Revert qrwlock recusive stuff
2014-10-03 06:09:30 +02:00
lockref.c
dcache: let the dentry count go down to zero without taking d_lock
2015-01-25 23:16:29 -05:00
lru_cache.c
drbd: debugfs: add per volume oldest_requests
2014-07-10 18:35:19 +02:00
Makefile
lib: add kasan test module
2015-02-13 21:21:41 -08:00
md5.c
lib/md5.c: simplify include
2015-02-12 18:54:15 -08:00
memory-notifier-error-inject.c
memory: memory notifier error injection module
2012-07-30 17:25:22 -07:00
memweight.c
string: introduce memweight()
2012-07-30 17:25:16 -07:00
net_utils.c
mac_pton: Use bool not int return
2014-06-25 17:45:43 -07:00
nlattr.c
lib/nlattr.c: remove redundant include
2015-02-12 18:54:16 -08:00
notifier-error-inject.c
mode_t, whack-a-mole at 11...
2013-04-09 14:13:05 -04:00
notifier-error-inject.h
fault-injection: notifier error injection
2012-07-30 17:25:22 -07:00
of-reconfig-notifier-error-inject.c
powerpc+of: Rename and fix OF reconfig notifier error inject module
2012-12-14 10:32:52 +11:00
oid_registry.c
Give the OID registry file module info to avoid kernel tainting
2013-05-05 14:38:00 -07:00
parser.c
lib/parser.c: put EXPORT_SYMBOLs in the conventional place
2014-01-23 16:36:55 -08:00
pci_iomap.c
pci: add pci_iomap_range
2015-01-21 16:28:49 +10:30
percpu-refcount.c
percpu_ref: make INIT_ATOMIC and switch_to_atomic() sticky
2014-09-24 13:31:50 -04:00
percpu_counter.c
percpu_counter: add @gfp to percpu_counter_init()
2014-09-08 09:51:29 +09:00
percpu_ida.c
lib/percpu_ida.c: remove redundant includes
2015-02-12 18:54:16 -08:00
percpu_test.c
percpu: add test module for various percpu operations
2013-11-13 12:09:11 +09:00
plist.c
lib/plist.c: remove redundant include
2015-02-12 18:54:16 -08:00
pm-notifier-error-inject.c
PM: PM notifier error injection module
2012-07-30 17:25:22 -07:00
proportions.c
proportions: add @gfp to init functions
2014-09-08 09:51:30 +09:00
radix-tree.c
lib/radix-tree.c: change to simpler include
2015-02-12 18:54:16 -08:00
random32.c
random32: improvements to prandom_bytes
2014-08-24 18:36:01 -07:00
ratelimit.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
rational.c
lib: Change mail address of Oskar Schirmer
2012-05-17 15:18:37 +02:00
rbtree.c
lib/rbtree.c: fix typo in comment of __rb_insert()
2014-08-08 15:57:24 -07:00
rbtree_test.c
rbtree/test: test rbtree_postorder_for_each_entry_safe()
2014-01-23 16:37:03 -08:00
reciprocal_div.c
reciprocal_divide: update/correction of the algorithm
2014-01-21 23:17:20 -08:00
rhashtable.c
rhashtable: use cond_resched()
2015-02-27 17:55:14 -05:00
scatterlist.c
lib/scatterlist: fix memory leak with scsi-mq
2014-10-28 10:27:10 -06:00
seq_buf.c
seq_buf: Fix seq_buf_bprintf() truncation
2015-03-04 23:40:19 -05:00
sha1.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
show_mem.c
lib/show_mem.c: remove redundant include
2015-02-12 18:54:16 -08:00
smp_processor_id.c
percpu: add preemption checks to __this_cpu ops
2014-04-07 16:36:14 -07:00
sort.c
lib/sort.c: move include inside #if 0
2015-02-12 18:54:16 -08:00
stmp_device.c
lib/stmp_device.c: replace module.h include
2015-02-12 18:54:16 -08:00
string.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2015-02-14 09:47:01 -08:00
string_helpers.c
libstring_helpers.c:string_get_size(): return void
2015-02-12 18:54:13 -08:00
strncpy_from_user.c
lib/strncpy_from_user.c: replace module.h include
2015-02-12 18:54:16 -08:00
strnlen_user.c
lib: Fix generic strnlen_user for 32-bit big-endian machines
2012-05-27 20:59:46 -07:00
swiotlb.c
swiotlb: don't assume PA 0 is invalid
2014-06-20 16:04:32 -04:00
syscall.c
lib/syscall.c: unexport task_current_syscall()
2014-04-03 16:21:06 -07:00
test-hexdump.c
hexdump: make it return number of bytes placed in buffer
2015-02-12 18:54:15 -08:00
test-kstrtox.c
lib/test-kstrtox.c: use ARRAY_SIZE instead of sizeof/sizeof[0]
2014-08-06 18:01:25 -07:00
test-string_helpers.c
lib / string_helpers: introduce string_escape_mem()
2014-10-14 02:18:26 +02:00
test_bpf.c
test: bpf: expand DIV_KX to DIV_MOD_KX
2014-12-08 20:23:22 -05:00
test_firmware.c
test: add firmware_class loader test
2014-07-17 18:44:19 -07:00
test_kasan.c
lib: add kasan test module
2015-02-13 21:21:41 -08:00
test_module.c
test: add minimal module for verification testing
2014-01-23 16:36:57 -08:00
test_rhashtable.c
rhashtable: remove indirection for grow/shrink decision functions
2015-02-27 16:06:02 -05:00
test_user_copy.c
test: check copy_to/from_user boundary validation
2014-01-23 16:36:57 -08:00
textsearch.c
lib/textsearch.c: remove textsearch_put reference from comments
2014-10-14 02:18:14 +02:00
timerqueue.c
The following text was taken from the original review request:
2012-03-24 10:24:31 -07:00
ts_bm.c
ts_fsm.c
ts_kmp.c
ucs2_string.c
Move utf16 functions to kernel core and rename
2013-04-15 21:23:03 +01:00
usercopy.c
Kconfig: consolidate CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
2013-04-30 17:04:09 -07:00
uuid.c
uuid: use prandom_bytes()
2013-04-29 18:28:42 -07:00
vsprintf.c
lib/vsprintf: implement bitmap printing through '%*pb[l]'
2015-02-13 21:21:36 -08:00