All of lore.kernel.org
 help / color / mirror / Atom feed
* [KJ] [PATCH] 5/34: block/amiflop: replace sleep_on() with
@ 2005-01-25 22:25 Nishanth Aravamudan
  0 siblings, 0 replies; only message in thread
From: Nishanth Aravamudan @ 2005-01-25 22:25 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 2940 bytes --]

Hi,

Please consider applying.

Description: Use wait_event() instead of the deprecated sleep_on(). Many of the
replacements are straight-forward. Two, though are more difficult (in
ms_delay() and fd_motor_on()). In the former, the second wait_event() does not
make much sense; I have simply duplicated the code from the first in that
function. In the latter, the conditional is the same as what will trying a
wake_up(&motor_wait) in the code. Hence, it should function exactly the same as
it does now.

Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>

--- 2.6.11-rc2-kj-v/drivers/block/amiflop.c	2005-01-25 10:28:56.000000000 -0800
+++ 2.6.11-rc2-kj/drivers/block/amiflop.c	2005-01-25 14:20:08.000000000 -0800
@@ -64,6 +64,7 @@
 #include <linux/buffer_head.h>
 #include <linux/blkdev.h>
 #include <linux/elevator.h>
+#include <linux/wait.h>
 
 #include <asm/setup.h>
 #include <asm/uaccess.h>
@@ -221,15 +222,14 @@ static void ms_delay(int ms)
 	int ticks;
 	if (ms > 0) {
 		local_irq_save(flags);
-		while (ms_busy == 0)
-			sleep_on(&ms_wait);
+		wait_event(ms_wait, (ms_busy != 0));
 		ms_busy = 0;
 		local_irq_restore(flags);
 		ticks = MS_TICKS*ms-1;
 		ciaa.tblo=ticks%256;
 		ciaa.tbhi=ticks/256;
 		ciaa.crb=0x19; /*count eclock, force load, one-shoot, start */
-		sleep_on(&ms_wait);
+		wait_event(ms_wait, (ms_busy != 0));
 	}
 }
 
@@ -251,8 +251,7 @@ static void get_fdc(int drive)
 	printk("get_fdc: drive %d  fdc_busy %d  fdc_nested %d\n",drive,fdc_busy,fdc_nested);
 #endif
 	local_irq_save(flags);
-	while (!try_fdc(drive))
-		sleep_on(&fdc_wait);
+	wait_event(fdc_wait, try_fdc(drive));
 	fdc_busy = drive;
 	fdc_nested++;
 	local_irq_restore(flags);
@@ -348,7 +347,7 @@ static int fd_motor_on(int nr)
 		mod_timer(&motor_on_timer, jiffies + HZ/2);
 
 		on_attempts = 10;
-		sleep_on (&motor_wait);
+		wait_event(motor_wait, (!(ciaa.pra & DSKRDY) || on_attempts == 0));
 		fd_deselect(nr);
 	}
 
@@ -579,8 +578,7 @@ static void raw_read(int drive)
 {
 	drive&=3;
 	get_fdc(drive);
-	while (block_flag)
-		sleep_on(&wait_fd_block);
+	wait_event(wait_fd_block, !block_flag);
 	fd_select(drive);
 	/* setup adkcon bits correctly */
 	custom.adkcon = ADK_MSBSYNC;
@@ -595,8 +593,7 @@ static void raw_read(int drive)
 
 	block_flag = 1;
 
-	while (block_flag)
-		sleep_on (&wait_fd_block);
+	wait_event(wait_fd_block, !block_flag);
 
 	custom.dsklen = 0;
 	fd_deselect(drive);
@@ -613,8 +610,7 @@ static int raw_write(int drive)
 		rel_fdc();
 		return 0;
 	}
-	while (block_flag)
-		sleep_on(&wait_fd_block);
+	wait_event(wait_fd_block, !block_flag);
 	fd_select(drive);
 	/* clear adkcon bits */
 	custom.adkcon = ADK_PRECOMP1|ADK_PRECOMP0|ADK_WORDSYNC|ADK_MSBSYNC;
@@ -1291,8 +1287,7 @@ static int non_int_flush_track (unsigned
 			writepending = 0;
 			return 0;
 		}
-		while (block_flag == 2)
-			sleep_on (&wait_fd_block);
+		wait_event(wait_fd_block, (block_flag != 2));
 	}
 	else {
 		local_irq_restore(flags);

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-01-25 22:25 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-01-25 22:25 [KJ] [PATCH] 5/34: block/amiflop: replace sleep_on() with Nishanth Aravamudan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.