aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/block/dasd_eckd.h
diff options
context:
space:
mode:
authorStefan Haberland <stefan.haberland@de.ibm.com>2015-08-07 13:20:16 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2015-08-09 21:08:10 +0200
commitb179b037e568a27ab3e8f5bedea1f4455aba7378 (patch)
tree8341d133e4710adb347fb6f58351741af5c8e505 /drivers/s390/block/dasd_eckd.h
parents390/dasd: fix failing path verification (diff)
downloadlinux-dev-b179b037e568a27ab3e8f5bedea1f4455aba7378.tar.xz
linux-dev-b179b037e568a27ab3e8f5bedea1f4455aba7378.zip
s390/dasd: enhance CUIR scope detection
This patch adds an enhanced detection for control unit initiated reconfiguration request scope. The first approach assumed the scope of the reconfiguration request to be restricted to the path on which the message was received. The enhanced approach determines the full scope of the reconfiguration request by evaluating additional path and device selection information contained in the reconfiguration message. Reviewed-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com> Reviewed-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Stefan Haberland <stefan.haberland@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to '')
-rw-r--r--drivers/s390/block/dasd_eckd.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/s390/block/dasd_eckd.h b/drivers/s390/block/dasd_eckd.h
index ddab7df36e25..f8f91ee652d3 100644
--- a/drivers/s390/block/dasd_eckd.h
+++ b/drivers/s390/block/dasd_eckd.h
@@ -355,7 +355,8 @@ struct dasd_gneq {
__u8 identifier:2;
__u8 reserved:6;
} __attribute__ ((packed)) flags;
- __u8 reserved[5];
+ __u8 record_selector;
+ __u8 reserved[4];
struct {
__u8 value:2;
__u8 number:6;
@@ -492,10 +493,18 @@ struct alias_pav_group {
struct dasd_device *next;
};
+struct dasd_conf_data {
+ struct dasd_ned neds[5];
+ u8 reserved[64];
+ struct dasd_gneq gneq;
+} __packed;
+
struct dasd_eckd_private {
struct dasd_eckd_characteristics rdc_data;
u8 *conf_data;
int conf_len;
+ /* per path configuration data */
+ struct dasd_conf_data *path_conf_data[8];
/* pointers to specific parts in the conf_data */
struct dasd_ned *ned;
struct dasd_sneq *sneq;