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