linux-hardened/arch/s390/include/asm
Heiko Carstens 7f5a8ba6b0 [S390] No more 4kb stacks.
We got a stack overflow with a small stack configuration on a 32 bit
system. It just looks like as 4kb isn't enough and too dangerous.
So lets get rid of 4kb stacks on 32 bit.

But one thing I completely dislike about the call trace below is that
just for debugging or tracing purposes sprintf gets called (cio_start_key):

	/* process condition code */
	sprintf(dbf_txt, "ccode:%d", ccode);
	CIO_TRACE_EVENT(4, dbf_txt);

But maybe its just me who thinks that this could be done better.

    <4>Kernel stack overflow.
    <4>Modules linked in: dm_multipath sunrpc bonding qeth_l2 dm_mod qeth ccwgroup vmur
    <4>CPU: 1 Not tainted 2.6.27-30.x.20081015-s390default #1
    <4>Process httpd (pid: 3807, task: 20ae2df8, ksp: 1666fb78)
    <4>Krnl PSW : 040c0000 8027098a (number+0xe/0x348)
    <4>           R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:0 CC:0 PM:0
    <4>Krnl GPRS: 00d43318 0027097c 1666f277 9666f270
    <4>           00000000 00000000 0000000a ffffffff
    <4>           9666f270 1666f228 1666f277 1666f098
    <4>           00000002 80270982 80271016 1666f098
    <4>Krnl Code: 8027097e: f0340dd0a7f1	srp	3536(4,%r0),2033(%r10),4
    <4>           80270984: 0f00		clcl	%r0,%r0
    <4>           80270986: a7840001		brc	8,80270988
    <4>          >8027098a: 18ef		lr	%r14,%r15
    <4>           8027098c: a7faff68		ahi	%r15,-152
    <4>           80270990: 18bf		lr	%r11,%r15
    <4>           80270992: 18a2		lr	%r10,%r2
    <4>           80270994: 1893		lr	%r9,%r3

Modified calltrace with annotated stackframe size of each function:

stackframe size
    |
 0 304 vsnprintf+850 [0x271016]
 1  72 sprintf+74 [0x271522]
 2  56 cio_start_key+262 [0x2d4c16]
 3  56 ccw_device_start_key+222 [0x2dfe92]
 4  56 ccw_device_start+40 [0x2dff28]
 5  48 raw3215_start_io+104 [0x30b0f8]
 6  56 raw3215_write+494 [0x30ba0a]
 7  40 con3215_write+68 [0x30bafc]
 8  40 __call_console_drivers+146 [0x12b0fa]
 9  32 _call_console_drivers+102 [0x12b192]
10  64 release_console_sem+268 [0x12b614]
11 168 vprintk+462 [0x12bca6]
12  72 printk+68 [0x12bfd0]
13 256 __print_symbol+50 [0x15a882]
14  56 __show_trace+162 [0x103d06]
15  32 show_trace+224 [0x103e70]
16  48 show_stack+152 [0x103f20]
17  56 dump_stack+126 [0x104612]
18  96 __alloc_pages_internal+592 [0x175004]
19  80 cache_alloc_refill+776 [0x196f3c]
20  40 __kmalloc+258 [0x1972ae]
21  40 __alloc_skb+94 [0x328086]
22  32 pskb_copy+50 [0x328252]
23  32 skb_realloc_headroom+110 [0x328a72]
24 104 qeth_l2_hard_start_xmit+378 [0x7803bfde]
25  56 dev_hard_start_xmit+450 [0x32ef6e]
26  56 __qdisc_run+390 [0x3425d6]
27  48 dev_queue_xmit+410 [0x331e06]
28  40 ip_finish_output+308 [0x354ac8]
29  56 ip_output+218 [0x355b6e]
30  24 ip_local_out+56 [0x354584]
31 120 ip_queue_xmit+300 [0x355cec]
32  96 tcp_transmit_skb+812 [0x367da8]
33  40 tcp_push_one+158 [0x369fda]
34 112 tcp_sendmsg+852 [0x35d5a0]
35 240 sock_sendmsg+164 [0x32035c]
36  56 kernel_sendmsg+86 [0x32064a]
37  88 sock_no_sendpage+98 [0x322b22]
38 104 tcp_sendpage+70 [0x35cc1e]
39  48 sock_sendpage+74 [0x31eb66]
40  64 pipe_to_sendpage+102 [0x1c4b2e]
41  64 __splice_from_pipe+120 [0x1c5340]
42  72 splice_from_pipe+90 [0x1c57e6]
43  56 generic_splice_sendpage+38 [0x1c5832]
44  48 do_splice_from+104 [0x1c4c38]
45  48 direct_splice_actor+52 [0x1c4c88]
46  80 splice_direct_to_actor+180 [0x1c4f80]
47  72 do_splice_direct+70 [0x1c5112]
48  64 do_sendfile+360 [0x19de18]
49  72 sys_sendfile64+126 [0x19df32]
50 336 sysc_do_restart+18 [0x111a1a]

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2008-10-28 11:12:06 +01:00
..
airq.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
appldata.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
atomic.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
auxvec.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
bitops.h [S390] fix ext2_find_next_bit 2008-08-21 19:46:41 +02:00
bug.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
bugs.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
byteorder.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
cache.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
cacheflush.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
ccwdev.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
ccwgroup.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
checksum.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
chpid.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
chsc.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
cio.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
cmb.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
compat.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
cpcmd.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
cpu.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
cputime.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
current.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
dasd.h [S390] Add ioctl support for EMC Symmetrix Subsystem Control I/O 2008-10-10 21:34:00 +02:00
debug.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
delay.h [S390] Move private simple udelay function to arch/s390/lib/delay.c. 2008-10-10 21:33:58 +02:00
device.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
diag.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
div64.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
dma.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
ebcdic.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
elf.h [PATCH] remove unused ibcs2/PER_SVR4 in SET_PERSONALITY 2008-10-16 15:40:05 +02:00
emergency-restart.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
errno.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
etr.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
extmem.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
fb.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
fcntl.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
fcx.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
futex.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
hardirq.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
hugetlb.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
idals.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
io.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
ioctl.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
ioctls.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
ipcbuf.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
ipl.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
irq.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
irq_regs.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
irqflags.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
isc.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
itcw.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
Kbuild [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
kdebug.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
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 [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
kprobes.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
kvm.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
kvm_host.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
kvm_para.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
kvm_virtio.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
linkage.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
local.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
lowcore.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
mathemu.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
mman.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
mmu.h [S390] pgtables: Fix race in enable_sie vs. page table ops 2008-10-28 11:12:03 +01:00
mmu_context.h [S390] pgtables: Fix race in enable_sie vs. page table ops 2008-10-28 11:12:03 +01:00
module.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
monwriter.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
msgbuf.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
mutex.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
page.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
param.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
pci.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
percpu.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
pgalloc.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
pgtable.h [S390] pgtables: Fix race in enable_sie vs. page table ops 2008-10-28 11:12:03 +01:00
poll.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
posix_types.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
processor.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
ptrace.h [S390] ptrace changes 2008-10-10 21:33:57 +02:00
qdio.h [S390] qdio enhanced SIGA (iqdio) support. 2008-10-10 21:33:55 +02:00
qeth.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
reset.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
resource.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
rwsem.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
s390_ext.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
s390_rdev.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
scatterlist.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
schid.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
sclp.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
sections.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
segment.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
sembuf.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
setup.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
sfp-machine.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
sfp-util.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
shmbuf.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
shmparam.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
sigcontext.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
siginfo.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
signal.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
sigp.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
smp.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
socket.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
sockios.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
sparsemem.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
spinlock.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
spinlock_types.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
stat.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
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] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
suspend.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
syscall.h [S390] ptrace changes 2008-10-10 21:33:57 +02:00
sysinfo.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
system.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
tape390.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
termbits.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
termios.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
thread_info.h [S390] No more 4kb stacks. 2008-10-28 11:12:06 +01:00
timer.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
timex.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
tlb.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
tlbflush.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
todclk.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
topology.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
types.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
uaccess.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
ucontext.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
unaligned.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
unistd.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
user.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
vtoc.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
xor.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
zcrypt.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00