diff options
| -rw-r--r-- | arch/s390/defconfig | 47 | ||||
| -rw-r--r-- | arch/s390/hypfs/hypfs_diag.c | 4 | ||||
| -rw-r--r-- | arch/s390/kernel/ipl.c | 59 | ||||
| -rw-r--r-- | arch/s390/kernel/reipl.S | 6 | ||||
| -rw-r--r-- | arch/s390/kernel/reipl64.S | 5 | ||||
| -rw-r--r-- | arch/s390/kernel/reset.S | 42 | ||||
| -rw-r--r-- | drivers/s390/char/sclp_cpi.c | 2 | ||||
| -rw-r--r-- | drivers/s390/cio/cio.c | 25 | ||||
| -rw-r--r-- | drivers/s390/cio/css.c | 3 | ||||
| -rw-r--r-- | drivers/s390/cio/qdio.c | 13 | ||||
| -rw-r--r-- | drivers/s390/crypto/ap_bus.c | 14 | ||||
| -rw-r--r-- | include/asm-s390/qdio.h | 1 | ||||
| -rw-r--r-- | include/asm-s390/reset.h | 1 |
13 files changed, 150 insertions, 72 deletions
diff --git a/arch/s390/defconfig b/arch/s390/defconfig index a6ec919ba83f..5368cf4a350e 100644 --- a/arch/s390/defconfig +++ b/arch/s390/defconfig | |||
| @@ -1,14 +1,15 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.19-rc2 | 3 | # Linux kernel version: 2.6.20-rc1 |
| 4 | # Wed Oct 18 17:11:10 2006 | 4 | # Fri Dec 15 16:52:28 2006 |
| 5 | # | 5 | # |
| 6 | CONFIG_MMU=y | 6 | CONFIG_MMU=y |
| 7 | CONFIG_LOCKDEP_SUPPORT=y | 7 | CONFIG_LOCKDEP_SUPPORT=y |
| 8 | CONFIG_STACKTRACE_SUPPORT=y | 8 | CONFIG_STACKTRACE_SUPPORT=y |
| 9 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 9 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
| 10 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
| 11 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
| 10 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
| 11 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
| 12 | CONFIG_GENERIC_TIME=y | 13 | CONFIG_GENERIC_TIME=y |
| 13 | CONFIG_S390=y | 14 | CONFIG_S390=y |
| 14 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 15 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
| @@ -37,12 +38,13 @@ CONFIG_AUDIT=y | |||
| 37 | CONFIG_IKCONFIG=y | 38 | CONFIG_IKCONFIG=y |
| 38 | CONFIG_IKCONFIG_PROC=y | 39 | CONFIG_IKCONFIG_PROC=y |
| 39 | # CONFIG_CPUSETS is not set | 40 | # CONFIG_CPUSETS is not set |
| 41 | CONFIG_SYSFS_DEPRECATED=y | ||
| 40 | # CONFIG_RELAY is not set | 42 | # CONFIG_RELAY is not set |
| 41 | CONFIG_INITRAMFS_SOURCE="" | 43 | CONFIG_INITRAMFS_SOURCE="" |
| 42 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 44 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
| 43 | CONFIG_SYSCTL=y | 45 | CONFIG_SYSCTL=y |
| 44 | # CONFIG_EMBEDDED is not set | 46 | # CONFIG_EMBEDDED is not set |
| 45 | # CONFIG_SYSCTL_SYSCALL is not set | 47 | CONFIG_SYSCTL_SYSCALL=y |
| 46 | CONFIG_KALLSYMS=y | 48 | CONFIG_KALLSYMS=y |
| 47 | # CONFIG_KALLSYMS_ALL is not set | 49 | # CONFIG_KALLSYMS_ALL is not set |
| 48 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 50 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
| @@ -119,6 +121,7 @@ CONFIG_PACK_STACK=y | |||
| 119 | CONFIG_CHECK_STACK=y | 121 | CONFIG_CHECK_STACK=y |
| 120 | CONFIG_STACK_GUARD=256 | 122 | CONFIG_STACK_GUARD=256 |
| 121 | # CONFIG_WARN_STACK is not set | 123 | # CONFIG_WARN_STACK is not set |
| 124 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
| 122 | CONFIG_SELECT_MEMORY_MODEL=y | 125 | CONFIG_SELECT_MEMORY_MODEL=y |
| 123 | CONFIG_FLATMEM_MANUAL=y | 126 | CONFIG_FLATMEM_MANUAL=y |
| 124 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 127 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
| @@ -128,6 +131,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
| 128 | # CONFIG_SPARSEMEM_STATIC is not set | 131 | # CONFIG_SPARSEMEM_STATIC is not set |
| 129 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 132 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
| 130 | CONFIG_RESOURCES_64BIT=y | 133 | CONFIG_RESOURCES_64BIT=y |
| 134 | CONFIG_HOLES_IN_ZONE=y | ||
| 131 | 135 | ||
| 132 | # | 136 | # |
| 133 | # I/O subsystem configuration | 137 | # I/O subsystem configuration |
| @@ -196,6 +200,7 @@ CONFIG_INET_TCP_DIAG=y | |||
| 196 | # CONFIG_TCP_CONG_ADVANCED is not set | 200 | # CONFIG_TCP_CONG_ADVANCED is not set |
| 197 | CONFIG_TCP_CONG_CUBIC=y | 201 | CONFIG_TCP_CONG_CUBIC=y |
| 198 | CONFIG_DEFAULT_TCP_CONG="cubic" | 202 | CONFIG_DEFAULT_TCP_CONG="cubic" |
| 203 | # CONFIG_TCP_MD5SIG is not set | ||
| 199 | CONFIG_IPV6=y | 204 | CONFIG_IPV6=y |
| 200 | # CONFIG_IPV6_PRIVACY is not set | 205 | # CONFIG_IPV6_PRIVACY is not set |
| 201 | # CONFIG_IPV6_ROUTER_PREF is not set | 206 | # CONFIG_IPV6_ROUTER_PREF is not set |
| @@ -211,7 +216,6 @@ CONFIG_INET6_XFRM_MODE_BEET=y | |||
| 211 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 216 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
| 212 | CONFIG_IPV6_SIT=y | 217 | CONFIG_IPV6_SIT=y |
| 213 | # CONFIG_IPV6_TUNNEL is not set | 218 | # CONFIG_IPV6_TUNNEL is not set |
| 214 | # CONFIG_IPV6_SUBTREES is not set | ||
| 215 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 219 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
| 216 | # CONFIG_NETWORK_SECMARK is not set | 220 | # CONFIG_NETWORK_SECMARK is not set |
| 217 | # CONFIG_NETFILTER is not set | 221 | # CONFIG_NETFILTER is not set |
| @@ -246,6 +250,7 @@ CONFIG_IPV6_SIT=y | |||
| 246 | # QoS and/or fair queueing | 250 | # QoS and/or fair queueing |
| 247 | # | 251 | # |
| 248 | CONFIG_NET_SCHED=y | 252 | CONFIG_NET_SCHED=y |
| 253 | CONFIG_NET_SCH_FIFO=y | ||
| 249 | CONFIG_NET_SCH_CLK_JIFFIES=y | 254 | CONFIG_NET_SCH_CLK_JIFFIES=y |
| 250 | # CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set | 255 | # CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set |
| 251 | # CONFIG_NET_SCH_CLK_CPU is not set | 256 | # CONFIG_NET_SCH_CLK_CPU is not set |
| @@ -277,6 +282,7 @@ CONFIG_NET_CLS_ROUTE=y | |||
| 277 | CONFIG_NET_CLS_FW=m | 282 | CONFIG_NET_CLS_FW=m |
| 278 | CONFIG_NET_CLS_U32=m | 283 | CONFIG_NET_CLS_U32=m |
| 279 | # CONFIG_CLS_U32_PERF is not set | 284 | # CONFIG_CLS_U32_PERF is not set |
| 285 | CONFIG_CLS_U32_MARK=y | ||
| 280 | CONFIG_NET_CLS_RSVP=m | 286 | CONFIG_NET_CLS_RSVP=m |
| 281 | CONFIG_NET_CLS_RSVP6=m | 287 | CONFIG_NET_CLS_RSVP6=m |
| 282 | # CONFIG_NET_EMATCH is not set | 288 | # CONFIG_NET_EMATCH is not set |
| @@ -315,6 +321,7 @@ CONFIG_SYS_HYPERVISOR=y | |||
| 315 | # | 321 | # |
| 316 | # CONFIG_RAID_ATTRS is not set | 322 | # CONFIG_RAID_ATTRS is not set |
| 317 | CONFIG_SCSI=y | 323 | CONFIG_SCSI=y |
| 324 | # CONFIG_SCSI_TGT is not set | ||
| 318 | CONFIG_SCSI_NETLINK=y | 325 | CONFIG_SCSI_NETLINK=y |
| 319 | CONFIG_SCSI_PROC_FS=y | 326 | CONFIG_SCSI_PROC_FS=y |
| 320 | 327 | ||
| @@ -335,6 +342,7 @@ CONFIG_CHR_DEV_SG=y | |||
| 335 | CONFIG_SCSI_MULTI_LUN=y | 342 | CONFIG_SCSI_MULTI_LUN=y |
| 336 | CONFIG_SCSI_CONSTANTS=y | 343 | CONFIG_SCSI_CONSTANTS=y |
| 337 | CONFIG_SCSI_LOGGING=y | 344 | CONFIG_SCSI_LOGGING=y |
| 345 | CONFIG_SCSI_SCAN_ASYNC=y | ||
| 338 | 346 | ||
| 339 | # | 347 | # |
| 340 | # SCSI Transports | 348 | # SCSI Transports |
| @@ -546,6 +554,7 @@ CONFIG_DNOTIFY=y | |||
| 546 | # CONFIG_AUTOFS_FS is not set | 554 | # CONFIG_AUTOFS_FS is not set |
| 547 | # CONFIG_AUTOFS4_FS is not set | 555 | # CONFIG_AUTOFS4_FS is not set |
| 548 | # CONFIG_FUSE_FS is not set | 556 | # CONFIG_FUSE_FS is not set |
| 557 | CONFIG_GENERIC_ACL=y | ||
| 549 | 558 | ||
| 550 | # | 559 | # |
| 551 | # CD-ROM/DVD Filesystems | 560 | # CD-ROM/DVD Filesystems |
| @@ -571,7 +580,7 @@ CONFIG_TMPFS=y | |||
| 571 | CONFIG_TMPFS_POSIX_ACL=y | 580 | CONFIG_TMPFS_POSIX_ACL=y |
| 572 | # CONFIG_HUGETLB_PAGE is not set | 581 | # CONFIG_HUGETLB_PAGE is not set |
| 573 | CONFIG_RAMFS=y | 582 | CONFIG_RAMFS=y |
| 574 | # CONFIG_CONFIGFS_FS is not set | 583 | CONFIG_CONFIGFS_FS=m |
| 575 | 584 | ||
| 576 | # | 585 | # |
| 577 | # Miscellaneous filesystems | 586 | # Miscellaneous filesystems |
| @@ -616,7 +625,6 @@ CONFIG_SUNRPC=y | |||
| 616 | # CONFIG_CODA_FS is not set | 625 | # CONFIG_CODA_FS is not set |
| 617 | # CONFIG_AFS_FS is not set | 626 | # CONFIG_AFS_FS is not set |
| 618 | # CONFIG_9P_FS is not set | 627 | # CONFIG_9P_FS is not set |
| 619 | CONFIG_GENERIC_ACL=y | ||
| 620 | 628 | ||
| 621 | # | 629 | # |
| 622 | # Partition Types | 630 | # Partition Types |
| @@ -646,6 +654,14 @@ CONFIG_MSDOS_PARTITION=y | |||
| 646 | # CONFIG_NLS is not set | 654 | # CONFIG_NLS is not set |
| 647 | 655 | ||
| 648 | # | 656 | # |
| 657 | # Distributed Lock Manager | ||
| 658 | # | ||
| 659 | CONFIG_DLM=m | ||
| 660 | CONFIG_DLM_TCP=y | ||
| 661 | # CONFIG_DLM_SCTP is not set | ||
| 662 | # CONFIG_DLM_DEBUG is not set | ||
| 663 | |||
| 664 | # | ||
| 649 | # Instrumentation Support | 665 | # Instrumentation Support |
| 650 | # | 666 | # |
| 651 | 667 | ||
| @@ -663,6 +679,8 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y | |||
| 663 | CONFIG_ENABLE_MUST_CHECK=y | 679 | CONFIG_ENABLE_MUST_CHECK=y |
| 664 | CONFIG_MAGIC_SYSRQ=y | 680 | CONFIG_MAGIC_SYSRQ=y |
| 665 | # CONFIG_UNUSED_SYMBOLS is not set | 681 | # CONFIG_UNUSED_SYMBOLS is not set |
| 682 | CONFIG_DEBUG_FS=y | ||
| 683 | CONFIG_HEADERS_CHECK=y | ||
| 666 | CONFIG_DEBUG_KERNEL=y | 684 | CONFIG_DEBUG_KERNEL=y |
| 667 | CONFIG_LOG_BUF_SHIFT=17 | 685 | CONFIG_LOG_BUF_SHIFT=17 |
| 668 | # CONFIG_SCHEDSTATS is not set | 686 | # CONFIG_SCHEDSTATS is not set |
| @@ -679,13 +697,11 @@ CONFIG_DEBUG_SPINLOCK_SLEEP=y | |||
| 679 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 697 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
| 680 | # CONFIG_DEBUG_KOBJECT is not set | 698 | # CONFIG_DEBUG_KOBJECT is not set |
| 681 | # CONFIG_DEBUG_INFO is not set | 699 | # CONFIG_DEBUG_INFO is not set |
| 682 | CONFIG_DEBUG_FS=y | ||
| 683 | # CONFIG_DEBUG_VM is not set | 700 | # CONFIG_DEBUG_VM is not set |
| 684 | # CONFIG_DEBUG_LIST is not set | 701 | # CONFIG_DEBUG_LIST is not set |
| 685 | # CONFIG_FRAME_POINTER is not set | 702 | # CONFIG_FRAME_POINTER is not set |
| 686 | # CONFIG_UNWIND_INFO is not set | 703 | # CONFIG_UNWIND_INFO is not set |
| 687 | CONFIG_FORCED_INLINING=y | 704 | CONFIG_FORCED_INLINING=y |
| 688 | CONFIG_HEADERS_CHECK=y | ||
| 689 | # CONFIG_RCU_TORTURE_TEST is not set | 705 | # CONFIG_RCU_TORTURE_TEST is not set |
| 690 | # CONFIG_LKDTM is not set | 706 | # CONFIG_LKDTM is not set |
| 691 | 707 | ||
| @@ -699,10 +715,11 @@ CONFIG_HEADERS_CHECK=y | |||
| 699 | # Cryptographic options | 715 | # Cryptographic options |
| 700 | # | 716 | # |
| 701 | CONFIG_CRYPTO=y | 717 | CONFIG_CRYPTO=y |
| 702 | CONFIG_CRYPTO_ALGAPI=m | 718 | CONFIG_CRYPTO_ALGAPI=y |
| 703 | CONFIG_CRYPTO_BLKCIPHER=m | 719 | CONFIG_CRYPTO_BLKCIPHER=y |
| 704 | CONFIG_CRYPTO_MANAGER=m | 720 | CONFIG_CRYPTO_MANAGER=y |
| 705 | # CONFIG_CRYPTO_HMAC is not set | 721 | # CONFIG_CRYPTO_HMAC is not set |
| 722 | # CONFIG_CRYPTO_XCBC is not set | ||
| 706 | # CONFIG_CRYPTO_NULL is not set | 723 | # CONFIG_CRYPTO_NULL is not set |
| 707 | # CONFIG_CRYPTO_MD4 is not set | 724 | # CONFIG_CRYPTO_MD4 is not set |
| 708 | # CONFIG_CRYPTO_MD5 is not set | 725 | # CONFIG_CRYPTO_MD5 is not set |
| @@ -713,8 +730,10 @@ CONFIG_CRYPTO_MANAGER=m | |||
| 713 | # CONFIG_CRYPTO_SHA512 is not set | 730 | # CONFIG_CRYPTO_SHA512 is not set |
| 714 | # CONFIG_CRYPTO_WP512 is not set | 731 | # CONFIG_CRYPTO_WP512 is not set |
| 715 | # CONFIG_CRYPTO_TGR192 is not set | 732 | # CONFIG_CRYPTO_TGR192 is not set |
| 733 | # CONFIG_CRYPTO_GF128MUL is not set | ||
| 716 | CONFIG_CRYPTO_ECB=m | 734 | CONFIG_CRYPTO_ECB=m |
| 717 | CONFIG_CRYPTO_CBC=m | 735 | CONFIG_CRYPTO_CBC=y |
| 736 | # CONFIG_CRYPTO_LRW is not set | ||
| 718 | # CONFIG_CRYPTO_DES is not set | 737 | # CONFIG_CRYPTO_DES is not set |
| 719 | # CONFIG_CRYPTO_DES_S390 is not set | 738 | # CONFIG_CRYPTO_DES_S390 is not set |
| 720 | # CONFIG_CRYPTO_BLOWFISH is not set | 739 | # CONFIG_CRYPTO_BLOWFISH is not set |
| @@ -740,8 +759,10 @@ CONFIG_CRYPTO_CBC=m | |||
| 740 | # | 759 | # |
| 741 | # Library routines | 760 | # Library routines |
| 742 | # | 761 | # |
| 762 | CONFIG_BITREVERSE=m | ||
| 743 | # CONFIG_CRC_CCITT is not set | 763 | # CONFIG_CRC_CCITT is not set |
| 744 | # CONFIG_CRC16 is not set | 764 | # CONFIG_CRC16 is not set |
| 745 | CONFIG_CRC32=m | 765 | CONFIG_CRC32=m |
| 746 | # CONFIG_LIBCRC32C is not set | 766 | # CONFIG_LIBCRC32C is not set |
| 747 | CONFIG_PLIST=y | 767 | CONFIG_PLIST=y |
| 768 | CONFIG_IOMAP_COPY=y | ||
diff --git a/arch/s390/hypfs/hypfs_diag.c b/arch/s390/hypfs/hypfs_diag.c index 443fa377d9ff..2782cf9da5b4 100644 --- a/arch/s390/hypfs/hypfs_diag.c +++ b/arch/s390/hypfs/hypfs_diag.c | |||
| @@ -379,7 +379,7 @@ static void *diag204_alloc_vbuf(int pages) | |||
| 379 | static void *diag204_alloc_rbuf(void) | 379 | static void *diag204_alloc_rbuf(void) |
| 380 | { | 380 | { |
| 381 | diag204_buf = (void*)__get_free_pages(GFP_KERNEL,0); | 381 | diag204_buf = (void*)__get_free_pages(GFP_KERNEL,0); |
| 382 | if (diag204_buf) | 382 | if (!diag204_buf) |
| 383 | return ERR_PTR(-ENOMEM); | 383 | return ERR_PTR(-ENOMEM); |
| 384 | diag204_buf_pages = 1; | 384 | diag204_buf_pages = 1; |
| 385 | return diag204_buf; | 385 | return diag204_buf; |
| @@ -521,7 +521,7 @@ __init int hypfs_diag_init(void) | |||
| 521 | } | 521 | } |
| 522 | rc = diag224_get_name_table(); | 522 | rc = diag224_get_name_table(); |
| 523 | if (rc) { | 523 | if (rc) { |
| 524 | diag224_delete_name_table(); | 524 | diag204_free_buffer(); |
| 525 | printk(KERN_ERR "hypfs: could not get name table.\n"); | 525 | printk(KERN_ERR "hypfs: could not get name table.\n"); |
| 526 | } | 526 | } |
| 527 | return rc; | 527 | return rc; |
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c index a36bea1188d9..9e9972e8a52b 100644 --- a/arch/s390/kernel/ipl.c +++ b/arch/s390/kernel/ipl.c | |||
| @@ -609,42 +609,12 @@ static ssize_t on_panic_store(struct subsystem *subsys, const char *buf, | |||
| 609 | static struct subsys_attribute on_panic_attr = | 609 | static struct subsys_attribute on_panic_attr = |
| 610 | __ATTR(on_panic, 0644, on_panic_show, on_panic_store); | 610 | __ATTR(on_panic, 0644, on_panic_show, on_panic_store); |
| 611 | 611 | ||
| 612 | static void print_fcp_block(struct ipl_parameter_block *fcp_block) | ||
| 613 | { | ||
| 614 | printk(KERN_EMERG "wwpn: %016llx\n", | ||
| 615 | (unsigned long long)fcp_block->ipl_info.fcp.wwpn); | ||
| 616 | printk(KERN_EMERG "lun: %016llx\n", | ||
| 617 | (unsigned long long)fcp_block->ipl_info.fcp.lun); | ||
| 618 | printk(KERN_EMERG "bootprog: %lld\n", | ||
| 619 | (unsigned long long)fcp_block->ipl_info.fcp.bootprog); | ||
| 620 | printk(KERN_EMERG "br_lba: %lld\n", | ||
| 621 | (unsigned long long)fcp_block->ipl_info.fcp.br_lba); | ||
| 622 | printk(KERN_EMERG "device: %llx\n", | ||
| 623 | (unsigned long long)fcp_block->ipl_info.fcp.devno); | ||
| 624 | printk(KERN_EMERG "opt: %x\n", fcp_block->ipl_info.fcp.opt); | ||
| 625 | } | ||
| 626 | |||
| 627 | void do_reipl(void) | 612 | void do_reipl(void) |
| 628 | { | 613 | { |
| 629 | struct ccw_dev_id devid; | 614 | struct ccw_dev_id devid; |
| 630 | static char buf[100]; | 615 | static char buf[100]; |
| 631 | char loadparm[LOADPARM_LEN + 1]; | 616 | char loadparm[LOADPARM_LEN + 1]; |
| 632 | 617 | ||
| 633 | switch (reipl_type) { | ||
| 634 | case IPL_TYPE_CCW: | ||
| 635 | reipl_get_ascii_loadparm(loadparm); | ||
| 636 | printk(KERN_EMERG "reboot on ccw device: 0.0.%04x\n", | ||
| 637 | reipl_block_ccw->ipl_info.ccw.devno); | ||
| 638 | printk(KERN_EMERG "loadparm = '%s'\n", loadparm); | ||
| 639 | break; | ||
| 640 | case IPL_TYPE_FCP: | ||
| 641 | printk(KERN_EMERG "reboot on fcp device:\n"); | ||
| 642 | print_fcp_block(reipl_block_fcp); | ||
| 643 | break; | ||
| 644 | default: | ||
| 645 | break; | ||
| 646 | } | ||
| 647 | |||
| 648 | switch (reipl_method) { | 618 | switch (reipl_method) { |
| 649 | case IPL_METHOD_CCW_CIO: | 619 | case IPL_METHOD_CCW_CIO: |
| 650 | devid.devno = reipl_block_ccw->ipl_info.ccw.devno; | 620 | devid.devno = reipl_block_ccw->ipl_info.ccw.devno; |
| @@ -654,6 +624,7 @@ void do_reipl(void) | |||
| 654 | reipl_ccw_dev(&devid); | 624 | reipl_ccw_dev(&devid); |
| 655 | break; | 625 | break; |
| 656 | case IPL_METHOD_CCW_VM: | 626 | case IPL_METHOD_CCW_VM: |
| 627 | reipl_get_ascii_loadparm(loadparm); | ||
| 657 | if (strlen(loadparm) == 0) | 628 | if (strlen(loadparm) == 0) |
| 658 | sprintf(buf, "IPL %X", | 629 | sprintf(buf, "IPL %X", |
| 659 | reipl_block_ccw->ipl_info.ccw.devno); | 630 | reipl_block_ccw->ipl_info.ccw.devno); |
| @@ -683,7 +654,6 @@ void do_reipl(void) | |||
| 683 | diag308(DIAG308_IPL, NULL); | 654 | diag308(DIAG308_IPL, NULL); |
| 684 | break; | 655 | break; |
| 685 | } | 656 | } |
| 686 | printk(KERN_EMERG "reboot failed!\n"); | ||
| 687 | signal_processor(smp_processor_id(), sigp_stop_and_store_status); | 657 | signal_processor(smp_processor_id(), sigp_stop_and_store_status); |
| 688 | } | 658 | } |
| 689 | 659 | ||
| @@ -692,19 +662,6 @@ static void do_dump(void) | |||
| 692 | struct ccw_dev_id devid; | 662 | struct ccw_dev_id devid; |
| 693 | static char buf[100]; | 663 | static char buf[100]; |
| 694 | 664 | ||
| 695 | switch (dump_type) { | ||
| 696 | case IPL_TYPE_CCW: | ||
| 697 | printk(KERN_EMERG "Automatic dump on ccw device: 0.0.%04x\n", | ||
| 698 | dump_block_ccw->ipl_info.ccw.devno); | ||
| 699 | break; | ||
| 700 | case IPL_TYPE_FCP: | ||
| 701 | printk(KERN_EMERG "Automatic dump on fcp device:\n"); | ||
| 702 | print_fcp_block(dump_block_fcp); | ||
| 703 | break; | ||
| 704 | default: | ||
| 705 | return; | ||
| 706 | } | ||
| 707 | |||
| 708 | switch (dump_method) { | 665 | switch (dump_method) { |
| 709 | case IPL_METHOD_CCW_CIO: | 666 | case IPL_METHOD_CCW_CIO: |
| 710 | smp_send_stop(); | 667 | smp_send_stop(); |
| @@ -1037,15 +994,21 @@ static void do_reset_calls(void) | |||
| 1037 | } | 994 | } |
| 1038 | 995 | ||
| 1039 | extern void reset_mcck_handler(void); | 996 | extern void reset_mcck_handler(void); |
| 997 | extern void reset_pgm_handler(void); | ||
| 998 | extern __u32 dump_prefix_page; | ||
| 1040 | 999 | ||
| 1041 | void s390_reset_system(void) | 1000 | void s390_reset_system(void) |
| 1042 | { | 1001 | { |
| 1043 | struct _lowcore *lc; | 1002 | struct _lowcore *lc; |
| 1044 | 1003 | ||
| 1045 | /* Stack for interrupt/machine check handler */ | ||
| 1046 | lc = (struct _lowcore *)(unsigned long) store_prefix(); | 1004 | lc = (struct _lowcore *)(unsigned long) store_prefix(); |
| 1005 | |||
| 1006 | /* Stack for interrupt/machine check handler */ | ||
| 1047 | lc->panic_stack = S390_lowcore.panic_stack; | 1007 | lc->panic_stack = S390_lowcore.panic_stack; |
| 1048 | 1008 | ||
| 1009 | /* Save prefix page address for dump case */ | ||
| 1010 | dump_prefix_page = (unsigned long) lc; | ||
| 1011 | |||
| 1049 | /* Disable prefixing */ | 1012 | /* Disable prefixing */ |
| 1050 | set_prefix(0); | 1013 | set_prefix(0); |
| 1051 | 1014 | ||
| @@ -1056,5 +1019,11 @@ void s390_reset_system(void) | |||
| 1056 | S390_lowcore.mcck_new_psw.mask = PSW_KERNEL_BITS & ~PSW_MASK_MCHECK; | 1019 | S390_lowcore.mcck_new_psw.mask = PSW_KERNEL_BITS & ~PSW_MASK_MCHECK; |
| 1057 | S390_lowcore.mcck_new_psw.addr = | 1020 | S390_lowcore.mcck_new_psw.addr = |
| 1058 | PSW_ADDR_AMODE | (unsigned long) &reset_mcck_handler; | 1021 | PSW_ADDR_AMODE | (unsigned long) &reset_mcck_handler; |
| 1022 | |||
| 1023 | /* Set new program check handler */ | ||
| 1024 | S390_lowcore.program_new_psw.mask = PSW_KERNEL_BITS & ~PSW_MASK_MCHECK; | ||
| 1025 | S390_lowcore.program_new_psw.addr = | ||
| 1026 | PSW_ADDR_AMODE | (unsigned long) &reset_pgm_handler; | ||
| 1027 | |||
| 1059 | do_reset_calls(); | 1028 | do_reset_calls(); |
| 1060 | } | 1029 | } |
diff --git a/arch/s390/kernel/reipl.S b/arch/s390/kernel/reipl.S index f9434d42ce9f..c3f4d9b95083 100644 --- a/arch/s390/kernel/reipl.S +++ b/arch/s390/kernel/reipl.S | |||
| @@ -16,7 +16,7 @@ do_reipl_asm: basr %r13,0 | |||
| 16 | stm %r0,%r15,__LC_GPREGS_SAVE_AREA | 16 | stm %r0,%r15,__LC_GPREGS_SAVE_AREA |
| 17 | stctl %c0,%c15,__LC_CREGS_SAVE_AREA | 17 | stctl %c0,%c15,__LC_CREGS_SAVE_AREA |
| 18 | stam %a0,%a15,__LC_AREGS_SAVE_AREA | 18 | stam %a0,%a15,__LC_AREGS_SAVE_AREA |
| 19 | stpx __LC_PREFIX_SAVE_AREA | 19 | mvc __LC_PREFIX_SAVE_AREA(4),dump_prefix_page-.Lpg0(%r13) |
| 20 | stckc .Lclkcmp-.Lpg0(%r13) | 20 | stckc .Lclkcmp-.Lpg0(%r13) |
| 21 | mvc __LC_CLOCK_COMP_SAVE_AREA(8),.Lclkcmp-.Lpg0(%r13) | 21 | mvc __LC_CLOCK_COMP_SAVE_AREA(8),.Lclkcmp-.Lpg0(%r13) |
| 22 | stpt __LC_CPU_TIMER_SAVE_AREA | 22 | stpt __LC_CPU_TIMER_SAVE_AREA |
| @@ -79,3 +79,7 @@ do_reipl_asm: basr %r13,0 | |||
| 79 | .long 0x00000000,0x00000000 | 79 | .long 0x00000000,0x00000000 |
| 80 | .long 0x00000000,0x00000000 | 80 | .long 0x00000000,0x00000000 |
| 81 | .long 0x00000000,0x00000000 | 81 | .long 0x00000000,0x00000000 |
| 82 | .globl dump_prefix_page | ||
| 83 | dump_prefix_page: | ||
| 84 | .long 0x00000000 | ||
| 85 | |||
diff --git a/arch/s390/kernel/reipl64.S b/arch/s390/kernel/reipl64.S index f18ef260ca23..dbb3eed38865 100644 --- a/arch/s390/kernel/reipl64.S +++ b/arch/s390/kernel/reipl64.S | |||
| @@ -20,7 +20,7 @@ do_reipl_asm: basr %r13,0 | |||
| 20 | stg %r0,__LC_GPREGS_SAVE_AREA-0x1000+8(%r1) | 20 | stg %r0,__LC_GPREGS_SAVE_AREA-0x1000+8(%r1) |
| 21 | stctg %c0,%c15,__LC_CREGS_SAVE_AREA-0x1000(%r1) | 21 | stctg %c0,%c15,__LC_CREGS_SAVE_AREA-0x1000(%r1) |
| 22 | stam %a0,%a15,__LC_AREGS_SAVE_AREA-0x1000(%r1) | 22 | stam %a0,%a15,__LC_AREGS_SAVE_AREA-0x1000(%r1) |
| 23 | stpx __LC_PREFIX_SAVE_AREA-0x1000(%r1) | 23 | mvc __LC_PREFIX_SAVE_AREA-0x1000(4,%r1),dump_prefix_page-.Lpg0(%r13) |
| 24 | stfpc __LC_FP_CREG_SAVE_AREA-0x1000(%r1) | 24 | stfpc __LC_FP_CREG_SAVE_AREA-0x1000(%r1) |
| 25 | stckc .Lclkcmp-.Lpg0(%r13) | 25 | stckc .Lclkcmp-.Lpg0(%r13) |
| 26 | mvc __LC_CLOCK_COMP_SAVE_AREA-0x1000(8,%r1),.Lclkcmp-.Lpg0(%r13) | 26 | mvc __LC_CLOCK_COMP_SAVE_AREA-0x1000(8,%r1),.Lclkcmp-.Lpg0(%r13) |
| @@ -103,3 +103,6 @@ do_reipl_asm: basr %r13,0 | |||
| 103 | .long 0x00000000,0x00000000 | 103 | .long 0x00000000,0x00000000 |
| 104 | .long 0x00000000,0x00000000 | 104 | .long 0x00000000,0x00000000 |
| 105 | .long 0x00000000,0x00000000 | 105 | .long 0x00000000,0x00000000 |
| 106 | .globl dump_prefix_page | ||
| 107 | dump_prefix_page: | ||
| 108 | .long 0x00000000 | ||
diff --git a/arch/s390/kernel/reset.S b/arch/s390/kernel/reset.S index be8688c0665c..8a87355161fa 100644 --- a/arch/s390/kernel/reset.S +++ b/arch/s390/kernel/reset.S | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | * | 3 | * |
| 4 | * Copyright (C) IBM Corp. 2006 | 4 | * Copyright (C) IBM Corp. 2006 |
| 5 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> | 5 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> |
| 6 | * Michael Holzheu <holzheu@de.ibm.com> | ||
| 6 | */ | 7 | */ |
| 7 | 8 | ||
| 8 | #include <asm/ptrace.h> | 9 | #include <asm/ptrace.h> |
| @@ -27,6 +28,26 @@ reset_mcck_handler: | |||
| 27 | s390_reset_mcck_handler: | 28 | s390_reset_mcck_handler: |
| 28 | .quad 0 | 29 | .quad 0 |
| 29 | 30 | ||
| 31 | .globl reset_pgm_handler | ||
| 32 | reset_pgm_handler: | ||
| 33 | stmg %r0,%r15,__LC_SAVE_AREA | ||
| 34 | basr %r13,0 | ||
| 35 | 0: lg %r15,__LC_PANIC_STACK # load panic stack | ||
| 36 | aghi %r15,-STACK_FRAME_OVERHEAD | ||
| 37 | lg %r1,s390_reset_pgm_handler-0b(%r13) | ||
| 38 | ltgr %r1,%r1 | ||
| 39 | jz 1f | ||
| 40 | basr %r14,%r1 | ||
| 41 | lmg %r0,%r15,__LC_SAVE_AREA | ||
| 42 | lpswe __LC_PGM_OLD_PSW | ||
| 43 | 1: lpswe disabled_wait_psw-0b(%r13) | ||
| 44 | .globl s390_reset_pgm_handler | ||
| 45 | s390_reset_pgm_handler: | ||
| 46 | .quad 0 | ||
| 47 | .align 8 | ||
| 48 | disabled_wait_psw: | ||
| 49 | .quad 0x0002000180000000,0x0000000000000000 + reset_pgm_handler | ||
| 50 | |||
| 30 | #else /* CONFIG_64BIT */ | 51 | #else /* CONFIG_64BIT */ |
| 31 | 52 | ||
| 32 | .globl reset_mcck_handler | 53 | .globl reset_mcck_handler |
| @@ -45,4 +66,25 @@ reset_mcck_handler: | |||
| 45 | s390_reset_mcck_handler: | 66 | s390_reset_mcck_handler: |
| 46 | .long 0 | 67 | .long 0 |
| 47 | 68 | ||
| 69 | .globl reset_pgm_handler | ||
| 70 | reset_pgm_handler: | ||
| 71 | stm %r0,%r15,__LC_SAVE_AREA | ||
| 72 | basr %r13,0 | ||
| 73 | 0: l %r15,__LC_PANIC_STACK # load panic stack | ||
| 74 | ahi %r15,-STACK_FRAME_OVERHEAD | ||
| 75 | l %r1,s390_reset_pgm_handler-0b(%r13) | ||
| 76 | ltr %r1,%r1 | ||
| 77 | jz 1f | ||
| 78 | basr %r14,%r1 | ||
| 79 | lm %r0,%r15,__LC_SAVE_AREA | ||
| 80 | lpsw __LC_PGM_OLD_PSW | ||
| 81 | |||
| 82 | 1: lpsw disabled_wait_psw-0b(%r13) | ||
| 83 | .globl s390_reset_pgm_handler | ||
| 84 | s390_reset_pgm_handler: | ||
| 85 | .long 0 | ||
| 86 | disabled_wait_psw: | ||
| 87 | .align 8 | ||
| 88 | .long 0x000a0000,0x00000000 + reset_pgm_handler | ||
| 89 | |||
| 48 | #endif /* CONFIG_64BIT */ | 90 | #endif /* CONFIG_64BIT */ |
diff --git a/drivers/s390/char/sclp_cpi.c b/drivers/s390/char/sclp_cpi.c index f7c10d954ec6..4f873ae148b7 100644 --- a/drivers/s390/char/sclp_cpi.c +++ b/drivers/s390/char/sclp_cpi.c | |||
| @@ -49,6 +49,8 @@ static struct sclp_register sclp_cpi_event = | |||
| 49 | .send_mask = EvTyp_CtlProgIdent_Mask | 49 | .send_mask = EvTyp_CtlProgIdent_Mask |
| 50 | }; | 50 | }; |
| 51 | 51 | ||
| 52 | MODULE_LICENSE("GPL"); | ||
| 53 | |||
| 52 | MODULE_AUTHOR( | 54 | MODULE_AUTHOR( |
| 53 | "Martin Peschke, IBM Deutschland Entwicklung GmbH " | 55 | "Martin Peschke, IBM Deutschland Entwicklung GmbH " |
| 54 | "<mpeschke@de.ibm.com>"); | 56 | "<mpeschke@de.ibm.com>"); |
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c index 7835a714a405..3a403f195cf8 100644 --- a/drivers/s390/cio/cio.c +++ b/drivers/s390/cio/cio.c | |||
| @@ -871,11 +871,32 @@ __clear_subchannel_easy(struct subchannel_id schid) | |||
| 871 | return -EBUSY; | 871 | return -EBUSY; |
| 872 | } | 872 | } |
| 873 | 873 | ||
| 874 | static int pgm_check_occured; | ||
| 875 | |||
| 876 | static void cio_reset_pgm_check_handler(void) | ||
| 877 | { | ||
| 878 | pgm_check_occured = 1; | ||
| 879 | } | ||
| 880 | |||
| 881 | static int stsch_reset(struct subchannel_id schid, volatile struct schib *addr) | ||
| 882 | { | ||
| 883 | int rc; | ||
| 884 | |||
| 885 | pgm_check_occured = 0; | ||
| 886 | s390_reset_pgm_handler = cio_reset_pgm_check_handler; | ||
| 887 | rc = stsch(schid, addr); | ||
| 888 | s390_reset_pgm_handler = NULL; | ||
| 889 | if (pgm_check_occured) | ||
| 890 | return -EIO; | ||
| 891 | else | ||
| 892 | return rc; | ||
| 893 | } | ||
| 894 | |||
| 874 | static int __shutdown_subchannel_easy(struct subchannel_id schid, void *data) | 895 | static int __shutdown_subchannel_easy(struct subchannel_id schid, void *data) |
| 875 | { | 896 | { |
| 876 | struct schib schib; | 897 | struct schib schib; |
| 877 | 898 | ||
| 878 | if (stsch_err(schid, &schib)) | 899 | if (stsch_reset(schid, &schib)) |
| 879 | return -ENXIO; | 900 | return -ENXIO; |
| 880 | if (!schib.pmcw.ena) | 901 | if (!schib.pmcw.ena) |
| 881 | return 0; | 902 | return 0; |
| @@ -972,7 +993,7 @@ static int __reipl_subchannel_match(struct subchannel_id schid, void *data) | |||
| 972 | struct schib schib; | 993 | struct schib schib; |
| 973 | struct sch_match_id *match_id = data; | 994 | struct sch_match_id *match_id = data; |
| 974 | 995 | ||
| 975 | if (stsch_err(schid, &schib)) | 996 | if (stsch_reset(schid, &schib)) |
| 976 | return -ENXIO; | 997 | return -ENXIO; |
| 977 | if (schib.pmcw.dnv && | 998 | if (schib.pmcw.dnv && |
| 978 | (schib.pmcw.dev == match_id->devid.devno) && | 999 | (schib.pmcw.dev == match_id->devid.devno) && |
diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c index 4c81d890791e..9d6c02446863 100644 --- a/drivers/s390/cio/css.c +++ b/drivers/s390/cio/css.c | |||
| @@ -139,6 +139,8 @@ css_register_subchannel(struct subchannel *sch) | |||
| 139 | sch->dev.release = &css_subchannel_release; | 139 | sch->dev.release = &css_subchannel_release; |
| 140 | sch->dev.groups = subch_attr_groups; | 140 | sch->dev.groups = subch_attr_groups; |
| 141 | 141 | ||
| 142 | css_get_ssd_info(sch); | ||
| 143 | |||
| 142 | /* make it known to the system */ | 144 | /* make it known to the system */ |
| 143 | ret = css_sch_device_register(sch); | 145 | ret = css_sch_device_register(sch); |
| 144 | if (ret) { | 146 | if (ret) { |
| @@ -146,7 +148,6 @@ css_register_subchannel(struct subchannel *sch) | |||
| 146 | __func__, sch->dev.bus_id); | 148 | __func__, sch->dev.bus_id); |
| 147 | return ret; | 149 | return ret; |
| 148 | } | 150 | } |
| 149 | css_get_ssd_info(sch); | ||
| 150 | return ret; | 151 | return ret; |
| 151 | } | 152 | } |
| 152 | 153 | ||
diff --git a/drivers/s390/cio/qdio.c b/drivers/s390/cio/qdio.c index 9d4ea449a608..6fd1940842eb 100644 --- a/drivers/s390/cio/qdio.c +++ b/drivers/s390/cio/qdio.c | |||
| @@ -979,12 +979,11 @@ __qdio_outbound_processing(struct qdio_q *q) | |||
| 979 | 979 | ||
| 980 | if (q->is_iqdio_q) { | 980 | if (q->is_iqdio_q) { |
| 981 | /* | 981 | /* |
| 982 | * for asynchronous queues, we better check, if the fill | 982 | * for asynchronous queues, we better check, if the sent |
| 983 | * level is too high. for synchronous queues, the fill | 983 | * buffer is already switched from PRIMED to EMPTY. |
| 984 | * level will never be that high. | ||
| 985 | */ | 984 | */ |
| 986 | if (atomic_read(&q->number_of_buffers_used)> | 985 | if ((q->queue_type == QDIO_IQDIO_QFMT_ASYNCH) && |
| 987 | IQDIO_FILL_LEVEL_TO_POLL) | 986 | !qdio_is_outbound_q_done(q)) |
| 988 | qdio_mark_q(q); | 987 | qdio_mark_q(q); |
| 989 | 988 | ||
| 990 | } else if (!q->hydra_gives_outbound_pcis) | 989 | } else if (!q->hydra_gives_outbound_pcis) |
| @@ -1825,6 +1824,10 @@ qdio_fill_qs(struct qdio_irq *irq_ptr, struct ccw_device *cdev, | |||
| 1825 | q->sbal[j]=*(outbound_sbals_array++); | 1824 | q->sbal[j]=*(outbound_sbals_array++); |
| 1826 | 1825 | ||
| 1827 | q->queue_type=q_format; | 1826 | q->queue_type=q_format; |
| 1827 | if ((q->queue_type == QDIO_IQDIO_QFMT) && | ||
| 1828 | (no_output_qs > 1) && | ||
| 1829 | (i == no_output_qs-1)) | ||
| 1830 | q->queue_type = QDIO_IQDIO_QFMT_ASYNCH; | ||
| 1828 | q->int_parm=int_parm; | 1831 | q->int_parm=int_parm; |
| 1829 | q->is_input_q=0; | 1832 | q->is_input_q=0; |
| 1830 | q->schid = irq_ptr->schid; | 1833 | q->schid = irq_ptr->schid; |
diff --git a/drivers/s390/crypto/ap_bus.c b/drivers/s390/crypto/ap_bus.c index ad60afe5dd11..81b5899f4010 100644 --- a/drivers/s390/crypto/ap_bus.c +++ b/drivers/s390/crypto/ap_bus.c | |||
| @@ -1129,7 +1129,15 @@ static void ap_poll_thread_stop(void) | |||
| 1129 | mutex_unlock(&ap_poll_thread_mutex); | 1129 | mutex_unlock(&ap_poll_thread_mutex); |
| 1130 | } | 1130 | } |
| 1131 | 1131 | ||
| 1132 | static void ap_reset(void) | 1132 | static void ap_reset_domain(void) |
| 1133 | { | ||
| 1134 | int i; | ||
| 1135 | |||
| 1136 | for (i = 0; i < AP_DEVICES; i++) | ||
| 1137 | ap_reset_queue(AP_MKQID(i, ap_domain_index)); | ||
| 1138 | } | ||
| 1139 | |||
| 1140 | static void ap_reset_all(void) | ||
| 1133 | { | 1141 | { |
| 1134 | int i, j; | 1142 | int i, j; |
| 1135 | 1143 | ||
| @@ -1139,7 +1147,7 @@ static void ap_reset(void) | |||
| 1139 | } | 1147 | } |
| 1140 | 1148 | ||
| 1141 | static struct reset_call ap_reset_call = { | 1149 | static struct reset_call ap_reset_call = { |
| 1142 | .fn = ap_reset, | 1150 | .fn = ap_reset_all, |
| 1143 | }; | 1151 | }; |
| 1144 | 1152 | ||
| 1145 | /** | 1153 | /** |
| @@ -1229,10 +1237,12 @@ void ap_module_exit(void) | |||
| 1229 | int i; | 1237 | int i; |
| 1230 | struct device *dev; | 1238 | struct device *dev; |
| 1231 | 1239 | ||
| 1240 | ap_reset_domain(); | ||
| 1232 | ap_poll_thread_stop(); | 1241 | ap_poll_thread_stop(); |
| 1233 | del_timer_sync(&ap_config_timer); | 1242 | del_timer_sync(&ap_config_timer); |
| 1234 | del_timer_sync(&ap_poll_timer); | 1243 | del_timer_sync(&ap_poll_timer); |
| 1235 | destroy_workqueue(ap_work_queue); | 1244 | destroy_workqueue(ap_work_queue); |
| 1245 | tasklet_kill(&ap_tasklet); | ||
| 1236 | s390_root_dev_unregister(ap_root_device); | 1246 | s390_root_dev_unregister(ap_root_device); |
| 1237 | while ((dev = bus_find_device(&ap_bus_type, NULL, NULL, | 1247 | while ((dev = bus_find_device(&ap_bus_type, NULL, NULL, |
| 1238 | __ap_match_all))) | 1248 | __ap_match_all))) |
diff --git a/include/asm-s390/qdio.h b/include/asm-s390/qdio.h index 7189c79bc673..127f72e77419 100644 --- a/include/asm-s390/qdio.h +++ b/include/asm-s390/qdio.h | |||
| @@ -34,6 +34,7 @@ | |||
| 34 | #define QDIO_QETH_QFMT 0 | 34 | #define QDIO_QETH_QFMT 0 |
| 35 | #define QDIO_ZFCP_QFMT 1 | 35 | #define QDIO_ZFCP_QFMT 1 |
| 36 | #define QDIO_IQDIO_QFMT 2 | 36 | #define QDIO_IQDIO_QFMT 2 |
| 37 | #define QDIO_IQDIO_QFMT_ASYNCH 3 | ||
| 37 | 38 | ||
| 38 | struct qdio_buffer_element{ | 39 | struct qdio_buffer_element{ |
| 39 | unsigned int flags; | 40 | unsigned int flags; |
diff --git a/include/asm-s390/reset.h b/include/asm-s390/reset.h index 9b439cf67800..532e65a2aafc 100644 --- a/include/asm-s390/reset.h +++ b/include/asm-s390/reset.h | |||
| @@ -19,5 +19,6 @@ extern void register_reset_call(struct reset_call *reset); | |||
| 19 | extern void unregister_reset_call(struct reset_call *reset); | 19 | extern void unregister_reset_call(struct reset_call *reset); |
| 20 | extern void s390_reset_system(void); | 20 | extern void s390_reset_system(void); |
| 21 | extern void (*s390_reset_mcck_handler)(void); | 21 | extern void (*s390_reset_mcck_handler)(void); |
| 22 | extern void (*s390_reset_pgm_handler)(void); | ||
| 22 | 23 | ||
| 23 | #endif /* _ASM_S390_RESET_H */ | 24 | #endif /* _ASM_S390_RESET_H */ |
