diff options
| -rw-r--r-- | arch/s390/include/asm/irqflags.h | 9 | ||||
| -rw-r--r-- | arch/s390/kernel/entry.S | 1 | ||||
| -rw-r--r-- | arch/s390/kernel/entry64.S | 1 | ||||
| -rw-r--r-- | arch/s390/kernel/signal.c | 2 | ||||
| -rw-r--r-- | drivers/s390/block/dasd.c | 8 | ||||
| -rw-r--r-- | drivers/s390/block/dasd_eckd.c | 2 | ||||
| -rw-r--r-- | drivers/s390/block/dasd_ioctl.c | 7 | ||||
| -rw-r--r-- | drivers/s390/block/dasd_proc.c | 7 | ||||
| -rw-r--r-- | drivers/s390/char/sclp_vt220.c | 4 | ||||
| -rw-r--r-- | drivers/s390/crypto/zcrypt_pcicc.c | 2 | ||||
| -rw-r--r-- | drivers/s390/crypto/zcrypt_pcixcc.c | 2 |
11 files changed, 23 insertions, 22 deletions
diff --git a/arch/s390/include/asm/irqflags.h b/arch/s390/include/asm/irqflags.h index 3f26131120b7..c2fb432f576a 100644 --- a/arch/s390/include/asm/irqflags.h +++ b/arch/s390/include/asm/irqflags.h | |||
| @@ -1,14 +1,12 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * include/asm-s390/irqflags.h | 2 | * Copyright IBM Corp. 2006,2010 |
| 3 | * | 3 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> |
| 4 | * Copyright (C) IBM Corp. 2006 | ||
| 5 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> | ||
| 6 | */ | 4 | */ |
| 7 | 5 | ||
| 8 | #ifndef __ASM_IRQFLAGS_H | 6 | #ifndef __ASM_IRQFLAGS_H |
| 9 | #define __ASM_IRQFLAGS_H | 7 | #define __ASM_IRQFLAGS_H |
| 10 | 8 | ||
| 11 | #ifdef __KERNEL__ | 9 | #include <linux/types.h> |
| 12 | 10 | ||
| 13 | #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 2) | 11 | #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 2) |
| 14 | 12 | ||
| @@ -102,5 +100,4 @@ static inline int raw_irqs_disabled_flags(unsigned long flags) | |||
| 102 | /* For spinlocks etc */ | 100 | /* For spinlocks etc */ |
| 103 | #define raw_local_irq_save(x) ((x) = raw_local_irq_disable()) | 101 | #define raw_local_irq_save(x) ((x) = raw_local_irq_disable()) |
| 104 | 102 | ||
| 105 | #endif /* __KERNEL__ */ | ||
| 106 | #endif /* __ASM_IRQFLAGS_H */ | 103 | #endif /* __ASM_IRQFLAGS_H */ |
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S index 48215d15762b..e8ef21c51bbe 100644 --- a/arch/s390/kernel/entry.S +++ b/arch/s390/kernel/entry.S | |||
| @@ -571,6 +571,7 @@ pgm_svcper: | |||
| 571 | mvc __THREAD_per+__PER_access_id(1,%r8),__LC_PER_ACCESS_ID | 571 | mvc __THREAD_per+__PER_access_id(1,%r8),__LC_PER_ACCESS_ID |
| 572 | oi __TI_flags+3(%r9),_TIF_SINGLE_STEP # set TIF_SINGLE_STEP | 572 | oi __TI_flags+3(%r9),_TIF_SINGLE_STEP # set TIF_SINGLE_STEP |
| 573 | TRACE_IRQS_ON | 573 | TRACE_IRQS_ON |
| 574 | lm %r2,%r6,SP_R2(%r15) # load svc arguments | ||
| 574 | stosm __SF_EMPTY(%r15),0x03 # reenable interrupts | 575 | stosm __SF_EMPTY(%r15),0x03 # reenable interrupts |
| 575 | b BASED(sysc_do_svc) | 576 | b BASED(sysc_do_svc) |
| 576 | 577 | ||
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S index 9aff1d449b6e..f33658f09dd7 100644 --- a/arch/s390/kernel/entry64.S +++ b/arch/s390/kernel/entry64.S | |||
| @@ -549,6 +549,7 @@ pgm_svcper: | |||
| 549 | mvc __THREAD_per+__PER_access_id(1,%r8),__LC_PER_ACCESS_ID | 549 | mvc __THREAD_per+__PER_access_id(1,%r8),__LC_PER_ACCESS_ID |
| 550 | oi __TI_flags+7(%r9),_TIF_SINGLE_STEP # set TIF_SINGLE_STEP | 550 | oi __TI_flags+7(%r9),_TIF_SINGLE_STEP # set TIF_SINGLE_STEP |
| 551 | TRACE_IRQS_ON | 551 | TRACE_IRQS_ON |
| 552 | lmg %r2,%r6,SP_R2(%r15) # load svc arguments | ||
| 552 | stosm __SF_EMPTY(%r15),0x03 # reenable interrupts | 553 | stosm __SF_EMPTY(%r15),0x03 # reenable interrupts |
| 553 | j sysc_do_svc | 554 | j sysc_do_svc |
| 554 | 555 | ||
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c index 1675c48b9145..6289945562b0 100644 --- a/arch/s390/kernel/signal.c +++ b/arch/s390/kernel/signal.c | |||
| @@ -64,7 +64,7 @@ SYSCALL_DEFINE3(sigsuspend, int, history0, int, history1, old_sigset_t, mask) | |||
| 64 | recalc_sigpending(); | 64 | recalc_sigpending(); |
| 65 | spin_unlock_irq(¤t->sighand->siglock); | 65 | spin_unlock_irq(¤t->sighand->siglock); |
| 66 | 66 | ||
| 67 | current->state = TASK_INTERRUPTIBLE; | 67 | set_current_state(TASK_INTERRUPTIBLE); |
| 68 | schedule(); | 68 | schedule(); |
| 69 | set_thread_flag(TIF_RESTORE_SIGMASK); | 69 | set_thread_flag(TIF_RESTORE_SIGMASK); |
| 70 | 70 | ||
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c index fdb2e7c14506..5905936c7c60 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c | |||
| @@ -1004,8 +1004,8 @@ static void dasd_handle_killed_request(struct ccw_device *cdev, | |||
| 1004 | if (device == NULL || | 1004 | if (device == NULL || |
| 1005 | device != dasd_device_from_cdev_locked(cdev) || | 1005 | device != dasd_device_from_cdev_locked(cdev) || |
| 1006 | strncmp(device->discipline->ebcname, (char *) &cqr->magic, 4)) { | 1006 | strncmp(device->discipline->ebcname, (char *) &cqr->magic, 4)) { |
| 1007 | DBF_DEV_EVENT(DBF_DEBUG, device, "invalid device in request: " | 1007 | DBF_EVENT_DEVID(DBF_DEBUG, cdev, "%s", |
| 1008 | "bus_id %s", dev_name(&cdev->dev)); | 1008 | "invalid device in request"); |
| 1009 | return; | 1009 | return; |
| 1010 | } | 1010 | } |
| 1011 | 1011 | ||
| @@ -1078,8 +1078,8 @@ void dasd_int_handler(struct ccw_device *cdev, unsigned long intparm, | |||
| 1078 | device = (struct dasd_device *) cqr->startdev; | 1078 | device = (struct dasd_device *) cqr->startdev; |
| 1079 | if (!device || | 1079 | if (!device || |
| 1080 | strncmp(device->discipline->ebcname, (char *) &cqr->magic, 4)) { | 1080 | strncmp(device->discipline->ebcname, (char *) &cqr->magic, 4)) { |
| 1081 | DBF_DEV_EVENT(DBF_DEBUG, device, "invalid device in request: " | 1081 | DBF_EVENT_DEVID(DBF_DEBUG, cdev, "%s", |
| 1082 | "bus_id %s", dev_name(&cdev->dev)); | 1082 | "invalid device in request"); |
| 1083 | return; | 1083 | return; |
| 1084 | } | 1084 | } |
| 1085 | 1085 | ||
diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c index 1c500c462225..1cca21aafaba 100644 --- a/drivers/s390/block/dasd_eckd.c +++ b/drivers/s390/block/dasd_eckd.c | |||
| @@ -3033,7 +3033,7 @@ static void dasd_eckd_dump_sense_ccw(struct dasd_device *device, | |||
| 3033 | len += sprintf(page + len, KERN_ERR PRINTK_HEADER | 3033 | len += sprintf(page + len, KERN_ERR PRINTK_HEADER |
| 3034 | " in req: %p CS: 0x%02X DS: 0x%02X CC: 0x%02X RC: %d\n", | 3034 | " in req: %p CS: 0x%02X DS: 0x%02X CC: 0x%02X RC: %d\n", |
| 3035 | req, scsw_cstat(&irb->scsw), scsw_dstat(&irb->scsw), | 3035 | req, scsw_cstat(&irb->scsw), scsw_dstat(&irb->scsw), |
| 3036 | scsw_cc(&irb->scsw), req->intrc); | 3036 | scsw_cc(&irb->scsw), req ? req->intrc : 0); |
| 3037 | len += sprintf(page + len, KERN_ERR PRINTK_HEADER | 3037 | len += sprintf(page + len, KERN_ERR PRINTK_HEADER |
| 3038 | " device %s: Failing CCW: %p\n", | 3038 | " device %s: Failing CCW: %p\n", |
| 3039 | dev_name(&device->cdev->dev), | 3039 | dev_name(&device->cdev->dev), |
diff --git a/drivers/s390/block/dasd_ioctl.c b/drivers/s390/block/dasd_ioctl.c index fc7b30b4a255..7039d9cf0fb4 100644 --- a/drivers/s390/block/dasd_ioctl.c +++ b/drivers/s390/block/dasd_ioctl.c | |||
| @@ -260,7 +260,7 @@ static int dasd_ioctl_information(struct dasd_block *block, | |||
| 260 | struct ccw_dev_id dev_id; | 260 | struct ccw_dev_id dev_id; |
| 261 | 261 | ||
| 262 | base = block->base; | 262 | base = block->base; |
| 263 | if (!base->discipline->fill_info) | 263 | if (!base->discipline || !base->discipline->fill_info) |
| 264 | return -EINVAL; | 264 | return -EINVAL; |
| 265 | 265 | ||
| 266 | dasd_info = kzalloc(sizeof(struct dasd_information2_t), GFP_KERNEL); | 266 | dasd_info = kzalloc(sizeof(struct dasd_information2_t), GFP_KERNEL); |
| @@ -303,10 +303,7 @@ static int dasd_ioctl_information(struct dasd_block *block, | |||
| 303 | dasd_info->features |= | 303 | dasd_info->features |= |
| 304 | ((base->features & DASD_FEATURE_READONLY) != 0); | 304 | ((base->features & DASD_FEATURE_READONLY) != 0); |
| 305 | 305 | ||
| 306 | if (base->discipline) | 306 | memcpy(dasd_info->type, base->discipline->name, 4); |
| 307 | memcpy(dasd_info->type, base->discipline->name, 4); | ||
| 308 | else | ||
| 309 | memcpy(dasd_info->type, "none", 4); | ||
| 310 | 307 | ||
| 311 | if (block->request_queue->request_fn) { | 308 | if (block->request_queue->request_fn) { |
| 312 | struct list_head *l; | 309 | struct list_head *l; |
diff --git a/drivers/s390/block/dasd_proc.c b/drivers/s390/block/dasd_proc.c index 6315fbd8e68b..71f95f54866f 100644 --- a/drivers/s390/block/dasd_proc.c +++ b/drivers/s390/block/dasd_proc.c | |||
| @@ -72,7 +72,7 @@ dasd_devices_show(struct seq_file *m, void *v) | |||
| 72 | /* Print device number. */ | 72 | /* Print device number. */ |
| 73 | seq_printf(m, "%s", dev_name(&device->cdev->dev)); | 73 | seq_printf(m, "%s", dev_name(&device->cdev->dev)); |
| 74 | /* Print discipline string. */ | 74 | /* Print discipline string. */ |
| 75 | if (device != NULL && device->discipline != NULL) | 75 | if (device->discipline != NULL) |
| 76 | seq_printf(m, "(%s)", device->discipline->name); | 76 | seq_printf(m, "(%s)", device->discipline->name); |
| 77 | else | 77 | else |
| 78 | seq_printf(m, "(none)"); | 78 | seq_printf(m, "(none)"); |
| @@ -92,10 +92,7 @@ dasd_devices_show(struct seq_file *m, void *v) | |||
| 92 | substr = (device->features & DASD_FEATURE_READONLY) ? "(ro)" : " "; | 92 | substr = (device->features & DASD_FEATURE_READONLY) ? "(ro)" : " "; |
| 93 | seq_printf(m, "%4s: ", substr); | 93 | seq_printf(m, "%4s: ", substr); |
| 94 | /* Print device status information. */ | 94 | /* Print device status information. */ |
| 95 | switch ((device != NULL) ? device->state : -1) { | 95 | switch (device->state) { |
| 96 | case -1: | ||
| 97 | seq_printf(m, "unknown"); | ||
| 98 | break; | ||
| 99 | case DASD_STATE_NEW: | 96 | case DASD_STATE_NEW: |
| 100 | seq_printf(m, "new"); | 97 | seq_printf(m, "new"); |
| 101 | break; | 98 | break; |
diff --git a/drivers/s390/char/sclp_vt220.c b/drivers/s390/char/sclp_vt220.c index b9d2a007e93b..3796ffdb8479 100644 --- a/drivers/s390/char/sclp_vt220.c +++ b/drivers/s390/char/sclp_vt220.c | |||
| @@ -495,6 +495,10 @@ sclp_vt220_open(struct tty_struct *tty, struct file *filp) | |||
| 495 | if (tty->driver_data == NULL) | 495 | if (tty->driver_data == NULL) |
| 496 | return -ENOMEM; | 496 | return -ENOMEM; |
| 497 | tty->low_latency = 0; | 497 | tty->low_latency = 0; |
| 498 | if (!tty->winsize.ws_row && !tty->winsize.ws_col) { | ||
| 499 | tty->winsize.ws_row = 24; | ||
| 500 | tty->winsize.ws_col = 80; | ||
| 501 | } | ||
| 498 | } | 502 | } |
| 499 | return 0; | 503 | return 0; |
| 500 | } | 504 | } |
diff --git a/drivers/s390/crypto/zcrypt_pcicc.c b/drivers/s390/crypto/zcrypt_pcicc.c index a23726a0735c..142f72a2ca5a 100644 --- a/drivers/s390/crypto/zcrypt_pcicc.c +++ b/drivers/s390/crypto/zcrypt_pcicc.c | |||
| @@ -373,6 +373,8 @@ static int convert_type86(struct zcrypt_device *zdev, | |||
| 373 | zdev->max_mod_size = PCICC_MAX_MOD_SIZE_OLD; | 373 | zdev->max_mod_size = PCICC_MAX_MOD_SIZE_OLD; |
| 374 | return -EAGAIN; | 374 | return -EAGAIN; |
| 375 | } | 375 | } |
| 376 | if (service_rc == 8 && service_rs == 72) | ||
| 377 | return -EINVAL; | ||
| 376 | zdev->online = 0; | 378 | zdev->online = 0; |
| 377 | return -EAGAIN; /* repeat the request on a different device. */ | 379 | return -EAGAIN; /* repeat the request on a different device. */ |
| 378 | } | 380 | } |
diff --git a/drivers/s390/crypto/zcrypt_pcixcc.c b/drivers/s390/crypto/zcrypt_pcixcc.c index 79c120578e61..68f3e6204db8 100644 --- a/drivers/s390/crypto/zcrypt_pcixcc.c +++ b/drivers/s390/crypto/zcrypt_pcixcc.c | |||
| @@ -470,6 +470,8 @@ static int convert_type86_ica(struct zcrypt_device *zdev, | |||
| 470 | } | 470 | } |
| 471 | if (service_rc == 12 && service_rs == 769) | 471 | if (service_rc == 12 && service_rs == 769) |
| 472 | return -EINVAL; | 472 | return -EINVAL; |
| 473 | if (service_rc == 8 && service_rs == 72) | ||
| 474 | return -EINVAL; | ||
| 473 | zdev->online = 0; | 475 | zdev->online = 0; |
| 474 | return -EAGAIN; /* repeat the request on a different device. */ | 476 | return -EAGAIN; /* repeat the request on a different device. */ |
| 475 | } | 477 | } |
