Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6

* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
[S390] fix single stepped svcs with TRACE_IRQFLAGS=y
[S390] zcrypt: Do not remove coprocessor for error 8/72
[S390] sclp_vt220: set initial terminal window size
[S390] use set_current_state in sigsuspend
[S390] irqflags: add missing types.h include
[S390] dasd: fix possible NULL pointer errors

+23 -22
+3 -6
arch/s390/include/asm/irqflags.h
··· 1 /* 2 - * include/asm-s390/irqflags.h 3 - * 4 - * Copyright (C) IBM Corp. 2006 5 - * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> 6 */ 7 8 #ifndef __ASM_IRQFLAGS_H 9 #define __ASM_IRQFLAGS_H 10 11 - #ifdef __KERNEL__ 12 13 #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 2) 14 ··· 100 /* For spinlocks etc */ 101 #define raw_local_irq_save(x) ((x) = raw_local_irq_disable()) 102 103 - #endif /* __KERNEL__ */ 104 #endif /* __ASM_IRQFLAGS_H */
··· 1 /* 2 + * Copyright IBM Corp. 2006,2010 3 + * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> 4 */ 5 6 #ifndef __ASM_IRQFLAGS_H 7 #define __ASM_IRQFLAGS_H 8 9 + #include <linux/types.h> 10 11 #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 2) 12 ··· 102 /* For spinlocks etc */ 103 #define raw_local_irq_save(x) ((x) = raw_local_irq_disable()) 104 105 #endif /* __ASM_IRQFLAGS_H */
+1
arch/s390/kernel/entry.S
··· 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 573 TRACE_IRQS_ON 574 stosm __SF_EMPTY(%r15),0x03 # reenable interrupts 575 b BASED(sysc_do_svc) 576
··· 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 573 TRACE_IRQS_ON 574 + lm %r2,%r6,SP_R2(%r15) # load svc arguments 575 stosm __SF_EMPTY(%r15),0x03 # reenable interrupts 576 b BASED(sysc_do_svc) 577
+1
arch/s390/kernel/entry64.S
··· 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 551 TRACE_IRQS_ON 552 stosm __SF_EMPTY(%r15),0x03 # reenable interrupts 553 j sysc_do_svc 554
··· 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 551 TRACE_IRQS_ON 552 + lmg %r2,%r6,SP_R2(%r15) # load svc arguments 553 stosm __SF_EMPTY(%r15),0x03 # reenable interrupts 554 j sysc_do_svc 555
+1 -1
arch/s390/kernel/signal.c
··· 64 recalc_sigpending(); 65 spin_unlock_irq(&current->sighand->siglock); 66 67 - current->state = TASK_INTERRUPTIBLE; 68 schedule(); 69 set_thread_flag(TIF_RESTORE_SIGMASK); 70
··· 64 recalc_sigpending(); 65 spin_unlock_irq(&current->sighand->siglock); 66 67 + set_current_state(TASK_INTERRUPTIBLE); 68 schedule(); 69 set_thread_flag(TIF_RESTORE_SIGMASK); 70
+4 -4
drivers/s390/block/dasd.c
··· 1004 if (device == NULL || 1005 device != dasd_device_from_cdev_locked(cdev) || 1006 strncmp(device->discipline->ebcname, (char *) &cqr->magic, 4)) { 1007 - DBF_DEV_EVENT(DBF_DEBUG, device, "invalid device in request: " 1008 - "bus_id %s", dev_name(&cdev->dev)); 1009 return; 1010 } 1011 ··· 1078 device = (struct dasd_device *) cqr->startdev; 1079 if (!device || 1080 strncmp(device->discipline->ebcname, (char *) &cqr->magic, 4)) { 1081 - DBF_DEV_EVENT(DBF_DEBUG, device, "invalid device in request: " 1082 - "bus_id %s", dev_name(&cdev->dev)); 1083 return; 1084 } 1085
··· 1004 if (device == NULL || 1005 device != dasd_device_from_cdev_locked(cdev) || 1006 strncmp(device->discipline->ebcname, (char *) &cqr->magic, 4)) { 1007 + DBF_EVENT_DEVID(DBF_DEBUG, cdev, "%s", 1008 + "invalid device in request"); 1009 return; 1010 } 1011 ··· 1078 device = (struct dasd_device *) cqr->startdev; 1079 if (!device || 1080 strncmp(device->discipline->ebcname, (char *) &cqr->magic, 4)) { 1081 + DBF_EVENT_DEVID(DBF_DEBUG, cdev, "%s", 1082 + "invalid device in request"); 1083 return; 1084 } 1085
+1 -1
drivers/s390/block/dasd_eckd.c
··· 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", 3035 req, scsw_cstat(&irb->scsw), scsw_dstat(&irb->scsw), 3036 - scsw_cc(&irb->scsw), req->intrc); 3037 len += sprintf(page + len, KERN_ERR PRINTK_HEADER 3038 " device %s: Failing CCW: %p\n", 3039 dev_name(&device->cdev->dev),
··· 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", 3035 req, scsw_cstat(&irb->scsw), scsw_dstat(&irb->scsw), 3036 + scsw_cc(&irb->scsw), req ? req->intrc : 0); 3037 len += sprintf(page + len, KERN_ERR PRINTK_HEADER 3038 " device %s: Failing CCW: %p\n", 3039 dev_name(&device->cdev->dev),
+2 -5
drivers/s390/block/dasd_ioctl.c
··· 260 struct ccw_dev_id dev_id; 261 262 base = block->base; 263 - if (!base->discipline->fill_info) 264 return -EINVAL; 265 266 dasd_info = kzalloc(sizeof(struct dasd_information2_t), GFP_KERNEL); ··· 303 dasd_info->features |= 304 ((base->features & DASD_FEATURE_READONLY) != 0); 305 306 - if (base->discipline) 307 - memcpy(dasd_info->type, base->discipline->name, 4); 308 - else 309 - memcpy(dasd_info->type, "none", 4); 310 311 if (block->request_queue->request_fn) { 312 struct list_head *l;
··· 260 struct ccw_dev_id dev_id; 261 262 base = block->base; 263 + if (!base->discipline || !base->discipline->fill_info) 264 return -EINVAL; 265 266 dasd_info = kzalloc(sizeof(struct dasd_information2_t), GFP_KERNEL); ··· 303 dasd_info->features |= 304 ((base->features & DASD_FEATURE_READONLY) != 0); 305 306 + memcpy(dasd_info->type, base->discipline->name, 4); 307 308 if (block->request_queue->request_fn) { 309 struct list_head *l;
+2 -5
drivers/s390/block/dasd_proc.c
··· 72 /* Print device number. */ 73 seq_printf(m, "%s", dev_name(&device->cdev->dev)); 74 /* Print discipline string. */ 75 - if (device != NULL && device->discipline != NULL) 76 seq_printf(m, "(%s)", device->discipline->name); 77 else 78 seq_printf(m, "(none)"); ··· 92 substr = (device->features & DASD_FEATURE_READONLY) ? "(ro)" : " "; 93 seq_printf(m, "%4s: ", substr); 94 /* Print device status information. */ 95 - switch ((device != NULL) ? device->state : -1) { 96 - case -1: 97 - seq_printf(m, "unknown"); 98 - break; 99 case DASD_STATE_NEW: 100 seq_printf(m, "new"); 101 break;
··· 72 /* Print device number. */ 73 seq_printf(m, "%s", dev_name(&device->cdev->dev)); 74 /* Print discipline string. */ 75 + if (device->discipline != NULL) 76 seq_printf(m, "(%s)", device->discipline->name); 77 else 78 seq_printf(m, "(none)"); ··· 92 substr = (device->features & DASD_FEATURE_READONLY) ? "(ro)" : " "; 93 seq_printf(m, "%4s: ", substr); 94 /* Print device status information. */ 95 + switch (device->state) { 96 case DASD_STATE_NEW: 97 seq_printf(m, "new"); 98 break;
+4
drivers/s390/char/sclp_vt220.c
··· 495 if (tty->driver_data == NULL) 496 return -ENOMEM; 497 tty->low_latency = 0; 498 } 499 return 0; 500 }
··· 495 if (tty->driver_data == NULL) 496 return -ENOMEM; 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 + } 502 } 503 return 0; 504 }
+2
drivers/s390/crypto/zcrypt_pcicc.c
··· 373 zdev->max_mod_size = PCICC_MAX_MOD_SIZE_OLD; 374 return -EAGAIN; 375 } 376 zdev->online = 0; 377 return -EAGAIN; /* repeat the request on a different device. */ 378 }
··· 373 zdev->max_mod_size = PCICC_MAX_MOD_SIZE_OLD; 374 return -EAGAIN; 375 } 376 + if (service_rc == 8 && service_rs == 72) 377 + return -EINVAL; 378 zdev->online = 0; 379 return -EAGAIN; /* repeat the request on a different device. */ 380 }
+2
drivers/s390/crypto/zcrypt_pcixcc.c
··· 470 } 471 if (service_rc == 12 && service_rs == 769) 472 return -EINVAL; 473 zdev->online = 0; 474 return -EAGAIN; /* repeat the request on a different device. */ 475 }
··· 470 } 471 if (service_rc == 12 && service_rs == 769) 472 return -EINVAL; 473 + if (service_rc == 8 && service_rs == 72) 474 + return -EINVAL; 475 zdev->online = 0; 476 return -EAGAIN; /* repeat the request on a different device. */ 477 }