patch-2.0.12 linux/drivers/block/floppy.c

Next file: linux/drivers/block/ide.c
Previous file: linux/drivers/block/cmd640.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.0.11/linux/drivers/block/floppy.c linux/drivers/block/floppy.c
@@ -1685,15 +1685,9 @@
 		} while ((ST0 & 0x83) != UNIT(current_drive) && inr == 2);
 	}
 	if (handler) {
-		if(intr_count >= 2)
-			{
-				/* expected interrupt */
-				floppy_tq.routine = (void *)(void *) handler;
-				queue_task_irq(&floppy_tq, &tq_immediate);
-				mark_bh(IMMEDIATE_BH);
-			}
-		else
-			handler();
+		/* expected interrupt */
+		floppy_tq.routine = (void *)(void *) handler;
+		queue_task_irq(&floppy_tq, &tq_timer);
 	} else
 		FDCS->reset = 1;
 	is_alive("normal interrupt end");
@@ -1931,8 +1925,7 @@
 	unsigned long flags;
 
 	floppy_tq.routine = (void *)(void *) handler;
-	queue_task(&floppy_tq, &tq_immediate);
-	mark_bh(IMMEDIATE_BH);
+	queue_task(&floppy_tq, &tq_timer);
 	INT_OFF;
 	while(command_status < 2 && NO_SIGNAL){
 		is_alive("wait_til_done");
@@ -2740,8 +2733,7 @@
 		if (TESTF(FD_NEED_TWADDLE))
 			twaddle();
 		floppy_tq.routine = (void *)(void *) floppy_start;
-		queue_task(&floppy_tq, &tq_immediate);
-		mark_bh(IMMEDIATE_BH);
+		queue_task(&floppy_tq, &tq_timer);
 #ifdef DEBUGT
 		debugt("queue fd request");
 #endif
@@ -2762,8 +2754,7 @@
 static void process_fd_request(void)
 {
 	cont = &rw_cont;
-	queue_task(&request_tq, &tq_immediate);
-	mark_bh(IMMEDIATE_BH);
+	queue_task(&request_tq, &tq_timer);
 }
 
 static void do_fd_request(void)

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov