Jan Kara
b5bd6a0e5f
lib/flex_proportions.c: fix corruption of denominator in flexible proportions
...
When racing with CPU hotplug, percpu_counter_sum() can return negative
values for the number of observed events.
This confuses fprop_new_period(), which uses unsigned type and as a
result number of events is set to big *positive* number. From that
moment on, things go pear shaped and can result e.g. in division by
zero as denominator is later truncated to 32-bits.
This bug causes a divide-by-zero oops in bdi_dirty_limit() in Borislav's
3.6.0-rc6 based kernel.
Fix the issue by using a signed type in fprop_new_period(). That makes
us bail out from the function without doing anything (mistakenly)
thinking there are no events to age. That makes aging somewhat
inaccurate but getting accurate data would be rather hard.
Signed-off-by: Jan Kara <jack@suse.cz>
Reported-by: Borislav Petkov <bp@amd64.org>
Reported-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Cc: Wu Fengguang <fengguang.wu@intel.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-09-25 08:59:21 -07:00
..
lzo
mpi
Remove unused code from MPI library
2012-05-26 11:51:03 +10:00
raid6
lib/raid6: fix sparse warnings in recovery functions
2012-05-28 14:10:22 +10:00
reed_solomon
xz
zlib_deflate
zlib_inflate
.gitignore
argv_split.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
atomic64.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
atomic64_test.c
atomic64_test: simplify the #ifdef for atomic64_dec_if_positive() test
2012-07-30 17:25:16 -07:00
audit.c
average.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
bcd.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
bch.c
bitmap.c
lib/bitmap.c: fix documentation for scnprintf() functions
2012-05-29 16:22:32 -07:00
bitrev.c
bsearch.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
btree.c
btree: catch NULL value before it does harm
2012-06-07 14:43:55 -07:00
bug.c
bugs, x86: Fix printk levels for panic, softlockups and stack dumps
2012-01-26 21:28:45 +01:00
bust_spinlocks.c
check_signature.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
checksum.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
clz_tab.c
lib: Fix multiple definitions of clz_tab
2012-02-02 10:34:23 +11:00
cmdline.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05: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
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
cpumask.c
lib/cpumask.c: remove __any_online_cpu()
2012-03-28 17:14:35 -07:00
crc-ccitt.c
crc-itu-t.c
crc-t10dif.c
crc7.c
crc8.c
crc16.c
crc32.c
lib/crc32.c: fix unused variables warnings
2012-07-30 17:25:17 -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
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
debugobjects.c
debugobjects: Fill_pool() returns void now
2012-04-18 13:38:48 +02:00
dec_and_lock.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
decompress.c
decompress_bunzip2.c
decompress_bunzip2: remove invalid vi modeline
2011-12-06 10:00:05 +01:00
decompress_inflate.c
decompress_unlzma.c
treewide: Fix comment and string typo 'bufer'
2011-12-06 09:53:40 +01:00
decompress_unlzo.c
unlzo: fix input buffer free
2012-01-12 20:13:13 -08:00
decompress_unxz.c
devres.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
digsig.c
digsig: add hash size comparision on signature verification
2012-09-13 09:13:02 +08:00
div64.c
lib: correct link to the original source for div64_u64
2012-06-28 11:51:39 +02:00
dma-debug.c
dma-debug: debugfs_create_bool() takes a u32 pointer
2012-07-02 12:11:40 +02:00
dump_stack.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
dynamic_debug.c
Revert "dynamic_debug: remove unneeded includes"
2012-05-07 16:47:32 -07:00
dynamic_queue_limits.c
bql: Avoid possible inconsistent calculation.
2012-05-31 18:18:17 -04:00
extable.c
fault-inject.c
fault-inject: avoid call to random32() if fault injection is disabled
2012-06-20 14:39:36 -07:00
fdt.c
of/lib: Allow scripts/dtc/libfdt to be used from kernel code
2012-07-23 13:54:52 +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
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
flex_proportions.c
lib/flex_proportions.c: fix corruption of denominator in flexible proportions
2012-09-25 08:59:21 -07:00
gcd.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
gen_crc32table.c
crc32: bolt on crc32c
2012-03-23 16:58:38 -07:00
genalloc.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
halfmd4.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
hexdump.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
hweight.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
idr.c
The following text was taken from the original review request:
2012-03-24 10:24:31 -07:00
inflate.c
int_sqrt.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
iomap.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05: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: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
Kconfig
Merge branch 'akpm' (Andrew's patch-bomb)
2012-07-30 17:25:34 -07:00
Kconfig.debug
powerpc: pSeries reconfig notifier error injection module
2012-07-30 17:25:22 -07:00
Kconfig.kgdb
Kconfig.kmemcheck
klist.c
Revert "driver core: check start node in klist_iter_init_node"
2012-04-19 19:17:30 -07:00
kobject.c
kobject: fix the uncorrect comment
2012-05-07 16:51:19 -07:00
kobject_uevent.c
netlink: add netlink_kernel_cfg parameter to netlink_kernel_create
2012-06-29 16:46:02 -07:00
kstrtox.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
kstrtox.h
lib/kstrtox: common code between kstrto*() and simple_strto*() functions
2011-10-31 17:30:56 -07:00
lcm.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
libcrc32c.c
list_debug.c
rcu: Fix broken strings in RCU's source code.
2012-07-06 06:01:49 -07:00
list_sort.c
llist.c
Disintegrate and delete asm/system.h
2012-03-28 15:58:21 -07: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
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
lru_cache.c
Makefile
Use time based periods to age the writeback proportions,
2012-07-30 22:14:04 -07:00
md5.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05: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
nlattr.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
notifier-error-inject.c
fault-injection: notifier error injection
2012-07-30 17:25:22 -07:00
notifier-error-inject.h
fault-injection: notifier error injection
2012-07-30 17:25:22 -07:00
parser.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
pci_iomap.c
lib: add NO_GENERIC_PCI_IOPORT_MAP
2012-01-31 23:19:47 +02:00
percpu_counter.c
switch the protection of percpu_counter list to spinlock
2012-07-31 09:28:31 +04:00
plist.c
bug.h: add include of it to various implicit C users
2012-02-29 17:15:08 -05:00
pm-notifier-error-inject.c
PM: PM notifier error injection module
2012-07-30 17:25:22 -07:00
prio_heap.c
prio_tree.c
prio_tree: introduce prio_set_parent()
2012-03-23 16:58:36 -07:00
proportions.c
pSeries-reconfig-notifier-error-inject.c
powerpc: pSeries reconfig notifier error injection module
2012-07-30 17:25:22 -07:00
radix-tree.c
radix-tree: fix contiguous iterator
2012-06-05 10:46:40 -07:00
random32.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05: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: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
reciprocal_div.c
sch_red: Adaptative RED AQM
2011-12-08 19:52:43 -05:00
rwsem-spinlock.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
rwsem.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
scatterlist.c
Merge branch 'akpm' (Andrew's patch-bomb)
2012-07-30 17:25:34 -07:00
sha1.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
show_mem.c
smp_processor_id.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
sort.c
spinlock_debug.c
spinlock_debug: print offset in addition to symbol name
2012-07-30 17:25:16 -07:00
stmp_device.c
lib: add support for stmp-style devices
2012-04-20 23:27:08 +02:00
string.c
The following text was taken from the original review request:
2012-03-24 10:24:31 -07:00
string_helpers.c
lib/string_helpers.c: make arrays static
2012-05-29 16:22:32 -07:00
strncpy_from_user.c
word-at-a-time: make the interfaces truly generic
2012-05-26 11:33:40 -07: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: print physical addresses consistently with other parts of kernel
2012-05-29 16:22:21 -07:00
syscall.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
test-kstrtox.c
lib/test-kstrtox.c: mark const init data with __initconst instead of __initdata
2012-05-29 16:22:32 -07:00
textsearch.c
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
uuid.c
lib: reduce the use of module.h wherever possible
2012-03-07 15:04:04 -05:00
vsprintf.c
vsprintf: add support of '%*ph[CDN]'
2012-07-30 17:25:14 -07:00