Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ccc0e7dc authored by Stefan Haberland's avatar Stefan Haberland Committed by Martin Schwidefsky
Browse files

s390/dasd: fix disconnected device with valid path mask



Path verification is either done via dasd_eckd_read_conf() which is
triggered during online processing and resume or via
do_path_verification_work() which is triggered after path events.
The dasd_eckd_read_conf() version added paths unconditionally and did
not check if the path mask was empty. This led to devices having the
disconnected stop flag set but a valid path mask. So they where not
working although they had paths validated successfully. After a resume
this state could even not be solved with additional paths added.

Fix by checking for an empty path mask in dasd_eckd_read_conf() and
clearing the device stop bits for a newly added channel path.

Reviewed-by: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: default avatarStefan Haberland <stefan.haberland@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 251afd69
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -1171,7 +1171,12 @@ static int dasd_eckd_read_conf(struct dasd_device *device)
			path_data->ppm |= lpm;
			break;
		}
		if (!path_data->opm) {
			path_data->opm = lpm;
			dasd_generic_path_operational(device);
		} else {
			path_data->opm |= lpm;
		}
		/*
		 * if the path is used
		 * it should not be in one of the negative lists