diff options
author | Peter Oberparleiter <peter.oberparleiter@de.ibm.com> | 2007-04-27 10:01:35 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2007-04-27 10:01:40 -0400 |
commit | 7ad6a24970325294a22a08446d473384c15b928e (patch) | |
tree | c8f1e25035b207e2a45a29138309acaee20d6cb6 /drivers/s390/cio/cio.h | |
parent | 83b3370c79b91b9be3f6540c3c914e689134b45f (diff) |
[S390] cio: fix subchannel channel-path data usage
Ensure that channel-path related subchannel data is only retrieved and
used when it is valid and that it is updated when it may have changed.
Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/cio.h')
-rw-r--r-- | drivers/s390/cio/cio.h | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/drivers/s390/cio/cio.h b/drivers/s390/cio/cio.h index e62ab5c52863..7446c39951a7 100644 --- a/drivers/s390/cio/cio.h +++ b/drivers/s390/cio/cio.h | |||
@@ -1,19 +1,11 @@ | |||
1 | #ifndef S390_CIO_H | 1 | #ifndef S390_CIO_H |
2 | #define S390_CIO_H | 2 | #define S390_CIO_H |
3 | 3 | ||
4 | #include "schid.h" | ||
5 | #include <linux/mutex.h> | 4 | #include <linux/mutex.h> |
6 | #include <linux/device.h> | 5 | #include <linux/device.h> |
7 | 6 | #include <asm/chpid.h> | |
8 | /* | 7 | #include "chsc.h" |
9 | * where we put the ssd info | 8 | #include "schid.h" |
10 | */ | ||
11 | struct ssd_info { | ||
12 | __u8 valid:1; | ||
13 | __u8 type:7; /* subchannel type */ | ||
14 | __u8 chpid[8]; /* chpids */ | ||
15 | __u16 fla[8]; /* full link addresses */ | ||
16 | } __attribute__ ((packed)); | ||
17 | 9 | ||
18 | /* | 10 | /* |
19 | * path management control word | 11 | * path management control word |
@@ -109,7 +101,7 @@ struct subchannel { | |||
109 | struct schib schib; /* subchannel information block */ | 101 | struct schib schib; /* subchannel information block */ |
110 | struct orb orb; /* operation request block */ | 102 | struct orb orb; /* operation request block */ |
111 | struct ccw1 sense_ccw; /* static ccw for sense command */ | 103 | struct ccw1 sense_ccw; /* static ccw for sense command */ |
112 | struct ssd_info ssd_info; /* subchannel description */ | 104 | struct chsc_ssd_info ssd_info; /* subchannel description */ |
113 | struct device dev; /* entry in device tree */ | 105 | struct device dev; /* entry in device tree */ |
114 | struct css_driver *driver; | 106 | struct css_driver *driver; |
115 | } __attribute__ ((aligned(8))); | 107 | } __attribute__ ((aligned(8))); |