From 83a61ebb07459c54b48edc3d6cde0f0db50f44bb Mon Sep 17 00:00:00 2001 From: Adrian Bunk Date: Tue, 10 Jun 2008 20:56:36 +0200 Subject: [PATCH] --- yaml --- r: 97899 b: refs/heads/master c: b76916462d990751882eaeadc75ac8c487d6de1d h: refs/heads/master i: 97897: 680d1ae548b071a6a177d81b9b76918db1addffe 97895: 733b0cc6e50dfeb52190587047bbddfab6ffb271 v: v3 --- [refs] | 2 +- trunk/arch/s390/Kconfig | 1 - trunk/arch/s390/kernel/smp.c | 2 +- trunk/arch/s390/mm/vmem.c | 2 +- trunk/drivers/ide/ide-probe.c | 5 ++--- trunk/drivers/ide/ide-proc.c | 1 - trunk/drivers/s390/char/sclp_vt220.c | 1 - trunk/drivers/s390/char/tape_3590.c | 2 +- trunk/drivers/s390/cio/blacklist.c | 6 +++--- trunk/drivers/s390/cio/cio.c | 20 +++++++++----------- trunk/include/asm-s390/system.h | 8 ++++---- trunk/include/linux/ide.h | 2 +- trunk/ipc/shm.c | 2 ++ 13 files changed, 25 insertions(+), 29 deletions(-) diff --git a/[refs] b/[refs] index efedc7d5a439..4829ae089668 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 19f2b8dfea10e4d5cd34feb08cbab738504c25cf +refs/heads/master: b76916462d990751882eaeadc75ac8c487d6de1d diff --git a/trunk/arch/s390/Kconfig b/trunk/arch/s390/Kconfig index 107e492cb47e..93acb3c1859d 100644 --- a/trunk/arch/s390/Kconfig +++ b/trunk/arch/s390/Kconfig @@ -304,7 +304,6 @@ config ARCH_SPARSEMEM_ENABLE def_bool y select SPARSEMEM_VMEMMAP_ENABLE select SPARSEMEM_VMEMMAP - select SPARSEMEM_STATIC if !64BIT config ARCH_SPARSEMEM_DEFAULT def_bool y diff --git a/trunk/arch/s390/kernel/smp.c b/trunk/arch/s390/kernel/smp.c index 5d4fa4b1c74c..42b1d12ebb10 100644 --- a/trunk/arch/s390/kernel/smp.c +++ b/trunk/arch/s390/kernel/smp.c @@ -711,7 +711,7 @@ int __cpuinit __cpu_up(unsigned int cpu) memset(sf, 0, sizeof(struct stack_frame)); sf->gprs[9] = (unsigned long) sf; cpu_lowcore->save_area[15] = (unsigned long) sf; - __ctl_store(cpu_lowcore->cregs_save_area, 0, 15); + __ctl_store(cpu_lowcore->cregs_save_area[0], 0, 15); asm volatile( " stam 0,15,0(%0)" : : "a" (&cpu_lowcore->access_regs_save_area) : "memory"); diff --git a/trunk/arch/s390/mm/vmem.c b/trunk/arch/s390/mm/vmem.c index e4868bfc672f..f591188fa2c0 100644 --- a/trunk/arch/s390/mm/vmem.c +++ b/trunk/arch/s390/mm/vmem.c @@ -236,7 +236,7 @@ static int insert_memory_segment(struct memory_segment *seg) { struct memory_segment *tmp; - if (seg->start + seg->size > VMEM_MAX_PHYS || + if (seg->start + seg->size >= VMEM_MAX_PHYS || seg->start + seg->size < seg->start) return -ERANGE; diff --git a/trunk/drivers/ide/ide-probe.c b/trunk/drivers/ide/ide-probe.c index 655ec7ef568a..0bccb63d10a1 100644 --- a/trunk/drivers/ide/ide-probe.c +++ b/trunk/drivers/ide/ide-probe.c @@ -1333,8 +1333,7 @@ static void ide_port_init_devices(ide_hwif_t *hwif) static void ide_init_port(ide_hwif_t *hwif, unsigned int port, const struct ide_port_info *d) { - if (d->chipset != ide_etrax100) - hwif->channel = port; + hwif->channel = port; if (d->chipset) hwif->chipset = d->chipset; @@ -1519,7 +1518,7 @@ int ide_device_add_all(u8 *idx, const struct ide_port_info *d) continue; } - if (d->chipset != ide_etrax100 && (i & 1) && mate) { + if ((i & 1) && mate) { hwif->mate = mate; mate->mate = hwif; } diff --git a/trunk/drivers/ide/ide-proc.c b/trunk/drivers/ide/ide-proc.c index 8d6ad812a014..55ec7f798772 100644 --- a/trunk/drivers/ide/ide-proc.c +++ b/trunk/drivers/ide/ide-proc.c @@ -63,7 +63,6 @@ static int proc_ide_read_imodel case ide_pmac: name = "mac-io"; break; case ide_au1xxx: name = "au1xxx"; break; case ide_palm3710: name = "palm3710"; break; - case ide_etrax100: name = "etrax100"; break; case ide_acorn: name = "acorn"; break; default: name = "(unknown)"; break; } diff --git a/trunk/drivers/s390/char/sclp_vt220.c b/trunk/drivers/s390/char/sclp_vt220.c index 3e577f655b18..62576af36f47 100644 --- a/trunk/drivers/s390/char/sclp_vt220.c +++ b/trunk/drivers/s390/char/sclp_vt220.c @@ -773,7 +773,6 @@ sclp_vt220_con_init(void) { int rc; - INIT_LIST_HEAD(&sclp_vt220_register.list); if (!CONSOLE_IS_SCLP) return 0; rc = __sclp_vt220_init(); diff --git a/trunk/drivers/s390/char/tape_3590.c b/trunk/drivers/s390/char/tape_3590.c index 42ce7915fc5d..8246ef3ab095 100644 --- a/trunk/drivers/s390/char/tape_3590.c +++ b/trunk/drivers/s390/char/tape_3590.c @@ -1598,7 +1598,7 @@ tape_3590_setup_device(struct tape_device *device) rc = tape_3590_read_dev_chars(device, rdc_data); if (rc) { DBF_LH(3, "Read device characteristics failed!\n"); - goto fail_rdc_data; + goto fail_kmalloc; } rc = tape_std_assign(device); if (rc) diff --git a/trunk/drivers/s390/cio/blacklist.c b/trunk/drivers/s390/cio/blacklist.c index 0bfcbbe375c4..a4a5f2efea48 100644 --- a/trunk/drivers/s390/cio/blacklist.c +++ b/trunk/drivers/s390/cio/blacklist.c @@ -97,8 +97,8 @@ static int pure_hex(char **cp, unsigned int *val, int min_digit, return 0; } -static int parse_busid(char *str, unsigned int *cssid, unsigned int *ssid, - unsigned int *devno, int msgtrigger) +static int parse_busid(char *str, int *cssid, int *ssid, int *devno, + int msgtrigger) { char *str_work; int val, rc, ret; @@ -148,7 +148,7 @@ static int parse_busid(char *str, unsigned int *cssid, unsigned int *ssid, static int blacklist_parse_parameters(char *str, range_action action, int msgtrigger) { - unsigned int from_cssid, to_cssid, from_ssid, to_ssid, from, to; + int from_cssid, to_cssid, from_ssid, to_ssid, from, to; int rc, totalrc; char *parm; range_action ra; diff --git a/trunk/drivers/s390/cio/cio.c b/trunk/drivers/s390/cio/cio.c index b32d7eb3d81a..82c6a2d45128 100644 --- a/trunk/drivers/s390/cio/cio.c +++ b/trunk/drivers/s390/cio/cio.c @@ -576,14 +576,12 @@ cio_validate_subchannel (struct subchannel *sch, struct subchannel_id schid) err = -ENODEV; goto out; } - if (cio_is_console(sch->schid)) { + if (cio_is_console(sch->schid)) sch->opm = 0xff; - sch->isc = 1; - } else { + else sch->opm = chp_get_sch_opm(sch); - sch->isc = 3; - } sch->lpm = sch->schib.pmcw.pam & sch->opm; + sch->isc = 3; CIO_MSG_EVENT(6, "Detected device %04x on subchannel 0.%x.%04X " "- PIM = %02X, PAM = %02X, POM = %02X\n", @@ -706,9 +704,9 @@ void wait_cons_dev(void) if (!console_subchannel_in_use) return; - /* disable all but isc 1 (console device) */ + /* disable all but isc 7 (console device) */ __ctl_store (save_cr6, 6, 6); - cr6 = 0x40000000; + cr6 = 0x01000000; __ctl_load (cr6, 6, 6); do { @@ -790,11 +788,11 @@ cio_probe_console(void) } /* - * enable console I/O-interrupt subclass 1 + * enable console I/O-interrupt subclass 7 */ - ctl_set_bit(6, 30); - console_subchannel.isc = 1; - console_subchannel.schib.pmcw.isc = 1; + ctl_set_bit(6, 24); + console_subchannel.isc = 7; + console_subchannel.schib.pmcw.isc = 7; console_subchannel.schib.pmcw.intparm = (u32)(addr_t)&console_subchannel; ret = cio_modify(&console_subchannel); diff --git a/trunk/include/asm-s390/system.h b/trunk/include/asm-s390/system.h index 819e7d99ca0c..e0d4500d5f95 100644 --- a/trunk/include/asm-s390/system.h +++ b/trunk/include/asm-s390/system.h @@ -315,14 +315,14 @@ __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new, int size) asm volatile( \ " lctlg %1,%2,0(%0)\n" \ : : "a" (&array), "i" (low), "i" (high), \ - "m" (*(addrtype *)(&array))); \ + "m" (*(addrtype *)(array))); \ }) #define __ctl_store(array, low, high) ({ \ typedef struct { char _[sizeof(array)]; } addrtype; \ asm volatile( \ " stctg %2,%3,0(%1)\n" \ - : "=m" (*(addrtype *)(&array)) \ + : "=m" (*(addrtype *)(array)) \ : "a" (&array), "i" (low), "i" (high)); \ }) @@ -333,14 +333,14 @@ __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new, int size) asm volatile( \ " lctl %1,%2,0(%0)\n" \ : : "a" (&array), "i" (low), "i" (high), \ - "m" (*(addrtype *)(&array))); \ + "m" (*(addrtype *)(array))); \ }) #define __ctl_store(array, low, high) ({ \ typedef struct { char _[sizeof(array)]; } addrtype; \ asm volatile( \ " stctl %2,%3,0(%1)\n" \ - : "=m" (*(addrtype *)(&array)) \ + : "=m" (*(addrtype *)(array)) \ : "a" (&array), "i" (low), "i" (high)); \ }) diff --git a/trunk/include/linux/ide.h b/trunk/include/linux/ide.h index f8f195c20da2..9918772bf274 100644 --- a/trunk/include/linux/ide.h +++ b/trunk/include/linux/ide.h @@ -153,7 +153,7 @@ enum { ide_unknown, ide_generic, ide_pci, ide_qd65xx, ide_umc8672, ide_ht6560b, ide_rz1000, ide_trm290, ide_cmd646, ide_cy82c693, ide_4drives, - ide_pmac, ide_etrax100, ide_acorn, + ide_pmac, ide_acorn, ide_au1xxx, ide_palm3710 }; diff --git a/trunk/ipc/shm.c b/trunk/ipc/shm.c index d05f6b564998..554429ade079 100644 --- a/trunk/ipc/shm.c +++ b/trunk/ipc/shm.c @@ -894,6 +894,8 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr) if (!sfd) goto out_put_dentry; + err = -ENOMEM; + file = alloc_file(path.mnt, path.dentry, f_mode, &shm_file_operations); if (!file) goto out_free;