Commit 4c24da79 authored by Cornelia Huck's avatar Cornelia Huck Committed by Linus Torvalds

[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: default avatarCornelia Huck <cohuck@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent fd49f41a
/* /*
* drivers/s390/cio/cio.c * drivers/s390/cio/cio.c
* S/390 common I/O routines -- low level i/o calls * 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, * Copyright (C) 1999-2002 IBM Deutschland Entwicklung GmbH,
* IBM Corporation * IBM Corporation
...@@ -815,7 +815,8 @@ __clear_subchannel_easy(unsigned int schid) ...@@ -815,7 +815,8 @@ __clear_subchannel_easy(unsigned int schid)
struct tpi_info ti; struct tpi_info ti;
if (tpi(&ti)) { if (tpi(&ti)) {
tsch(schid, (struct irb *)__LC_IRB); tsch(ti.irq, (struct irb *)__LC_IRB);
if (ti.irq == schid)
return 0; return 0;
} }
udelay(100); udelay(100);
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <asm/ccwdev.h> #include <asm/ccwdev.h>
#include <asm/qdio.h> #include <asm/cio.h>
#include "cio.h" #include "cio.h"
#include "cio_debug.h" #include "cio_debug.h"
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
#include "device.h" #include "device.h"
#include "chsc.h" #include "chsc.h"
#include "ioasm.h" #include "ioasm.h"
#include "qdio.h"
int int
device_is_online(struct subchannel *sch) device_is_online(struct subchannel *sch)
......
/* /*
* drivers/s390/cio/device_ops.c * drivers/s390/cio/device_ops.c
* *
* $Revision: 1.56 $ * $Revision: 1.57 $
* *
* Copyright (C) 2002 IBM Deutschland Entwicklung GmbH, * Copyright (C) 2002 IBM Deutschland Entwicklung GmbH,
* IBM Corporation * IBM Corporation
...@@ -19,14 +19,12 @@ ...@@ -19,14 +19,12 @@
#include <asm/ccwdev.h> #include <asm/ccwdev.h>
#include <asm/idals.h> #include <asm/idals.h>
#include <asm/qdio.h>
#include "cio.h" #include "cio.h"
#include "cio_debug.h" #include "cio_debug.h"
#include "css.h" #include "css.h"
#include "chsc.h" #include "chsc.h"
#include "device.h" #include "device.h"
#include "qdio.h"
int int
ccw_device_set_options(struct ccw_device *cdev, unsigned long flags) ccw_device_set_options(struct ccw_device *cdev, unsigned long flags)
......
...@@ -21,7 +21,7 @@ struct tpi_info { ...@@ -21,7 +21,7 @@ struct tpi_info {
* Some S390 specific IO instructions as inline * 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; int ccode;
...@@ -36,7 +36,7 @@ extern __inline__ int stsch(int irq, volatile struct schib *addr) ...@@ -36,7 +36,7 @@ extern __inline__ int stsch(int irq, volatile struct schib *addr)
return ccode; return ccode;
} }
extern __inline__ int msch(int irq, volatile struct schib *addr) static inline int msch(int irq, volatile struct schib *addr)
{ {
int ccode; int ccode;
...@@ -51,7 +51,7 @@ extern __inline__ int msch(int irq, volatile struct schib *addr) ...@@ -51,7 +51,7 @@ extern __inline__ int msch(int irq, volatile struct schib *addr)
return ccode; 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; int ccode;
...@@ -79,7 +79,7 @@ extern __inline__ int msch_err(int irq, volatile struct schib *addr) ...@@ -79,7 +79,7 @@ extern __inline__ int msch_err(int irq, volatile struct schib *addr)
return ccode; return ccode;
} }
extern __inline__ int tsch(int irq, volatile struct irb *addr) static inline int tsch(int irq, volatile struct irb *addr)
{ {
int ccode; int ccode;
...@@ -94,7 +94,7 @@ extern __inline__ int tsch(int irq, volatile struct irb *addr) ...@@ -94,7 +94,7 @@ extern __inline__ int tsch(int irq, volatile struct irb *addr)
return ccode; return ccode;
} }
extern __inline__ int tpi( volatile struct tpi_info *addr) static inline int tpi( volatile struct tpi_info *addr)
{ {
int ccode; int ccode;
...@@ -108,7 +108,7 @@ extern __inline__ int tpi( volatile struct tpi_info *addr) ...@@ -108,7 +108,7 @@ extern __inline__ int tpi( volatile struct tpi_info *addr)
return ccode; return ccode;
} }
extern __inline__ int ssch(int irq, volatile struct orb *addr) static inline int ssch(int irq, volatile struct orb *addr)
{ {
int ccode; int ccode;
...@@ -123,7 +123,7 @@ extern __inline__ int ssch(int irq, volatile struct orb *addr) ...@@ -123,7 +123,7 @@ extern __inline__ int ssch(int irq, volatile struct orb *addr)
return ccode; return ccode;
} }
extern __inline__ int rsch(int irq) static inline int rsch(int irq)
{ {
int ccode; int ccode;
...@@ -138,7 +138,7 @@ extern __inline__ int rsch(int irq) ...@@ -138,7 +138,7 @@ extern __inline__ int rsch(int irq)
return ccode; return ccode;
} }
extern __inline__ int csch(int irq) static inline int csch(int irq)
{ {
int ccode; int ccode;
...@@ -153,7 +153,7 @@ extern __inline__ int csch(int irq) ...@@ -153,7 +153,7 @@ extern __inline__ int csch(int irq)
return ccode; return ccode;
} }
extern __inline__ int hsch(int irq) static inline int hsch(int irq)
{ {
int ccode; int ccode;
...@@ -168,7 +168,7 @@ extern __inline__ int hsch(int irq) ...@@ -168,7 +168,7 @@ extern __inline__ int hsch(int irq)
return ccode; return ccode;
} }
extern __inline__ int xsch(int irq) static inline int xsch(int irq)
{ {
int ccode; int ccode;
...@@ -183,7 +183,7 @@ extern __inline__ int xsch(int irq) ...@@ -183,7 +183,7 @@ extern __inline__ int xsch(int irq)
return ccode; return ccode;
} }
extern __inline__ int chsc(void *chsc_area) static inline int chsc(void *chsc_area)
{ {
int cc; int cc;
...@@ -198,7 +198,7 @@ extern __inline__ int chsc(void *chsc_area) ...@@ -198,7 +198,7 @@ extern __inline__ int chsc(void *chsc_area)
return cc; return cc;
} }
extern __inline__ int iac( void) static inline int iac( void)
{ {
int ccode; int ccode;
...@@ -210,7 +210,7 @@ extern __inline__ int iac( void) ...@@ -210,7 +210,7 @@ extern __inline__ int iac( void)
return ccode; return ccode;
} }
extern __inline__ int rchp(int chpid) static inline int rchp(int chpid)
{ {
int ccode; int ccode;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment