Discussion:
Bug#550898: DASD DIAG driver doesn't work for read-only minidisks (s390, s390x only)
(too old to reply)
Stephen Powell
2009-10-15 23:20:57 UTC
Permalink
Package: linux-image-2.6.26-2-s390x
Version: 2.6.26-19
X-Debbugs-CC: debian-***@lists.debian.org

This bug report applies to the s390 and s390x Linux kernel architectures only.
I am reasonably certain that this is not a Debian-specific bug but
applies to all distributions. Nevertheless, since I am using Debian
I will report it to Debian. Please call this bug report to the
attention of the appropriate upstream kernel development team.

When using the DASD DIAG driver with a read-only minidisk, the
initialize function of DIAG X'250' fails. The error message produced
goes something like this:

dasd(diag) 0.0.0404: DIAG initialization failed (rc=4)
dasd_generic couldn't online device 0.0.0404 with discipline DIAG rc=-5

Consulting the IBM manual "CP Programming Services" for DIAG X'250',
I find the following explanation for return code 4 for the initialize
function:

Initialization for DIAGNOSE code X'250'
to the specified virtual device is
complete. The virtual device is
read-only. The starting block number and
the ending block number have been stored
in the BIOPL.

In other words, this is a normal condition, not an error. It is
simply a warning that this minidisk is read-only. The correct
response by the program should be to treat a return code of 4
the same as a return code of 0, provided that the device really
is read-only. A return code of 4 for a device that is supposedly
read-write is a sanity-check error that you might want to check
for. Otherwise, a return code of 4 is a normal and expected
condition.

I don't claim to be a C programmer, but it appears to me that
the mdsk_init_io internal subroutine of /drivers/s390/block/dasd_diag.c
is the culprit.
--
To UNSUBSCRIBE, email to debian-bugs-dist-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Peter Oberparleiter
2009-10-16 11:20:01 UTC
Permalink
Post by Stephen Powell
When using the DASD DIAG driver with a read-only minidisk, the
initialize function of DIAG X'250' fails. The error message produced
dasd(diag) 0.0.0404: DIAG initialization failed (rc=4)
dasd_generic couldn't online device 0.0.0404 with discipline DIAG rc=-5
FYI: The DASD device driver maintainers are aware of this problem and
will provide a fix for the upstream version of the Linux kernel with the
next merge window (2.6.33). Should you need the fix for an earlier
version, someone at Debian will need to port that fix back to the
respective levels.


Regards,
Peter Oberparleiter
--
To UNSUBSCRIBE, email to debian-bugs-dist-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Loading...