]> err.no Git - linux-2.6/blobdiff - arch/s390/kernel/ipl.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6] / arch / s390 / kernel / ipl.c
index 9a13b24ee1ab2e751715ce014823d22a60828b54..ce0856d32500215ef1942d03a0a61f000767d4fa 100644 (file)
@@ -295,8 +295,8 @@ static ssize_t sys_ipl_device_show(struct kset *kset, char *page)
 static struct subsys_attribute sys_ipl_device_attr =
        __ATTR(device, S_IRUGO, sys_ipl_device_show, NULL);
 
-static ssize_t ipl_parameter_read(struct kobject *kobj, char *buf, loff_t off,
-                                 size_t count)
+static ssize_t ipl_parameter_read(struct kobject *kobj, struct bin_attribute *attr,
+                                 char *buf, loff_t off, size_t count)
 {
        unsigned int size = IPL_PARMBLOCK_SIZE;
 
@@ -317,8 +317,8 @@ static struct bin_attribute ipl_parameter_attr = {
        .read = &ipl_parameter_read,
 };
 
-static ssize_t ipl_scp_data_read(struct kobject *kobj, char *buf, loff_t off,
-       size_t count)
+static ssize_t ipl_scp_data_read(struct kobject *kobj, struct bin_attribute *attr,
+                                char *buf, loff_t off, size_t count)
 {
        unsigned int size = IPL_PARMBLOCK_START->ipl_info.fcp.scp_data_len;
        void *scp_data = &IPL_PARMBLOCK_START->ipl_info.fcp.scp_data;
@@ -337,7 +337,7 @@ static struct bin_attribute ipl_scp_data_attr = {
                .mode = S_IRUGO,
        },
        .size = PAGE_SIZE,
-       .read = &ipl_scp_data_read,
+       .read = ipl_scp_data_read,
 };
 
 /* FCP ipl device attributes */
@@ -648,6 +648,8 @@ static int dump_set_type(enum dump_type type)
        case DUMP_TYPE_CCW:
                if (MACHINE_IS_VM)
                        dump_method = DUMP_METHOD_CCW_VM;
+               else if (diag308_set_works)
+                       dump_method = DUMP_METHOD_CCW_DIAG;
                else
                        dump_method = DUMP_METHOD_CCW_CIO;
                break;
@@ -735,10 +737,10 @@ void do_reipl(void)
        case REIPL_METHOD_CCW_VM:
                reipl_get_ascii_loadparm(loadparm);
                if (strlen(loadparm) == 0)
-                       sprintf(buf, "IPL %X",
+                       sprintf(buf, "IPL %X CLEAR",
                                reipl_block_ccw->ipl_info.ccw.devno);
                else
-                       sprintf(buf, "IPL %X LOADPARM '%s'",
+                       sprintf(buf, "IPL %X CLEAR LOADPARM '%s'",
                                reipl_block_ccw->ipl_info.ccw.devno, loadparm);
                __cpcmd(buf, NULL, 0, NULL);
                break;