diff options
author | Cornelia Huck <cohuck@de.ibm.com> | 2005-09-03 15:58:01 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@evo.osdl.org> | 2005-09-05 00:06:28 -0700 |
commit | 4c24da79e29537f0e240a331220a1c46cb9bc085 (patch) | |
tree | c71f0c6433274a5f029884f630a3a03c7bba8a30 /drivers/s390 | |
parent | fd49f41aa0c125ec649c56a45337b3024d6b1736 (diff) | |
download | linux-4c24da79e29537f0e240a331220a1c46cb9bc085.tar.gz linux-4c24da79e29537f0e240a331220a1c46cb9bc085.tar.bz2 linux-4c24da79e29537f0e240a331220a1c46cb9bc085.zip |
[PATCH] s390: reIPL fix and extern/static inline
Common i/o layer changes:
- Collect the irb at the correct subchannel when waiting for the clear
interrupt during subchannel cleaning befor reIPL - don't stop at the first
interrupt that comes in.
- Change "extern __inline__" to "static inline".
- Remove unneeded qdio includes.
Signed-off-by: Cornelia Huck <cohuck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/cio/cio.c | 7 | ||||
-rw-r--r-- | drivers/s390/cio/device_fsm.c | 3 | ||||
-rw-r--r-- | drivers/s390/cio/device_ops.c | 4 | ||||
-rw-r--r-- | drivers/s390/cio/ioasm.h | 26 |
4 files changed, 19 insertions, 21 deletions
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c index ea813bdce1d6..185bc73c3ecd 100644 --- a/drivers/s390/cio/cio.c +++ b/drivers/s390/cio/cio.c @@ -1,7 +1,7 @@ /* * drivers/s390/cio/cio.c * S/390 common I/O routines -- low level i/o calls - * $Revision: 1.134 $ + * $Revision: 1.135 $ * * Copyright (C) 1999-2002 IBM Deutschland Entwicklung GmbH, * IBM Corporation @@ -815,8 +815,9 @@ __clear_subchannel_easy(unsigned int schid) struct tpi_info ti; if (tpi(&ti)) { - tsch(schid, (struct irb *)__LC_IRB); - return 0; + tsch(ti.irq, (struct irb *)__LC_IRB); + if (ti.irq == schid) + return 0; } udelay(100); } diff --git a/drivers/s390/cio/device_fsm.c b/drivers/s390/cio/device_fsm.c index ee7a05e0c3ba..fbe4202a3f6f 100644 --- a/drivers/s390/cio/device_fsm.c +++ b/drivers/s390/cio/device_fsm.c @@ -13,7 +13,7 @@ #include <linux/init.h> #include <asm/ccwdev.h> -#include <asm/qdio.h> +#include <asm/cio.h> #include "cio.h" #include "cio_debug.h" @@ -21,7 +21,6 @@ #include "device.h" #include "chsc.h" #include "ioasm.h" -#include "qdio.h" int device_is_online(struct subchannel *sch) diff --git a/drivers/s390/cio/device_ops.c b/drivers/s390/cio/device_ops.c index 02d01a0de16c..ad3fe5aeb663 100644 --- a/drivers/s390/cio/device_ops.c +++ b/drivers/s390/cio/device_ops.c @@ -1,7 +1,7 @@ /* * drivers/s390/cio/device_ops.c * - * $Revision: 1.56 $ + * $Revision: 1.57 $ * * Copyright (C) 2002 IBM Deutschland Entwicklung GmbH, * IBM Corporation @@ -19,14 +19,12 @@ #include <asm/ccwdev.h> #include <asm/idals.h> -#include <asm/qdio.h> #include "cio.h" #include "cio_debug.h" #include "css.h" #include "chsc.h" #include "device.h" -#include "qdio.h" int ccw_device_set_options(struct ccw_device *cdev, unsigned long flags) diff --git a/drivers/s390/cio/ioasm.h b/drivers/s390/cio/ioasm.h index c874607d9a80..45480a2bc4c0 100644 --- a/drivers/s390/cio/ioasm.h +++ b/drivers/s390/cio/ioasm.h @@ -21,7 +21,7 @@ struct tpi_info { * Some S390 specific IO instructions as inline */ -extern __inline__ int stsch(int irq, volatile struct schib *addr) +static inline int stsch(int irq, volatile struct schib *addr) { int ccode; @@ -36,7 +36,7 @@ extern __inline__ int stsch(int irq, volatile struct schib *addr) return ccode; } -extern __inline__ int msch(int irq, volatile struct schib *addr) +static inline int msch(int irq, volatile struct schib *addr) { int ccode; @@ -51,7 +51,7 @@ extern __inline__ int msch(int irq, volatile struct schib *addr) return ccode; } -extern __inline__ int msch_err(int irq, volatile struct schib *addr) +static inline int msch_err(int irq, volatile struct schib *addr) { int ccode; @@ -79,7 +79,7 @@ extern __inline__ int msch_err(int irq, volatile struct schib *addr) return ccode; } -extern __inline__ int tsch(int irq, volatile struct irb *addr) +static inline int tsch(int irq, volatile struct irb *addr) { int ccode; @@ -94,7 +94,7 @@ extern __inline__ int tsch(int irq, volatile struct irb *addr) return ccode; } -extern __inline__ int tpi( volatile struct tpi_info *addr) +static inline int tpi( volatile struct tpi_info *addr) { int ccode; @@ -108,7 +108,7 @@ extern __inline__ int tpi( volatile struct tpi_info *addr) return ccode; } -extern __inline__ int ssch(int irq, volatile struct orb *addr) +static inline int ssch(int irq, volatile struct orb *addr) { int ccode; @@ -123,7 +123,7 @@ extern __inline__ int ssch(int irq, volatile struct orb *addr) return ccode; } -extern __inline__ int rsch(int irq) +static inline int rsch(int irq) { int ccode; @@ -138,7 +138,7 @@ extern __inline__ int rsch(int irq) return ccode; } -extern __inline__ int csch(int irq) +static inline int csch(int irq) { int ccode; @@ -153,7 +153,7 @@ extern __inline__ int csch(int irq) return ccode; } -extern __inline__ int hsch(int irq) +static inline int hsch(int irq) { int ccode; @@ -168,7 +168,7 @@ extern __inline__ int hsch(int irq) return ccode; } -extern __inline__ int xsch(int irq) +static inline int xsch(int irq) { int ccode; @@ -183,7 +183,7 @@ extern __inline__ int xsch(int irq) return ccode; } -extern __inline__ int chsc(void *chsc_area) +static inline int chsc(void *chsc_area) { int cc; @@ -198,7 +198,7 @@ extern __inline__ int chsc(void *chsc_area) return cc; } -extern __inline__ int iac( void) +static inline int iac( void) { int ccode; @@ -210,7 +210,7 @@ extern __inline__ int iac( void) return ccode; } -extern __inline__ int rchp(int chpid) +static inline int rchp(int chpid) { int ccode; |