linux/arch/s390/include/asm
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_regs.h
irq.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 kexec jump: rename KEXEC_CONTROL_CODE_SIZE to KEXEC_CONTROL_PAGE_SIZE 2008-08-15 08:35:42 -07:00
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kprobes.h
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
kvm.h KVM: s390: remove unused structs 2009-09-10 08:33:15 +03: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_context.h [S390] cpumask: use mm_cpumask() wrapper 2009-03-26 15:24:34 +01:00
mmu.h [S390] fix recursive locking on page_table_lock 2009-09-11 10:29:53 +02: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_types.h
spinlock.h locking: Inline spinlock code for all locking variants on s390 2009-08-31 18:08:51 +02:00
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