diff options
| -rw-r--r-- | arch/s390/Kconfig | 1 | ||||
| -rw-r--r-- | arch/s390/kernel/smp.c | 2 | ||||
| -rw-r--r-- | arch/s390/mm/vmem.c | 2 | ||||
| -rw-r--r-- | drivers/s390/char/sclp_vt220.c | 1 | ||||
| -rw-r--r-- | drivers/s390/char/tape_3590.c | 2 | ||||
| -rw-r--r-- | drivers/s390/cio/blacklist.c | 6 | ||||
| -rw-r--r-- | drivers/s390/cio/cio.c | 20 | ||||
| -rw-r--r-- | include/asm-s390/system.h | 8 | ||||
| -rw-r--r-- | ipc/shm.c | 2 |
9 files changed, 23 insertions, 21 deletions
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index 93acb3c1859d..107e492cb47e 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig | |||
| @@ -304,6 +304,7 @@ config ARCH_SPARSEMEM_ENABLE | |||
| 304 | def_bool y | 304 | def_bool y |
| 305 | select SPARSEMEM_VMEMMAP_ENABLE | 305 | select SPARSEMEM_VMEMMAP_ENABLE |
| 306 | select SPARSEMEM_VMEMMAP | 306 | select SPARSEMEM_VMEMMAP |
| 307 | select SPARSEMEM_STATIC if !64BIT | ||
| 307 | 308 | ||
| 308 | config ARCH_SPARSEMEM_DEFAULT | 309 | config ARCH_SPARSEMEM_DEFAULT |
| 309 | def_bool y | 310 | def_bool y |
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index 42b1d12ebb10..5d4fa4b1c74c 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c | |||
| @@ -711,7 +711,7 @@ int __cpuinit __cpu_up(unsigned int cpu) | |||
| 711 | memset(sf, 0, sizeof(struct stack_frame)); | 711 | memset(sf, 0, sizeof(struct stack_frame)); |
| 712 | sf->gprs[9] = (unsigned long) sf; | 712 | sf->gprs[9] = (unsigned long) sf; |
| 713 | cpu_lowcore->save_area[15] = (unsigned long) sf; | 713 | cpu_lowcore->save_area[15] = (unsigned long) sf; |
| 714 | __ctl_store(cpu_lowcore->cregs_save_area[0], 0, 15); | 714 | __ctl_store(cpu_lowcore->cregs_save_area, 0, 15); |
| 715 | asm volatile( | 715 | asm volatile( |
| 716 | " stam 0,15,0(%0)" | 716 | " stam 0,15,0(%0)" |
| 717 | : : "a" (&cpu_lowcore->access_regs_save_area) : "memory"); | 717 | : : "a" (&cpu_lowcore->access_regs_save_area) : "memory"); |
diff --git a/arch/s390/mm/vmem.c b/arch/s390/mm/vmem.c index f591188fa2c0..e4868bfc672f 100644 --- a/arch/s390/mm/vmem.c +++ b/arch/s390/mm/vmem.c | |||
| @@ -236,7 +236,7 @@ static int insert_memory_segment(struct memory_segment *seg) | |||
| 236 | { | 236 | { |
| 237 | struct memory_segment *tmp; | 237 | struct memory_segment *tmp; |
| 238 | 238 | ||
| 239 | if (seg->start + seg->size >= VMEM_MAX_PHYS || | 239 | if (seg->start + seg->size > VMEM_MAX_PHYS || |
| 240 | seg->start + seg->size < seg->start) | 240 | seg->start + seg->size < seg->start) |
| 241 | return -ERANGE; | 241 | return -ERANGE; |
| 242 | 242 | ||
diff --git a/drivers/s390/char/sclp_vt220.c b/drivers/s390/char/sclp_vt220.c index 62576af36f47..3e577f655b18 100644 --- a/drivers/s390/char/sclp_vt220.c +++ b/drivers/s390/char/sclp_vt220.c | |||
| @@ -773,6 +773,7 @@ sclp_vt220_con_init(void) | |||
| 773 | { | 773 | { |
| 774 | int rc; | 774 | int rc; |
| 775 | 775 | ||
| 776 | INIT_LIST_HEAD(&sclp_vt220_register.list); | ||
| 776 | if (!CONSOLE_IS_SCLP) | 777 | if (!CONSOLE_IS_SCLP) |
| 777 | return 0; | 778 | return 0; |
| 778 | rc = __sclp_vt220_init(); | 779 | rc = __sclp_vt220_init(); |
diff --git a/drivers/s390/char/tape_3590.c b/drivers/s390/char/tape_3590.c index 8246ef3ab095..42ce7915fc5d 100644 --- a/drivers/s390/char/tape_3590.c +++ b/drivers/s390/char/tape_3590.c | |||
| @@ -1598,7 +1598,7 @@ tape_3590_setup_device(struct tape_device *device) | |||
| 1598 | rc = tape_3590_read_dev_chars(device, rdc_data); | 1598 | rc = tape_3590_read_dev_chars(device, rdc_data); |
| 1599 | if (rc) { | 1599 | if (rc) { |
| 1600 | DBF_LH(3, "Read device characteristics failed!\n"); | 1600 | DBF_LH(3, "Read device characteristics failed!\n"); |
| 1601 | goto fail_kmalloc; | 1601 | goto fail_rdc_data; |
| 1602 | } | 1602 | } |
| 1603 | rc = tape_std_assign(device); | 1603 | rc = tape_std_assign(device); |
| 1604 | if (rc) | 1604 | if (rc) |
diff --git a/drivers/s390/cio/blacklist.c b/drivers/s390/cio/blacklist.c index a4a5f2efea48..0bfcbbe375c4 100644 --- a/drivers/s390/cio/blacklist.c +++ b/drivers/s390/cio/blacklist.c | |||
| @@ -97,8 +97,8 @@ static int pure_hex(char **cp, unsigned int *val, int min_digit, | |||
| 97 | return 0; | 97 | return 0; |
| 98 | } | 98 | } |
| 99 | 99 | ||
| 100 | static int parse_busid(char *str, int *cssid, int *ssid, int *devno, | 100 | static int parse_busid(char *str, unsigned int *cssid, unsigned int *ssid, |
| 101 | int msgtrigger) | 101 | unsigned int *devno, int msgtrigger) |
| 102 | { | 102 | { |
| 103 | char *str_work; | 103 | char *str_work; |
| 104 | int val, rc, ret; | 104 | int val, rc, ret; |
| @@ -148,7 +148,7 @@ out: | |||
| 148 | static int blacklist_parse_parameters(char *str, range_action action, | 148 | static int blacklist_parse_parameters(char *str, range_action action, |
| 149 | int msgtrigger) | 149 | int msgtrigger) |
| 150 | { | 150 | { |
| 151 | int from_cssid, to_cssid, from_ssid, to_ssid, from, to; | 151 | unsigned int from_cssid, to_cssid, from_ssid, to_ssid, from, to; |
| 152 | int rc, totalrc; | 152 | int rc, totalrc; |
| 153 | char *parm; | 153 | char *parm; |
| 154 | range_action ra; | 154 | range_action ra; |
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c index 82c6a2d45128..b32d7eb3d81a 100644 --- a/drivers/s390/cio/cio.c +++ b/drivers/s390/cio/cio.c | |||
| @@ -576,12 +576,14 @@ cio_validate_subchannel (struct subchannel *sch, struct subchannel_id schid) | |||
| 576 | err = -ENODEV; | 576 | err = -ENODEV; |
| 577 | goto out; | 577 | goto out; |
| 578 | } | 578 | } |
| 579 | if (cio_is_console(sch->schid)) | 579 | if (cio_is_console(sch->schid)) { |
| 580 | sch->opm = 0xff; | 580 | sch->opm = 0xff; |
| 581 | else | 581 | sch->isc = 1; |
| 582 | } else { | ||
| 582 | sch->opm = chp_get_sch_opm(sch); | 583 | sch->opm = chp_get_sch_opm(sch); |
| 584 | sch->isc = 3; | ||
| 585 | } | ||
| 583 | sch->lpm = sch->schib.pmcw.pam & sch->opm; | 586 | sch->lpm = sch->schib.pmcw.pam & sch->opm; |
| 584 | sch->isc = 3; | ||
| 585 | 587 | ||
| 586 | CIO_MSG_EVENT(6, "Detected device %04x on subchannel 0.%x.%04X " | 588 | CIO_MSG_EVENT(6, "Detected device %04x on subchannel 0.%x.%04X " |
| 587 | "- PIM = %02X, PAM = %02X, POM = %02X\n", | 589 | "- PIM = %02X, PAM = %02X, POM = %02X\n", |
| @@ -704,9 +706,9 @@ void wait_cons_dev(void) | |||
| 704 | if (!console_subchannel_in_use) | 706 | if (!console_subchannel_in_use) |
| 705 | return; | 707 | return; |
| 706 | 708 | ||
| 707 | /* disable all but isc 7 (console device) */ | 709 | /* disable all but isc 1 (console device) */ |
| 708 | __ctl_store (save_cr6, 6, 6); | 710 | __ctl_store (save_cr6, 6, 6); |
| 709 | cr6 = 0x01000000; | 711 | cr6 = 0x40000000; |
| 710 | __ctl_load (cr6, 6, 6); | 712 | __ctl_load (cr6, 6, 6); |
| 711 | 713 | ||
| 712 | do { | 714 | do { |
| @@ -788,11 +790,11 @@ cio_probe_console(void) | |||
| 788 | } | 790 | } |
| 789 | 791 | ||
| 790 | /* | 792 | /* |
| 791 | * enable console I/O-interrupt subclass 7 | 793 | * enable console I/O-interrupt subclass 1 |
| 792 | */ | 794 | */ |
| 793 | ctl_set_bit(6, 24); | 795 | ctl_set_bit(6, 30); |
| 794 | console_subchannel.isc = 7; | 796 | console_subchannel.isc = 1; |
| 795 | console_subchannel.schib.pmcw.isc = 7; | 797 | console_subchannel.schib.pmcw.isc = 1; |
| 796 | console_subchannel.schib.pmcw.intparm = | 798 | console_subchannel.schib.pmcw.intparm = |
| 797 | (u32)(addr_t)&console_subchannel; | 799 | (u32)(addr_t)&console_subchannel; |
| 798 | ret = cio_modify(&console_subchannel); | 800 | ret = cio_modify(&console_subchannel); |
diff --git a/include/asm-s390/system.h b/include/asm-s390/system.h index e0d4500d5f95..819e7d99ca0c 100644 --- a/include/asm-s390/system.h +++ b/include/asm-s390/system.h | |||
| @@ -315,14 +315,14 @@ __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new, int size) | |||
| 315 | asm volatile( \ | 315 | asm volatile( \ |
| 316 | " lctlg %1,%2,0(%0)\n" \ | 316 | " lctlg %1,%2,0(%0)\n" \ |
| 317 | : : "a" (&array), "i" (low), "i" (high), \ | 317 | : : "a" (&array), "i" (low), "i" (high), \ |
| 318 | "m" (*(addrtype *)(array))); \ | 318 | "m" (*(addrtype *)(&array))); \ |
| 319 | }) | 319 | }) |
| 320 | 320 | ||
| 321 | #define __ctl_store(array, low, high) ({ \ | 321 | #define __ctl_store(array, low, high) ({ \ |
| 322 | typedef struct { char _[sizeof(array)]; } addrtype; \ | 322 | typedef struct { char _[sizeof(array)]; } addrtype; \ |
| 323 | asm volatile( \ | 323 | asm volatile( \ |
| 324 | " stctg %2,%3,0(%1)\n" \ | 324 | " stctg %2,%3,0(%1)\n" \ |
| 325 | : "=m" (*(addrtype *)(array)) \ | 325 | : "=m" (*(addrtype *)(&array)) \ |
| 326 | : "a" (&array), "i" (low), "i" (high)); \ | 326 | : "a" (&array), "i" (low), "i" (high)); \ |
| 327 | }) | 327 | }) |
| 328 | 328 | ||
| @@ -333,14 +333,14 @@ __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new, int size) | |||
| 333 | asm volatile( \ | 333 | asm volatile( \ |
| 334 | " lctl %1,%2,0(%0)\n" \ | 334 | " lctl %1,%2,0(%0)\n" \ |
| 335 | : : "a" (&array), "i" (low), "i" (high), \ | 335 | : : "a" (&array), "i" (low), "i" (high), \ |
| 336 | "m" (*(addrtype *)(array))); \ | 336 | "m" (*(addrtype *)(&array))); \ |
| 337 | }) | 337 | }) |
| 338 | 338 | ||
| 339 | #define __ctl_store(array, low, high) ({ \ | 339 | #define __ctl_store(array, low, high) ({ \ |
| 340 | typedef struct { char _[sizeof(array)]; } addrtype; \ | 340 | typedef struct { char _[sizeof(array)]; } addrtype; \ |
| 341 | asm volatile( \ | 341 | asm volatile( \ |
| 342 | " stctl %2,%3,0(%1)\n" \ | 342 | " stctl %2,%3,0(%1)\n" \ |
| 343 | : "=m" (*(addrtype *)(array)) \ | 343 | : "=m" (*(addrtype *)(&array)) \ |
| 344 | : "a" (&array), "i" (low), "i" (high)); \ | 344 | : "a" (&array), "i" (low), "i" (high)); \ |
| 345 | }) | 345 | }) |
| 346 | 346 | ||
| @@ -894,8 +894,6 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr) | |||
| 894 | if (!sfd) | 894 | if (!sfd) |
| 895 | goto out_put_dentry; | 895 | goto out_put_dentry; |
| 896 | 896 | ||
| 897 | err = -ENOMEM; | ||
| 898 | |||
| 899 | file = alloc_file(path.mnt, path.dentry, f_mode, &shm_file_operations); | 897 | file = alloc_file(path.mnt, path.dentry, f_mode, &shm_file_operations); |
| 900 | if (!file) | 898 | if (!file) |
| 901 | goto out_free; | 899 | goto out_free; |
