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.
zlinrcd.patch.gz
Description: GNU Zip compressed data
