Florian La Roche
fbfaf85190
fix int_sqrt64() for very large numbers
...
If an input number x for int_sqrt64() has the highest bit set, then
fls64(x) is 64. (1UL << 64) is an overflow and breaks the algorithm.
Subtracting 1 is a better guess for the initial value of m anyway and
that's what also done in int_sqrt() implicitly [*].
[*] Note how int_sqrt() uses __fls() with two underscores, which already
returns the proper raw bit number.
In contrast, int_sqrt64() used fls64(), and that returns bit numbers
illogically starting at 1, because of error handling for the "no
bits set" case. Will points out that he bug probably is due to a
copy-and-paste error from the regular int_sqrt() case.
Signed-off-by: Florian La Roche <Florian.LaRoche@googlemail.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-01-21 07:20:18 +13:00
..
842
fonts
Fonts: New Terminus large console font
2018-12-19 10:42:08 +01:00
lz4
lib/lz4: update LZ4 decompressor module
2018-10-31 08:54:14 -07:00
lzo
mpi
raid6
Kbuild late updates for v4.21
2019-01-06 16:33:10 -08:00
reed_solomon
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
ashldi3.c
ashrdi3.c
asn1_decoder.c
assoc_array.c
atomic64.c
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
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
memblock: stop using implicit alignment to SMP_CACHE_BYTES
2018-10-31 08:54:16 -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: make core crc32() routines weak so they can be overridden
2018-09-10 16:09:27 +01:00
crc32defs.h
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
decompress.c
decompress_bunzip2.c
decompress_inflate.c
decompress_unlz4.c
decompress_unlzma.c
decompress_unlzo.c
decompress_unxz.c
devres.c
digsig.c
div64.c
dump_stack.c
dynamic_debug.c
jump_label: move 'asm goto' support test to Kconfig
2019-01-06 09:46:51 +09:00
dynamic_queue_limits.c
earlycpio.c
error-inject.c
errseq.c
extable.c
fault-inject.c
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_array.c
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
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
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
iomap.c
iomap_copy.c
iommu-helper.c
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
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-01-05 13:18:59 -08:00
irq_poll.c
irq_regs.c
is_single_threaded.c
jedec_ddr_data.c
kasprintf.c
Kconfig
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md into for-linus
2019-01-03 08:21:02 -07:00
Kconfig.debug
Kconfig updates for v4.21
2018-12-29 13:03:29 -08:00
Kconfig.kasan
kasan: add CONFIG_KASAN_GENERIC and CONFIG_KASAN_SW_TAGS
2018-12-28 12:11:43 -08:00
Kconfig.kgdb
Kconfig.ubsan
kfifo.c
klist.c
kobject.c
kref/kobject: Improve documentation
2018-12-06 13:57:03 +01:00
kobject_uevent.c
kobject: Fix warnings in lib/kobject_uevent.c
2018-11-11 11:27:43 -08: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
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
lockref.c
logic_pio.c
lru_cache.c
lshrdi3.c
Makefile
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2018-12-27 13:53:32 -08: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
nodemask.c
notifier-error-inject.c
notifier-error-inject.h
objagg.c
lib: introduce initial implementation of object aggregation manager
2018-11-15 14:43:43 -08: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
reciprocal_div.c
refcount.c
rhashtable.c
rhashtable: detect when object movement between tables might have invalidated a lookup
2018-12-03 15:31:55 -08:00
sbitmap.c
sbitmap: Protect swap_lock from hardirq
2019-01-15 16:29:57 +12:00
scatterlist.c
arch: switch the default on ARCH_HAS_SG_CHAIN
2018-12-06 07:04:56 -08: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
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
sort.c
stackdepot.c
stmp_device.c
string.c
lib: Fix ia64 bootloader linkage
2018-10-16 13:45:44 +02:00
string_helpers.c
strncpy_from_user.c
make 'user_access_begin()' do 'access_ok()'
2019-01-04 12:56:09 -08:00
strnlen_user.c
make 'user_access_begin()' do 'access_ok()'
2019-01-04 12:56:09 -08:00
syscall.c
test-kstrtox.c
test-string_helpers.c
test_bitfield.c
test_bitmap.c
test_bpf.c
net: remove VLAN_TAG_PRESENT
2018-11-16 19:25:29 -08: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
test_firmware: fix error return getting clobbered
2018-11-11 09:18:04 -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
lib/test_kasan.c: add tests for several string/memory API functions
2018-10-26 16:25:18 -07:00
test_kmod.c
lib/test_kmod.c: fix rmmod double free
2018-11-30 14:56:14 -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: Fix warning.
2018-11-15 14:57:09 -08:00
test_overflow.c
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
test_rhashtable: remove semaphore usage
2018-12-18 15:12:53 -08:00
test_siphash.c
test_sort.c
test_static_key_base.c
test_static_keys.c
test_string.c
test_sysctl.c
test_ubsan.c
test_user_copy.c
test_uuid.c
test_xarray.c
XArray: Fix xa_alloc when id exceeds max
2018-12-13 14:07:33 -05:00
textsearch.c
timerqueue.c
ts_bm.c
ts_fsm.c
ts_kmp.c
ubsan.c
lib/ubsan.c: don't mark __ubsan_handle_builtin_unreachable as noreturn
2018-11-18 10:15:10 -08:00
ubsan.h
ucmpdi2.c
ucs2_string.c
usercopy.c
Remove 'type' argument from access_ok() function
2019-01-03 18:57:57 -08:00
uuid.c
vsprintf.c
lib/vsprintf: Print time and date in human readable format via %pt
2018-12-10 22:39:34 +01:00
win_minmax.c
xarray.c
XArray: Fix xa_alloc when id exceeds max
2018-12-13 14:07:33 -05:00
xxhash.c