Subject: Tester needed -- mac68k fd@iwm
To: None <current-users@netbsd.org>
From: Juergen Hannken-Illjes <hannken@eis.cs.tu-bs.de>
List: current-users
Date: 08/21/2002 19:39:50
--y0ulUmNC+osPPQO6
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Could someone with -current on mac68k and "fd0 at iwm0" please
test the appended diff?
It is possible, that this diff freezes the floppy or the system panics
with "biodone already" :-)
--
Juergen Hannken-Illjes - hannken@eis.cs.tu-bs.de - TU Braunschweig (Germany)
--y0ulUmNC+osPPQO6
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="mac68k.diff"
Index: arch/mac68k/obio/iwm_fd.c
===================================================================
RCS file: /cvsroot/syssrc/sys/arch/mac68k/obio/iwm_fd.c,v
retrieving revision 1.11
diff -u -2 -r1.11 iwm_fd.c
--- arch/mac68k/obio/iwm_fd.c 2000/05/27 10:25:15 1.11
+++ arch/mac68k/obio/iwm_fd.c 2002/07/26 16:14:27
@@ -475,5 +475,5 @@
iwm->drives++;
- BUFQ_INIT(&fd->bufQueue);
+ bufq_alloc(&fd->bufQueue, BUFQ_DISKSORT|BUFQ_SORT_CYLINDER);
callout_init(&fd->motor_ch);
@@ -1139,5 +1139,5 @@
spl = splbio();
callout_stop(&fd->motor_ch);
- disksort_cylinder(&fd->bufQueue, bp);
+ BUFQ_PUT(&fd->bufQueue, bp);
if (fd->sc_active == 0)
fdstart(fd);
@@ -1254,5 +1254,5 @@
* fdstrategy(); disksort() put it into our softc.
*/
- bp = BUFQ_FIRST(&fd->bufQueue);
+ bp = BUFQ_PEEK(&fd->bufQueue);
if (NULL == bp) {
if (TRACE_STRAT)
@@ -1657,5 +1657,5 @@
#endif
- bp = BUFQ_FIRST(&fd->bufQueue);
+ bp = BUFQ_GET(&fd->bufQueue);
bp->b_resid = fd->bytesLeft;
@@ -1670,12 +1670,7 @@
hexDump(bp->b_data, bp->b_bcount);
}
- /*
- * Remove requested buf from beginning of queue
- * and release it.
- */
- BUFQ_REMOVE(&fd->bufQueue, bp);
if (DISABLED && TRACE_STRAT)
printf(" Next buf (bufQueue first) at %p\n",
- BUFQ_FIRST(&fd->bufQueue));
+ BUFQ_PEEK(&fd->bufQueue));
disk_unbusy(&fd->diskInfo, bp->b_bcount - bp->b_resid);
biodone(bp);
Index: arch/mac68k/obio/iwm_fdvar.h
===================================================================
RCS file: /cvsroot/syssrc/sys/arch/mac68k/obio/iwm_fdvar.h,v
retrieving revision 1.5
diff -u -2 -r1.5 iwm_fdvar.h
--- arch/mac68k/obio/iwm_fdvar.h 2000/03/23 06:39:56 1.5
+++ arch/mac68k/obio/iwm_fdvar.h 2002/07/26 16:14:27
@@ -133,5 +133,5 @@
struct device devInfo; /* generic device info */
struct disk diskInfo; /* generic disk info */
- struct buf_queue bufQueue; /* queue of buf's */
+ struct bufq_state bufQueue; /* queue of buf's */
int sc_active; /* number of active requests */
struct callout motor_ch; /* motor callout */
--y0ulUmNC+osPPQO6--