Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

authored by

Cornelia Huck and committed by
Linus Torvalds
4c24da79 fd49f41a

+19 -21
+4 -3
drivers/s390/cio/cio.c
··· 1 1 /* 2 2 * drivers/s390/cio/cio.c 3 3 * S/390 common I/O routines -- low level i/o calls 4 - * $Revision: 1.134 $ 4 + * $Revision: 1.135 $ 5 5 * 6 6 * Copyright (C) 1999-2002 IBM Deutschland Entwicklung GmbH, 7 7 * IBM Corporation ··· 815 815 struct tpi_info ti; 816 816 817 817 if (tpi(&ti)) { 818 - tsch(schid, (struct irb *)__LC_IRB); 819 - return 0; 818 + tsch(ti.irq, (struct irb *)__LC_IRB); 819 + if (ti.irq == schid) 820 + return 0; 820 821 } 821 822 udelay(100); 822 823 }
+1 -2
drivers/s390/cio/device_fsm.c
··· 13 13 #include <linux/init.h> 14 14 15 15 #include <asm/ccwdev.h> 16 - #include <asm/qdio.h> 16 + #include <asm/cio.h> 17 17 18 18 #include "cio.h" 19 19 #include "cio_debug.h" ··· 21 21 #include "device.h" 22 22 #include "chsc.h" 23 23 #include "ioasm.h" 24 - #include "qdio.h" 25 24 26 25 int 27 26 device_is_online(struct subchannel *sch)
+1 -3
drivers/s390/cio/device_ops.c
··· 1 1 /* 2 2 * drivers/s390/cio/device_ops.c 3 3 * 4 - * $Revision: 1.56 $ 4 + * $Revision: 1.57 $ 5 5 * 6 6 * Copyright (C) 2002 IBM Deutschland Entwicklung GmbH, 7 7 * IBM Corporation ··· 19 19 20 20 #include <asm/ccwdev.h> 21 21 #include <asm/idals.h> 22 - #include <asm/qdio.h> 23 22 24 23 #include "cio.h" 25 24 #include "cio_debug.h" 26 25 #include "css.h" 27 26 #include "chsc.h" 28 27 #include "device.h" 29 - #include "qdio.h" 30 28 31 29 int 32 30 ccw_device_set_options(struct ccw_device *cdev, unsigned long flags)
+13 -13
drivers/s390/cio/ioasm.h
··· 21 21 * Some S390 specific IO instructions as inline 22 22 */ 23 23 24 - extern __inline__ int stsch(int irq, volatile struct schib *addr) 24 + static inline int stsch(int irq, volatile struct schib *addr) 25 25 { 26 26 int ccode; 27 27 ··· 36 36 return ccode; 37 37 } 38 38 39 - extern __inline__ int msch(int irq, volatile struct schib *addr) 39 + static inline int msch(int irq, volatile struct schib *addr) 40 40 { 41 41 int ccode; 42 42 ··· 51 51 return ccode; 52 52 } 53 53 54 - extern __inline__ int msch_err(int irq, volatile struct schib *addr) 54 + static inline int msch_err(int irq, volatile struct schib *addr) 55 55 { 56 56 int ccode; 57 57 ··· 79 79 return ccode; 80 80 } 81 81 82 - extern __inline__ int tsch(int irq, volatile struct irb *addr) 82 + static inline int tsch(int irq, volatile struct irb *addr) 83 83 { 84 84 int ccode; 85 85 ··· 94 94 return ccode; 95 95 } 96 96 97 - extern __inline__ int tpi( volatile struct tpi_info *addr) 97 + static inline int tpi( volatile struct tpi_info *addr) 98 98 { 99 99 int ccode; 100 100 ··· 108 108 return ccode; 109 109 } 110 110 111 - extern __inline__ int ssch(int irq, volatile struct orb *addr) 111 + static inline int ssch(int irq, volatile struct orb *addr) 112 112 { 113 113 int ccode; 114 114 ··· 123 123 return ccode; 124 124 } 125 125 126 - extern __inline__ int rsch(int irq) 126 + static inline int rsch(int irq) 127 127 { 128 128 int ccode; 129 129 ··· 138 138 return ccode; 139 139 } 140 140 141 - extern __inline__ int csch(int irq) 141 + static inline int csch(int irq) 142 142 { 143 143 int ccode; 144 144 ··· 153 153 return ccode; 154 154 } 155 155 156 - extern __inline__ int hsch(int irq) 156 + static inline int hsch(int irq) 157 157 { 158 158 int ccode; 159 159 ··· 168 168 return ccode; 169 169 } 170 170 171 - extern __inline__ int xsch(int irq) 171 + static inline int xsch(int irq) 172 172 { 173 173 int ccode; 174 174 ··· 183 183 return ccode; 184 184 } 185 185 186 - extern __inline__ int chsc(void *chsc_area) 186 + static inline int chsc(void *chsc_area) 187 187 { 188 188 int cc; 189 189 ··· 198 198 return cc; 199 199 } 200 200 201 - extern __inline__ int iac( void) 201 + static inline int iac( void) 202 202 { 203 203 int ccode; 204 204 ··· 210 210 return ccode; 211 211 } 212 212 213 - extern __inline__ int rchp(int chpid) 213 + static inline int rchp(int chpid) 214 214 { 215 215 int ccode; 216 216