diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/s390/defconfig | 110 | ||||
-rw-r--r-- | arch/s390/kernel/dis.c | 7 | ||||
-rw-r--r-- | arch/s390/kernel/stacktrace.c | 26 |
3 files changed, 47 insertions, 96 deletions
diff --git a/arch/s390/defconfig b/arch/s390/defconfig index 485b60c1983c..2aae23dba4bb 100644 --- a/arch/s390/defconfig +++ b/arch/s390/defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.21 | 3 | # Linux kernel version: 2.6.22 |
4 | # Thu May 10 15:18:19 2007 | 4 | # Tue Jul 17 12:50:23 2007 |
5 | # | 5 | # |
6 | CONFIG_MMU=y | 6 | CONFIG_MMU=y |
7 | CONFIG_ZONE_DMA=y | 7 | CONFIG_ZONE_DMA=y |
@@ -32,12 +32,11 @@ CONFIG_LOCALVERSION="" | |||
32 | CONFIG_LOCALVERSION_AUTO=y | 32 | CONFIG_LOCALVERSION_AUTO=y |
33 | CONFIG_SWAP=y | 33 | CONFIG_SWAP=y |
34 | CONFIG_SYSVIPC=y | 34 | CONFIG_SYSVIPC=y |
35 | # CONFIG_IPC_NS is not set | ||
36 | CONFIG_SYSVIPC_SYSCTL=y | 35 | CONFIG_SYSVIPC_SYSCTL=y |
37 | CONFIG_POSIX_MQUEUE=y | 36 | CONFIG_POSIX_MQUEUE=y |
38 | # CONFIG_BSD_PROCESS_ACCT is not set | 37 | # CONFIG_BSD_PROCESS_ACCT is not set |
39 | # CONFIG_TASKSTATS is not set | 38 | # CONFIG_TASKSTATS is not set |
40 | # CONFIG_UTS_NS is not set | 39 | # CONFIG_USER_NS is not set |
41 | CONFIG_AUDIT=y | 40 | CONFIG_AUDIT=y |
42 | # CONFIG_AUDITSYSCALL is not set | 41 | # CONFIG_AUDITSYSCALL is not set |
43 | CONFIG_IKCONFIG=y | 42 | CONFIG_IKCONFIG=y |
@@ -61,20 +60,19 @@ CONFIG_BUG=y | |||
61 | CONFIG_ELF_CORE=y | 60 | CONFIG_ELF_CORE=y |
62 | CONFIG_BASE_FULL=y | 61 | CONFIG_BASE_FULL=y |
63 | CONFIG_FUTEX=y | 62 | CONFIG_FUTEX=y |
63 | CONFIG_ANON_INODES=y | ||
64 | CONFIG_EPOLL=y | 64 | CONFIG_EPOLL=y |
65 | CONFIG_SIGNALFD=y | ||
66 | CONFIG_TIMERFD=y | ||
67 | CONFIG_EVENTFD=y | ||
65 | CONFIG_SHMEM=y | 68 | CONFIG_SHMEM=y |
66 | CONFIG_VM_EVENT_COUNTERS=y | 69 | CONFIG_VM_EVENT_COUNTERS=y |
67 | CONFIG_SLUB_DEBUG=y | ||
68 | CONFIG_SLAB=y | 70 | CONFIG_SLAB=y |
69 | # CONFIG_SLUB is not set | 71 | # CONFIG_SLUB is not set |
70 | # CONFIG_SLOB is not set | 72 | # CONFIG_SLOB is not set |
71 | CONFIG_RT_MUTEXES=y | 73 | CONFIG_RT_MUTEXES=y |
72 | # CONFIG_TINY_SHMEM is not set | 74 | # CONFIG_TINY_SHMEM is not set |
73 | CONFIG_BASE_SMALL=0 | 75 | CONFIG_BASE_SMALL=0 |
74 | |||
75 | # | ||
76 | # Loadable module support | ||
77 | # | ||
78 | CONFIG_MODULES=y | 76 | CONFIG_MODULES=y |
79 | CONFIG_MODULE_UNLOAD=y | 77 | CONFIG_MODULE_UNLOAD=y |
80 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 78 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
@@ -82,12 +80,9 @@ CONFIG_MODVERSIONS=y | |||
82 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 80 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
83 | CONFIG_KMOD=y | 81 | CONFIG_KMOD=y |
84 | CONFIG_STOP_MACHINE=y | 82 | CONFIG_STOP_MACHINE=y |
85 | |||
86 | # | ||
87 | # Block layer | ||
88 | # | ||
89 | CONFIG_BLOCK=y | 83 | CONFIG_BLOCK=y |
90 | # CONFIG_BLK_DEV_IO_TRACE is not set | 84 | # CONFIG_BLK_DEV_IO_TRACE is not set |
85 | CONFIG_BLK_DEV_BSG=y | ||
91 | 86 | ||
92 | # | 87 | # |
93 | # IO Schedulers | 88 | # IO Schedulers |
@@ -151,6 +146,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
151 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 146 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
152 | CONFIG_RESOURCES_64BIT=y | 147 | CONFIG_RESOURCES_64BIT=y |
153 | CONFIG_ZONE_DMA_FLAG=1 | 148 | CONFIG_ZONE_DMA_FLAG=1 |
149 | CONFIG_VIRT_TO_BUS=y | ||
154 | CONFIG_HOLES_IN_ZONE=y | 150 | CONFIG_HOLES_IN_ZONE=y |
155 | 151 | ||
156 | # | 152 | # |
@@ -248,25 +244,13 @@ CONFIG_IPV6_SIT=y | |||
248 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 244 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
249 | # CONFIG_NETWORK_SECMARK is not set | 245 | # CONFIG_NETWORK_SECMARK is not set |
250 | # CONFIG_NETFILTER is not set | 246 | # CONFIG_NETFILTER is not set |
251 | |||
252 | # | ||
253 | # DCCP Configuration (EXPERIMENTAL) | ||
254 | # | ||
255 | # CONFIG_IP_DCCP is not set | 247 | # CONFIG_IP_DCCP is not set |
256 | |||
257 | # | ||
258 | # SCTP Configuration (EXPERIMENTAL) | ||
259 | # | ||
260 | CONFIG_IP_SCTP=m | 248 | CONFIG_IP_SCTP=m |
261 | # CONFIG_SCTP_DBG_MSG is not set | 249 | # CONFIG_SCTP_DBG_MSG is not set |
262 | # CONFIG_SCTP_DBG_OBJCNT is not set | 250 | # CONFIG_SCTP_DBG_OBJCNT is not set |
263 | # CONFIG_SCTP_HMAC_NONE is not set | 251 | # CONFIG_SCTP_HMAC_NONE is not set |
264 | # CONFIG_SCTP_HMAC_SHA1 is not set | 252 | # CONFIG_SCTP_HMAC_SHA1 is not set |
265 | CONFIG_SCTP_HMAC_MD5=y | 253 | CONFIG_SCTP_HMAC_MD5=y |
266 | |||
267 | # | ||
268 | # TIPC Configuration (EXPERIMENTAL) | ||
269 | # | ||
270 | # CONFIG_TIPC is not set | 254 | # CONFIG_TIPC is not set |
271 | # CONFIG_ATM is not set | 255 | # CONFIG_ATM is not set |
272 | # CONFIG_BRIDGE is not set | 256 | # CONFIG_BRIDGE is not set |
@@ -293,6 +277,7 @@ CONFIG_NET_SCH_CBQ=m | |||
293 | # CONFIG_NET_SCH_HTB is not set | 277 | # CONFIG_NET_SCH_HTB is not set |
294 | # CONFIG_NET_SCH_HFSC is not set | 278 | # CONFIG_NET_SCH_HFSC is not set |
295 | CONFIG_NET_SCH_PRIO=m | 279 | CONFIG_NET_SCH_PRIO=m |
280 | CONFIG_NET_SCH_RR=m | ||
296 | CONFIG_NET_SCH_RED=m | 281 | CONFIG_NET_SCH_RED=m |
297 | CONFIG_NET_SCH_SFQ=m | 282 | CONFIG_NET_SCH_SFQ=m |
298 | CONFIG_NET_SCH_TEQL=m | 283 | CONFIG_NET_SCH_TEQL=m |
@@ -317,10 +302,14 @@ CONFIG_CLS_U32_MARK=y | |||
317 | CONFIG_NET_CLS_RSVP=m | 302 | CONFIG_NET_CLS_RSVP=m |
318 | CONFIG_NET_CLS_RSVP6=m | 303 | CONFIG_NET_CLS_RSVP6=m |
319 | # CONFIG_NET_EMATCH is not set | 304 | # CONFIG_NET_EMATCH is not set |
320 | # CONFIG_NET_CLS_ACT is not set | 305 | CONFIG_NET_CLS_ACT=y |
306 | CONFIG_NET_ACT_POLICE=y | ||
307 | # CONFIG_NET_ACT_GACT is not set | ||
308 | # CONFIG_NET_ACT_MIRRED is not set | ||
309 | # CONFIG_NET_ACT_PEDIT is not set | ||
310 | # CONFIG_NET_ACT_SIMP is not set | ||
321 | CONFIG_NET_CLS_POLICE=y | 311 | CONFIG_NET_CLS_POLICE=y |
322 | # CONFIG_NET_CLS_IND is not set | 312 | # CONFIG_NET_CLS_IND is not set |
323 | CONFIG_NET_ESTIMATOR=y | ||
324 | 313 | ||
325 | # | 314 | # |
326 | # Network testing | 315 | # Network testing |
@@ -329,6 +318,7 @@ CONFIG_NET_ESTIMATOR=y | |||
329 | # CONFIG_NET_TCPPROBE is not set | 318 | # CONFIG_NET_TCPPROBE is not set |
330 | # CONFIG_AF_RXRPC is not set | 319 | # CONFIG_AF_RXRPC is not set |
331 | # CONFIG_RFKILL is not set | 320 | # CONFIG_RFKILL is not set |
321 | # CONFIG_NET_9P is not set | ||
332 | # CONFIG_PCMCIA is not set | 322 | # CONFIG_PCMCIA is not set |
333 | CONFIG_CCW=y | 323 | CONFIG_CCW=y |
334 | 324 | ||
@@ -345,15 +335,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y | |||
345 | # CONFIG_DEBUG_DRIVER is not set | 335 | # CONFIG_DEBUG_DRIVER is not set |
346 | # CONFIG_DEBUG_DEVRES is not set | 336 | # CONFIG_DEBUG_DEVRES is not set |
347 | CONFIG_SYS_HYPERVISOR=y | 337 | CONFIG_SYS_HYPERVISOR=y |
348 | |||
349 | # | ||
350 | # Connector - unified userspace <-> kernelspace linker | ||
351 | # | ||
352 | # CONFIG_CONNECTOR is not set | 338 | # CONFIG_CONNECTOR is not set |
353 | 339 | CONFIG_BLK_DEV=y | |
354 | # | ||
355 | # Block devices | ||
356 | # | ||
357 | # CONFIG_BLK_DEV_COW_COMMON is not set | 340 | # CONFIG_BLK_DEV_COW_COMMON is not set |
358 | CONFIG_BLK_DEV_LOOP=m | 341 | CONFIG_BLK_DEV_LOOP=m |
359 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 342 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
@@ -376,17 +359,15 @@ CONFIG_DASD_ECKD=y | |||
376 | CONFIG_DASD_FBA=y | 359 | CONFIG_DASD_FBA=y |
377 | CONFIG_DASD_DIAG=y | 360 | CONFIG_DASD_DIAG=y |
378 | CONFIG_DASD_EER=y | 361 | CONFIG_DASD_EER=y |
379 | 362 | CONFIG_MISC_DEVICES=y | |
380 | # | 363 | # CONFIG_EEPROM_93CX6 is not set |
381 | # Misc devices | ||
382 | # | ||
383 | # CONFIG_BLINK is not set | ||
384 | 364 | ||
385 | # | 365 | # |
386 | # SCSI device support | 366 | # SCSI device support |
387 | # | 367 | # |
388 | # CONFIG_RAID_ATTRS is not set | 368 | # CONFIG_RAID_ATTRS is not set |
389 | CONFIG_SCSI=y | 369 | CONFIG_SCSI=y |
370 | # CONFIG_SCSI_DMA is not set | ||
390 | # CONFIG_SCSI_TGT is not set | 371 | # CONFIG_SCSI_TGT is not set |
391 | CONFIG_SCSI_NETLINK=y | 372 | CONFIG_SCSI_NETLINK=y |
392 | CONFIG_SCSI_PROC_FS=y | 373 | CONFIG_SCSI_PROC_FS=y |
@@ -447,40 +428,21 @@ CONFIG_DM_MIRROR=y | |||
447 | CONFIG_DM_ZERO=y | 428 | CONFIG_DM_ZERO=y |
448 | CONFIG_DM_MULTIPATH=y | 429 | CONFIG_DM_MULTIPATH=y |
449 | # CONFIG_DM_MULTIPATH_EMC is not set | 430 | # CONFIG_DM_MULTIPATH_EMC is not set |
431 | # CONFIG_DM_MULTIPATH_RDAC is not set | ||
450 | # CONFIG_DM_DELAY is not set | 432 | # CONFIG_DM_DELAY is not set |
451 | |||
452 | # | ||
453 | # Network device support | ||
454 | # | ||
455 | CONFIG_NETDEVICES=y | 433 | CONFIG_NETDEVICES=y |
434 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
435 | # CONFIG_IFB is not set | ||
456 | CONFIG_DUMMY=m | 436 | CONFIG_DUMMY=m |
457 | CONFIG_BONDING=m | 437 | CONFIG_BONDING=m |
438 | # CONFIG_MACVLAN is not set | ||
458 | CONFIG_EQUALIZER=m | 439 | CONFIG_EQUALIZER=m |
459 | CONFIG_TUN=m | 440 | CONFIG_TUN=m |
460 | |||
461 | # | ||
462 | # Ethernet (10 or 100Mbit) | ||
463 | # | ||
464 | CONFIG_NET_ETHERNET=y | 441 | CONFIG_NET_ETHERNET=y |
465 | # CONFIG_MII is not set | 442 | # CONFIG_MII is not set |
466 | 443 | CONFIG_NETDEV_1000=y | |
467 | # | 444 | CONFIG_NETDEV_10000=y |
468 | # Ethernet (1000 Mbit) | ||
469 | # | ||
470 | |||
471 | # | ||
472 | # Ethernet (10000 Mbit) | ||
473 | # | ||
474 | CONFIG_MLX4_DEBUG=y | ||
475 | |||
476 | # | ||
477 | # Token Ring devices | ||
478 | # | ||
479 | # CONFIG_TR is not set | 445 | # CONFIG_TR is not set |
480 | |||
481 | # | ||
482 | # Wan interfaces | ||
483 | # | ||
484 | # CONFIG_WAN is not set | 446 | # CONFIG_WAN is not set |
485 | 447 | ||
486 | # | 448 | # |
@@ -511,10 +473,6 @@ CONFIG_CCWGROUP=y | |||
511 | CONFIG_UNIX98_PTYS=y | 473 | CONFIG_UNIX98_PTYS=y |
512 | CONFIG_LEGACY_PTYS=y | 474 | CONFIG_LEGACY_PTYS=y |
513 | CONFIG_LEGACY_PTY_COUNT=256 | 475 | CONFIG_LEGACY_PTY_COUNT=256 |
514 | |||
515 | # | ||
516 | # Watchdog Cards | ||
517 | # | ||
518 | # CONFIG_WATCHDOG is not set | 476 | # CONFIG_WATCHDOG is not set |
519 | CONFIG_HW_RANDOM=m | 477 | CONFIG_HW_RANDOM=m |
520 | # CONFIG_R3964 is not set | 478 | # CONFIG_R3964 is not set |
@@ -554,6 +512,8 @@ CONFIG_S390_TAPE_34XX=m | |||
554 | # CONFIG_VMCP is not set | 512 | # CONFIG_VMCP is not set |
555 | # CONFIG_MONREADER is not set | 513 | # CONFIG_MONREADER is not set |
556 | CONFIG_MONWRITER=m | 514 | CONFIG_MONWRITER=m |
515 | CONFIG_S390_VMUR=m | ||
516 | # CONFIG_POWER_SUPPLY is not set | ||
557 | 517 | ||
558 | # | 518 | # |
559 | # File systems | 519 | # File systems |
@@ -655,7 +615,6 @@ CONFIG_SUNRPC=y | |||
655 | # CONFIG_NCP_FS is not set | 615 | # CONFIG_NCP_FS is not set |
656 | # CONFIG_CODA_FS is not set | 616 | # CONFIG_CODA_FS is not set |
657 | # CONFIG_AFS_FS is not set | 617 | # CONFIG_AFS_FS is not set |
658 | # CONFIG_9P_FS is not set | ||
659 | 618 | ||
660 | # | 619 | # |
661 | # Partition Types | 620 | # Partition Types |
@@ -712,6 +671,7 @@ CONFIG_MAGIC_SYSRQ=y | |||
712 | CONFIG_DEBUG_FS=y | 671 | CONFIG_DEBUG_FS=y |
713 | CONFIG_HEADERS_CHECK=y | 672 | CONFIG_HEADERS_CHECK=y |
714 | CONFIG_DEBUG_KERNEL=y | 673 | CONFIG_DEBUG_KERNEL=y |
674 | # CONFIG_SCHED_DEBUG is not set | ||
715 | # CONFIG_SCHEDSTATS is not set | 675 | # CONFIG_SCHEDSTATS is not set |
716 | # CONFIG_TIMER_STATS is not set | 676 | # CONFIG_TIMER_STATS is not set |
717 | # CONFIG_DEBUG_SLAB is not set | 677 | # CONFIG_DEBUG_SLAB is not set |
@@ -740,10 +700,6 @@ CONFIG_FORCED_INLINING=y | |||
740 | # | 700 | # |
741 | # CONFIG_KEYS is not set | 701 | # CONFIG_KEYS is not set |
742 | # CONFIG_SECURITY is not set | 702 | # CONFIG_SECURITY is not set |
743 | |||
744 | # | ||
745 | # Cryptographic options | ||
746 | # | ||
747 | CONFIG_CRYPTO=y | 703 | CONFIG_CRYPTO=y |
748 | CONFIG_CRYPTO_ALGAPI=y | 704 | CONFIG_CRYPTO_ALGAPI=y |
749 | CONFIG_CRYPTO_BLKCIPHER=y | 705 | CONFIG_CRYPTO_BLKCIPHER=y |
@@ -782,10 +738,7 @@ CONFIG_CRYPTO_FCRYPT=m | |||
782 | # CONFIG_CRYPTO_CRC32C is not set | 738 | # CONFIG_CRYPTO_CRC32C is not set |
783 | CONFIG_CRYPTO_CAMELLIA=m | 739 | CONFIG_CRYPTO_CAMELLIA=m |
784 | # CONFIG_CRYPTO_TEST is not set | 740 | # CONFIG_CRYPTO_TEST is not set |
785 | 741 | CONFIG_CRYPTO_HW=y | |
786 | # | ||
787 | # Hardware crypto devices | ||
788 | # | ||
789 | # CONFIG_CRYPTO_SHA1_S390 is not set | 742 | # CONFIG_CRYPTO_SHA1_S390 is not set |
790 | # CONFIG_CRYPTO_SHA256_S390 is not set | 743 | # CONFIG_CRYPTO_SHA256_S390 is not set |
791 | # CONFIG_CRYPTO_DES_S390 is not set | 744 | # CONFIG_CRYPTO_DES_S390 is not set |
@@ -800,6 +753,7 @@ CONFIG_ZCRYPT=m | |||
800 | CONFIG_BITREVERSE=m | 753 | CONFIG_BITREVERSE=m |
801 | # CONFIG_CRC_CCITT is not set | 754 | # CONFIG_CRC_CCITT is not set |
802 | # CONFIG_CRC16 is not set | 755 | # CONFIG_CRC16 is not set |
756 | # CONFIG_CRC_ITU_T is not set | ||
803 | CONFIG_CRC32=m | 757 | CONFIG_CRC32=m |
804 | # CONFIG_LIBCRC32C is not set | 758 | # CONFIG_LIBCRC32C is not set |
805 | CONFIG_PLIST=y | 759 | CONFIG_PLIST=y |
diff --git a/arch/s390/kernel/dis.c b/arch/s390/kernel/dis.c index a057ebf108a7..d3057318f2bf 100644 --- a/arch/s390/kernel/dis.c +++ b/arch/s390/kernel/dis.c | |||
@@ -240,8 +240,8 @@ static const unsigned char formats[][7] = { | |||
240 | [INSTR_RXY_FRRD] = { 0xff, F_8,D20_20,X_12,B_16,0,0 },/* e.g. ley */ | 240 | [INSTR_RXY_FRRD] = { 0xff, F_8,D20_20,X_12,B_16,0,0 },/* e.g. ley */ |
241 | [INSTR_RX_FRRD] = { 0xff, F_8,D_20,X_12,B_16,0,0 }, /* e.g. ae */ | 241 | [INSTR_RX_FRRD] = { 0xff, F_8,D_20,X_12,B_16,0,0 }, /* e.g. ae */ |
242 | [INSTR_RX_RRRD] = { 0xff, R_8,D_20,X_12,B_16,0,0 }, /* e.g. l */ | 242 | [INSTR_RX_RRRD] = { 0xff, R_8,D_20,X_12,B_16,0,0 }, /* e.g. l */ |
243 | [INSTR_RX_URRD] = { 0x00, U4_8,D_20,X_12,B_16,0,0 }, /* e.g. bc */ | 243 | [INSTR_RX_URRD] = { 0xff, U4_8,D_20,X_12,B_16,0,0 }, /* e.g. bc */ |
244 | [INSTR_SI_URD] = { 0x00, D_20,B_16,U8_8,0,0,0 }, /* e.g. cli */ | 244 | [INSTR_SI_URD] = { 0xff, D_20,B_16,U8_8,0,0,0 }, /* e.g. cli */ |
245 | [INSTR_SIY_URD] = { 0xff, D20_20,B_16,U8_8,0,0,0 }, /* e.g. tmy */ | 245 | [INSTR_SIY_URD] = { 0xff, D20_20,B_16,U8_8,0,0,0 }, /* e.g. tmy */ |
246 | [INSTR_SSE_RDRD] = { 0xff, D_20,B_16,D_36,B_32,0,0 }, /* e.g. mvsdk */ | 246 | [INSTR_SSE_RDRD] = { 0xff, D_20,B_16,D_36,B_32,0,0 }, /* e.g. mvsdk */ |
247 | [INSTR_SS_L0RDRD] = { 0xff, D_20,L8_8,B_16,D_36,B_32,0 }, | 247 | [INSTR_SS_L0RDRD] = { 0xff, D_20,L8_8,B_16,D_36,B_32,0 }, |
@@ -1190,7 +1190,8 @@ static int print_insn(char *buffer, unsigned char *code, unsigned long addr) | |||
1190 | else if (operand->flags & OPERAND_CR) | 1190 | else if (operand->flags & OPERAND_CR) |
1191 | ptr += sprintf(ptr, "%%c%i", value); | 1191 | ptr += sprintf(ptr, "%%c%i", value); |
1192 | else if (operand->flags & OPERAND_PCREL) | 1192 | else if (operand->flags & OPERAND_PCREL) |
1193 | ptr += sprintf(ptr, "%lx", value + addr); | 1193 | ptr += sprintf(ptr, "%lx", (signed int) value |
1194 | + addr); | ||
1194 | else if (operand->flags & OPERAND_SIGNED) | 1195 | else if (operand->flags & OPERAND_SIGNED) |
1195 | ptr += sprintf(ptr, "%i", value); | 1196 | ptr += sprintf(ptr, "%i", value); |
1196 | else | 1197 | else |
diff --git a/arch/s390/kernel/stacktrace.c b/arch/s390/kernel/stacktrace.c index 515ff9011dd7..da6924729964 100644 --- a/arch/s390/kernel/stacktrace.c +++ b/arch/s390/kernel/stacktrace.c | |||
@@ -12,7 +12,6 @@ | |||
12 | #include <linux/kallsyms.h> | 12 | #include <linux/kallsyms.h> |
13 | 13 | ||
14 | static unsigned long save_context_stack(struct stack_trace *trace, | 14 | static unsigned long save_context_stack(struct stack_trace *trace, |
15 | unsigned int *skip, | ||
16 | unsigned long sp, | 15 | unsigned long sp, |
17 | unsigned long low, | 16 | unsigned long low, |
18 | unsigned long high) | 17 | unsigned long high) |
@@ -28,10 +27,10 @@ static unsigned long save_context_stack(struct stack_trace *trace, | |||
28 | sf = (struct stack_frame *)sp; | 27 | sf = (struct stack_frame *)sp; |
29 | while(1) { | 28 | while(1) { |
30 | addr = sf->gprs[8] & PSW_ADDR_INSN; | 29 | addr = sf->gprs[8] & PSW_ADDR_INSN; |
31 | if (!(*skip)) | 30 | if (!trace->skip) |
32 | trace->entries[trace->nr_entries++] = addr; | 31 | trace->entries[trace->nr_entries++] = addr; |
33 | else | 32 | else |
34 | (*skip)--; | 33 | trace->skip--; |
35 | if (trace->nr_entries >= trace->max_entries) | 34 | if (trace->nr_entries >= trace->max_entries) |
36 | return sp; | 35 | return sp; |
37 | low = sp; | 36 | low = sp; |
@@ -48,10 +47,10 @@ static unsigned long save_context_stack(struct stack_trace *trace, | |||
48 | return sp; | 47 | return sp; |
49 | regs = (struct pt_regs *)sp; | 48 | regs = (struct pt_regs *)sp; |
50 | addr = regs->psw.addr & PSW_ADDR_INSN; | 49 | addr = regs->psw.addr & PSW_ADDR_INSN; |
51 | if (!(*skip)) | 50 | if (!trace->skip) |
52 | trace->entries[trace->nr_entries++] = addr; | 51 | trace->entries[trace->nr_entries++] = addr; |
53 | else | 52 | else |
54 | (*skip)--; | 53 | trace->skip--; |
55 | if (trace->nr_entries >= trace->max_entries) | 54 | if (trace->nr_entries >= trace->max_entries) |
56 | return sp; | 55 | return sp; |
57 | low = sp; | 56 | low = sp; |
@@ -65,20 +64,17 @@ void save_stack_trace(struct stack_trace *trace) | |||
65 | unsigned long orig_sp, new_sp; | 64 | unsigned long orig_sp, new_sp; |
66 | 65 | ||
67 | orig_sp = sp & PSW_ADDR_INSN; | 66 | orig_sp = sp & PSW_ADDR_INSN; |
68 | 67 | new_sp = save_context_stack(trace, orig_sp, | |
69 | new_sp = save_context_stack(trace, &trace->skip, orig_sp, | 68 | S390_lowcore.panic_stack - PAGE_SIZE, |
70 | S390_lowcore.panic_stack - PAGE_SIZE, | 69 | S390_lowcore.panic_stack); |
71 | S390_lowcore.panic_stack); | ||
72 | if (new_sp != orig_sp) | 70 | if (new_sp != orig_sp) |
73 | return; | 71 | return; |
74 | new_sp = save_context_stack(trace, &trace->skip, new_sp, | 72 | new_sp = save_context_stack(trace, new_sp, |
75 | S390_lowcore.async_stack - ASYNC_SIZE, | 73 | S390_lowcore.async_stack - ASYNC_SIZE, |
76 | S390_lowcore.async_stack); | 74 | S390_lowcore.async_stack); |
77 | if (new_sp != orig_sp) | 75 | if (new_sp != orig_sp) |
78 | return; | 76 | return; |
79 | 77 | save_context_stack(trace, new_sp, | |
80 | save_context_stack(trace, &trace->skip, new_sp, | ||
81 | S390_lowcore.thread_info, | 78 | S390_lowcore.thread_info, |
82 | S390_lowcore.thread_info + THREAD_SIZE); | 79 | S390_lowcore.thread_info + THREAD_SIZE); |
83 | return; | ||
84 | } | 80 | } |