[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#550898: DASD DIAG driver doesn't work for read-only minidisks (s390, s390x only)



>
> However ...
> 
> This fix also creates (or more likely exposes) another problem.  When this fix
> is on, devices which are manually taken offline immediately come online again!
> I had this problem once before in an earlier kernel, but the problem eventually
> went away with maintenance.
>

False alarm.  I can now reproduce this error in kernels without the patch too.
It just doesn't happen all the time (with or without the patch).  Further research
is needed on this problem.  In any case, I am convinced that these two problems
are totally unrelated.

>
> 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
>

Since upstream development has accepted this as a bug and has agreed to
provide a fix in the next merge window, I respectfully request that this patch be
included in the next stable release of Debian for s390 (6.0.0 -- Squeeze).
If you could include it in the next update of the stable release (5.0.4 -- Lenny),
that would be good too.  In the meantime I will need to build a custom kernel
with every security update that hits the kernel, which I don't like to have to do.
Here is my version of the patch:

----------

*** dasd_diag.c 2008-07-13 17:51:29.000000000 -0400
--- /usr/src/linux-source-2.6.26/drivers/s390/block/dasd_diag.c 2009-10-14 09:30:26.000000000 -0400
***************
*** 111,116 ****
--- 111,120 ----

          rc = dia250(iib, INIT_BIO);

+         /* Fix for read-only minidisk */
+         if (rc == 4) rc = 0;
+         /* End fix for read-only minidisk */
+
          if ((rc & 3) == 0 && end_block)
                  *end_block = iib->end_block;


----------

This is a "context diff" with three lines of context.  I don't know if this is the standard way
of producing patch files or not.  Forgive me; I'm new at this.


Reply to: