Martin Schwidefsky
70f5dc514c
[S390] cputime: fix overflow on 31 bit systems
The cputime_to_msecs / cputime_to_clock_t and cputime64_to_clock_t
cause fixpoint divide exceptions if the cputime is too large.
On a machine that collected 49.7 days worth of idle time reading
from /proc/stat will generate oopses like this:
Kernel BUG at 001b0c92 [verbose debug info unavailable]
fixpoint divide exception: 0009 [#13] SMP
Modules linked in: ipv6
CPU: 1 Tainted: G D 2.6.27.10 #5
Process cat (pid: 21352, task: 1fb34138, ksp: 1d2a3d98)
Krnl PSW : 070c2000 801b0c92 (show_stat+0x2ca/0x68c)
R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:2 PM:0
Krnl GPRS: 00000001 00001388 00000bb8 0015d2a1
00000000 00000000 000003e8 0001fd91
00000000 00000000 0000129d eecd2ff0
1cc533b9 0036f780 801b0bce 1d2a3cc0
Krnl Code: 801b0c86: f18890abf198 mvo 171(9,%r9),408(9,%r15)
801b0c8c: 98abf170 lm %r10,%r11,368(%r15)
801b0c90: 1da1 dr %r10,%r1
>801b0c92: 90abf170 stm %r10,%r11,368(%r15)
801b0c96: 98abf190 lm %r10,%r11,400(%r15)
801b0c9a: 1da1 dr %r10,%r1
801b0c9c: 90abf190 stm %r10,%r11,400(%r15)
801b0ca0: 18a3 lr %r10,%r3
Call Trace:
([<00000000001b09f4>] show_stat+0x2c/0x68c)
[<000000000018dcee>] seq_read+0xb2/0x364
[<00000000001a9980>] proc_reg_read+0x68/0x98
[<00000000001705ee>] vfs_read+0x6e/0xe8
[<0000000000170732>] sys_read+0x36/0x78
[<000000000010f750>] sysc_do_restart+0x12/0x16
[<0000000077f3ad6a>] 0x77f3ad6a
<4>---[ end trace 1436ea9559d3de9e ]---
Reported-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
|
2009-10-29 15:05:13 +01:00 |
| .. |
|
airq.h
|
|
|
|
appldata.h
|
|
|
|
atomic.h
|
[S390] atomic ops: small cleanups
|
2009-09-11 10:29:44 +02:00 |
|
auxvec.h
|
[S390] introduce vdso on s390
|
2008-12-25 13:38:55 +01:00 |
|
bitops.h
|
[S390] bitops: remove likely annotations
|
2009-03-26 15:24:23 +01:00 |
|
bitsperlong.h
|
asm-generic: introduce asm/bitsperlong.h
|
2009-06-11 21:02:14 +02:00 |
|
bug.h
|
[S390] remove warnings with functions ending in BUG
|
2008-12-25 13:39:12 +01:00 |
|
bugs.h
|
|
|
|
byteorder.h
|
byteorder: make swab.h include asm/swab.h like a regular header
|
2009-01-14 19:56:50 -08:00 |
|
cache.h
|
|
|
|
cacheflush.h
|
|
|
|
ccwdev.h
|
[S390] cio: force console function
|
2009-06-16 10:31:11 +02:00 |
|
ccwgroup.h
|
[S390] pm: ccwgroup bus power management callbacks
|
2009-06-16 10:31:08 +02:00 |
|
checksum.h
|
[S390] convert/optimize csum_fold() to C
|
2009-09-11 10:29:43 +02:00 |
|
chpid.h
|
[S390] types: add/fix types.h include in header files
|
2009-01-09 12:15:06 +01:00 |
|
chsc.h
|
[S390] cio: move scsw helper functions to header file
|
2009-09-11 10:29:36 +02:00 |
|
cio.h
|
[S390] cio: move scsw helper functions to header file
|
2009-09-11 10:29:36 +02:00 |
|
cmb.h
|
[S390] types: add/fix types.h include in header files
|
2009-01-09 12:15:06 +01:00 |
|
compat.h
|
[S390] implement is_compat_task
|
2009-06-12 10:27:30 +02:00 |
|
cpcmd.h
|
|
|
|
cpu.h
|
[S390] Get rid of cpuid.h header file.
|
2009-09-11 10:29:56 +02:00 |
|
cputime.h
|
[S390] cputime: fix overflow on 31 bit systems
|
2009-10-29 15:05:13 +01:00 |
|
crw.h
|
[S390] split/move machine check handler code
|
2009-03-26 15:24:10 +01:00 |
|
current.h
|
|
|
|
dasd.h
|
[S390] dasd: add large volume support
|
2009-03-26 15:24:05 +01:00 |
|
debug.h
|
[S390] s390dbf: Add description for usage of "%s" in sprintf events
|
2009-09-11 10:29:53 +02:00 |
|
delay.h
|
[S390] Provide arch specific mdelay implementation.
|
2009-10-06 10:35:08 +02:00 |
|
device.h
|
|
|
|
diag.h
|
|
|
|
div64.h
|
|
|
|
dma.h
|
|
|
|
ebcdic.h
|
|
|
|
elf.h
|
[S390] 64-bit register support for 31-bit processes
|
2009-10-06 10:35:10 +02:00 |
|
emergency-restart.h
|
|
|
|
errno.h
|
|
|
|
etr.h
|
|
|
|
extmem.h
|
|
|
|
fb.h
|
|
|
|
fcntl.h
|
|
|
|
fcx.h
|
[S390] cio: update sac values
|
2008-12-25 13:39:06 +01:00 |
|
ftrace.h
|
[S390] ftrace: add function graph tracer support
|
2009-06-12 10:27:39 +02:00 |
|
futex.h
|
|
|
|
hardirq.h
|
[S390] remove unused irq_cpustat_t defintion
|
2009-09-11 10:29:48 +02:00 |
|
hugetlb.h
|
|
|
|
idals.h
|
[S390] dasd: add High Performance FICON support
|
2009-03-26 15:24:05 +01:00 |
|
io.h
|
|
|
|
ioctl.h
|
|
|
|
ioctls.h
|
|
|
|
ipcbuf.h
|
|
|
|
ipl.h
|
[S390] kernel: Append scpdata to kernel boot command line
|
2009-09-11 10:29:46 +02:00 |
|
irq.h
|
|
|
|
irq_regs.h
|
|
|
|
irqflags.h
|
|
|
|
isc.h
|
[S390] zcrypt: Use of Thin Interrupts
|
2008-12-25 13:38:57 +01:00 |
|
itcw.h
|
|
|
|
Kbuild
|
byteorder: make swab.h include asm/swab.h like a regular header
|
2009-01-14 19:56:50 -08:00 |
|
kdebug.h
|
|
|
|
kexec.h
|
|
|
|
kmap_types.h
|
kmap_types: make most arches use generic header file
|
2009-06-16 19:47:51 -07:00 |
|
kprobes.h
|
|
|
|
kvm.h
|
KVM: s390: remove unused structs
|
2009-09-10 08:33:15 +03:00 |
|
kvm_host.h
|
Merge branch 'kvm-updates/2.6.32' of git://git.kernel.org/pub/scm/virt/kvm/kvm
|
2009-09-14 17:43:43 -07:00 |
|
kvm_para.h
|
KVM: Add __KERNEL__ guards to exported headers
|
2009-09-10 10:46:48 +03:00 |
|
kvm_virtio.h
|
[S390] kvm: use console_initcall() to initialize s390 virtio console
|
2009-09-11 10:29:52 +02:00 |
|
linkage.h
|
|
|
|
local.h
|
|
|
|
lowcore.h
|
[S390] hibernate: Do real CPU swap at resume time
|
2009-09-22 22:58:46 +02:00 |
|
mathemu.h
|
|
|
|
mman.h
|
mm: remove duplicate asm/mman.h files
|
2009-09-22 07:17:42 -07:00 |
|
mmu.h
|
[S390] fix recursive locking on page_table_lock
|
2009-09-11 10:29:53 +02:00 |
|
mmu_context.h
|
[S390] cpumask: use mm_cpumask() wrapper
|
2009-03-26 15:24:34 +01:00 |
|
module.h
|
|
|
|
monwriter.h
|
|
|
|
msgbuf.h
|
|
|
|
mutex.h
|
|
|
|
nmi.h
|
[S390] split/move machine check handler code
|
2009-03-26 15:24:10 +01:00 |
|
page.h
|
[S390] Enable guest page hinting by default.
|
2009-09-11 10:29:54 +02:00 |
|
param.h
|
|
|
|
pci.h
|
|
|
|
percpu.h
|
s390: switch to dynamic percpu allocator
|
2009-06-24 15:13:53 +09:00 |
|
perf_event.h
|
perf: Do the big rename: Performance Counters -> Performance Events
|
2009-09-21 14:28:04 +02:00 |
|
pgalloc.h
|
[S390] fix recursive locking on page_table_lock
|
2009-09-11 10:29:53 +02:00 |
|
pgtable.h
|
[S390] vmalloc: add vmalloc kernel parameter support
|
2009-06-12 10:27:33 +02:00 |
|
poll.h
|
|
|
|
posix_types.h
|
[S390] asm-s390/posix_types.h: drop __USE_ALL usage
|
2009-01-09 12:15:04 +01:00 |
|
processor.h
|
[S390] fix disabled_wait inline assembly clobber list
|
2009-09-22 22:58:45 +02:00 |
|
ptrace.h
|
[S390] 64-bit register support for 31-bit processes
|
2009-10-06 10:35:10 +02:00 |
|
qdio.h
|
[S390] qdio: Sanitize do_QDIO sanity checks
|
2009-06-22 12:08:21 +02:00 |
|
qeth.h
|
[S390] types: add/fix types.h include in header files
|
2009-01-09 12:15:06 +01:00 |
|
reset.h
|
|
|
|
resource.h
|
|
|
|
rwsem.h
|
|
|
|
s390_ext.h
|
|
|
|
scatterlist.h
|
[S390] use generic scatterlist.h
|
2009-09-11 10:29:54 +02:00 |
|
schid.h
|
[S390] types: add/fix types.h include in header files
|
2009-01-09 12:15:06 +01:00 |
|
sclp.h
|
|
|
|
scsw.h
|
[S390] cio: move scsw helper functions to header file
|
2009-09-11 10:29:36 +02:00 |
|
seccomp.h
|
[S390] secure computing arch backend
|
2009-06-12 10:27:31 +02:00 |
|
sections.h
|
|
|
|
segment.h
|
|
|
|
sembuf.h
|
|
|
|
setup.h
|
[S390] kernel: Append scpdata to kernel boot command line
|
2009-09-11 10:29:46 +02:00 |
|
sfp-machine.h
|
|
|
|
sfp-util.h
|
|
|
|
shmbuf.h
|
|
|
|
shmparam.h
|
|
|
|
sigcontext.h
|
|
|
|
siginfo.h
|
|
|
|
signal.h
|
asm-generic: rename termios.h, signal.h and mman.h
|
2009-06-11 21:01:52 +02:00 |
|
sigp.h
|
[S390] convert s390 to generic IPI infrastructure
|
2008-12-25 13:38:56 +01:00 |
|
smp.h
|
cpumask: remove arch_send_call_function_ipi
|
2009-09-24 09:34:47 +09:30 |
|
socket.h
|
net: implement a SO_DOMAIN getsockoption
|
2009-08-05 13:02:57 -07:00 |
|
sockios.h
|
|
|
|
sparsemem.h
|
|
|
|
spinlock.h
|
locking: Inline spinlock code for all locking variants on s390
|
2009-08-31 18:08:51 +02:00 |
|
spinlock_types.h
|
|
|
|
stat.h
|
|
|
|
statfs.h
|
S390: Update comments about why we don't use <asm-generic/statfs.h>
|
2008-09-06 19:30:19 +01:00 |
|
string.h
|
[S390] use compiler builtin versions of strlen/strcpy/strcat
|
2009-03-26 15:24:24 +01:00 |
|
suspend.h
|
[S390] s390: hibernation support for s390
|
2009-06-16 10:31:22 +02:00 |
|
swab.h
|
[S390] types: add/fix types.h include in header files
|
2009-01-09 12:15:06 +01:00 |
|
syscall.h
|
[S390] ftrace: add system call tracer support
|
2009-06-12 10:27:39 +02:00 |
|
sysinfo.h
|
[S390] Fix hypervisor detection for KVM
|
2009-03-26 15:24:09 +01:00 |
|
system.h
|
[S390] Enable guest page hinting by default.
|
2009-09-11 10:29:54 +02:00 |
|
tape390.h
|
|
|
|
termbits.h
|
|
|
|
termios.h
|
asm-generic: rename termios.h, signal.h and mman.h
|
2009-06-11 21:01:52 +02:00 |
|
thread_info.h
|
tracing: Rename FTRACE_SYSCALLS for tracepoints
|
2009-08-26 00:17:35 +02:00 |
|
timer.h
|
[S390] extend virtual timer interface by mod_virt_timer_periodic
|
2009-04-14 15:37:23 +02:00 |
|
timex.h
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
|
2009-09-14 17:53:36 -07:00 |
|
tlb.h
|
mm: Pass virtual address to [__]p{te,ud,md}_free_tlb()
|
2009-07-27 12:10:38 -07:00 |
|
tlbflush.h
|
[S390] cpumask: use mm_cpumask() wrapper
|
2009-03-26 15:24:34 +01:00 |
|
todclk.h
|
|
|
|
topology.h
|
cpumask: remove obsolete topology_core_siblings and topology_thread_siblings: s390
|
2009-09-24 09:34:42 +09:30 |
|
types.h
|
asm-generic: introduce asm/bitsperlong.h
|
2009-06-11 21:02:14 +02:00 |
|
uaccess.h
|
[S390] uaccess: use might_fault() instead of might_sleep()
|
2009-06-12 10:27:33 +02:00 |
|
ucontext.h
|
[S390] 64-bit register support for 31-bit processes
|
2009-10-06 10:35:10 +02:00 |
|
unaligned.h
|
|
|
|
unistd.h
|
perf: Do the big rename: Performance Counters -> Performance Events
|
2009-09-21 14:28:04 +02:00 |
|
user.h
|
|
|
|
vdso.h
|
[PATCH] fast vdso implementation for CLOCK_THREAD_CPUTIME_ID
|
2008-12-31 15:11:49 +01:00 |
|
vtoc.h
|
[S390] dasd: add large volume support
|
2009-03-26 15:24:05 +01:00 |
|
xor.h
|
|
|
|
zcrypt.h
|
|
|