diff options
author | Cornelia Huck <cornelia.huck@de.ibm.com> | 2008-04-30 07:38:39 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2008-04-30 07:38:45 -0400 |
commit | edf2209692769d3e461c0351553098bc017c2caf (patch) | |
tree | 833d40fbff5e35a06fcd3c55736d20e4e82901f6 /drivers/s390/cio/cio.h | |
parent | 47494f6a84cdae2740b62e1d86a1860df85d9bbb (diff) |
[S390] cio: Make isc handling more robust.
Introduce an ->isc field in the subchannel to store the desired
interruption subclass, since sch->schib.pmcw.isc may be overwritten
by the hardware on stsch() after machine checks.
Signed-off-by: Cornelia Huck <cornelia.huck@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 | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/s390/cio/cio.h b/drivers/s390/cio/cio.h index 08f2235c5a6f..3c75412904dc 100644 --- a/drivers/s390/cio/cio.h +++ b/drivers/s390/cio/cio.h | |||
@@ -74,6 +74,7 @@ struct subchannel { | |||
74 | __u8 lpm; /* logical path mask */ | 74 | __u8 lpm; /* logical path mask */ |
75 | __u8 opm; /* operational path mask */ | 75 | __u8 opm; /* operational path mask */ |
76 | struct schib schib; /* subchannel information block */ | 76 | struct schib schib; /* subchannel information block */ |
77 | int isc; /* desired interruption subclass */ | ||
77 | struct chsc_ssd_info ssd_info; /* subchannel description */ | 78 | struct chsc_ssd_info ssd_info; /* subchannel description */ |
78 | struct device dev; /* entry in device tree */ | 79 | struct device dev; /* entry in device tree */ |
79 | struct css_driver *driver; | 80 | struct css_driver *driver; |
@@ -85,7 +86,7 @@ struct subchannel { | |||
85 | #define to_subchannel(n) container_of(n, struct subchannel, dev) | 86 | #define to_subchannel(n) container_of(n, struct subchannel, dev) |
86 | 87 | ||
87 | extern int cio_validate_subchannel (struct subchannel *, struct subchannel_id); | 88 | extern int cio_validate_subchannel (struct subchannel *, struct subchannel_id); |
88 | extern int cio_enable_subchannel(struct subchannel *, unsigned int, u32); | 89 | extern int cio_enable_subchannel(struct subchannel *, u32); |
89 | extern int cio_disable_subchannel (struct subchannel *); | 90 | extern int cio_disable_subchannel (struct subchannel *); |
90 | extern int cio_cancel (struct subchannel *); | 91 | extern int cio_cancel (struct subchannel *); |
91 | extern int cio_clear (struct subchannel *); | 92 | extern int cio_clear (struct subchannel *); |