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

mcd.c failes to compile (OpenBSD 3.5)



Hi,

I just installed OpenBSD 3.5 on an i386 system. Trying to build a custom
kernel mcd.c fails to compile since disk_unbusy is called with only two
instead of three parameters.
After comparing with fd.c I made the following change:

*** mcd.c.orig  Tue Dec  9 22:09:18 2003
--- mcd.c       Tue Dec  9 22:09:46 2003
***************
*** 1273,1279 ****
        /* Invalidate the buffer. */
        bp->b_flags |= B_ERROR;
        bp->b_resid = bp->b_bcount - mbx->skip;
!       disk_unbusy(&sc->sc_dk, (bp->b_bcount - bp->b_resid));
        biodone(bp);
  
        mcdstart(sc);
--- 1273,1279 ----
        /* Invalidate the buffer. */
        bp->b_flags |= B_ERROR;
        bp->b_resid = bp->b_bcount - mbx->skip;
!       disk_unbusy(&sc->sc_dk, (bp->b_bcount -
bp->b_resid),(bp->b_flags & B_READ));
        biodone(bp);
  
        mcdstart(sc);

I hope this is OK.

At least it compiles flawlessly now, and as far as I can tell it works
fine. The only problem (which however had already existed in versions
prior to 3.5) is a strange "timeout" message coming up on bootup, i.e.
when probing:

(from dmesg:)

: timeout in getresult
mcd0 at isa0 port 0x634/4 irq 11: model FX001D



BTW, the disk_unbusy man page incorrectly lists disk_unbusy as
void disk_unbusy(struct disk *)
This might apply to similar routines as well.


Georg 

-- 
Georg Schwarz    http://home.pages.de/~schwarz/
 geos@epost.de     +49 177 8811442