There are a few loose ends in the code that retrieves the configuration
data from i/o devices.  I kept getting the message read configuration
data size mismatch, eventhough the device in question did not support
read configuration data, and no read configuration data ccw was issued.
Now, I found the following issues:

s390_SenseID() fills the fixed size senseid_t struct, but does not
return a length, neither does it pad the unused remainder to zeros
read_conf_data() may actually attempt an i/o with zero length when
interpreting false ciw's (due to above problem)
read_conf_data() may return -EOPNOTSUPP, not touching returned buffer
and length, which in turn can cause dasd_eckd_check_characteristics() to
interpret the data as incorrect rather then not supported.

I have attached a patch file that addresses the above issues.

Best regards,
Jan Jaeger.

Attachment: zlinrcd.patch.gz
Description: GNU Zip compressed data

Reply via email to