summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@mandrakesoft.com>2002-09-25 17:21:39 -0400
committerJeff Garzik <jgarzik@mandrakesoft.com>2002-09-25 17:21:39 -0400
commit7878f4113c7a5accb3154d95632357e4e122fddf (patch)
treeb8e9bdb95edb5d193a4b38b53ab4c0aa508b9f49
parent2ce067b09aff22fcfe57e805e5abf409d4547dd1 (diff)
parent90922aa6df905d4e4a867cd626f2130adcdc918e (diff)
Merge mandrakesoft.com:/home/jgarzik/repo/linus-2.5
into mandrakesoft.com:/home/jgarzik/repo/misc-2.5
-rw-r--r--drivers/cdrom/cdu31a.c3
-rw-r--r--drivers/cdrom/sonycd535.c3
-rw-r--r--drivers/net/sb1000.c8
-rw-r--r--drivers/net/sis900.c4
4 files changed, 8 insertions, 10 deletions
diff --git a/drivers/cdrom/cdu31a.c b/drivers/cdrom/cdu31a.c
index a0038c99c9ff..219efcd492b2 100644
--- a/drivers/cdrom/cdu31a.c
+++ b/drivers/cdrom/cdu31a.c
@@ -386,8 +386,7 @@ static inline void sony_sleep(void)
unsigned long flags;
if (cdu31a_irq <= 0) {
- current->state = TASK_INTERRUPTIBLE;
- schedule_timeout(0);
+ yield();
} else { /* Interrupt driven */
save_flags(flags);
diff --git a/drivers/cdrom/sonycd535.c b/drivers/cdrom/sonycd535.c
index 28f4f845afa4..46fd465d8e35 100644
--- a/drivers/cdrom/sonycd535.c
+++ b/drivers/cdrom/sonycd535.c
@@ -344,8 +344,7 @@ static inline void
sony_sleep(void)
{
if (sony535_irq_used <= 0) { /* poll */
- current->state = TASK_INTERRUPTIBLE;
- schedule_timeout(0);
+ yield();
} else { /* Interrupt driven */
cli();
enable_interrupts();
diff --git a/drivers/net/sb1000.c b/drivers/net/sb1000.c
index 6c17ab4243a3..e5cf5794a188 100644
--- a/drivers/net/sb1000.c
+++ b/drivers/net/sb1000.c
@@ -295,8 +295,8 @@ card_wait_for_busy_clear(const int ioaddr[], const char* name)
timeout = jiffies + TimeOutJiffies;
while (a & 0x80 || a & 0x40) {
/* a little sleep */
- current->state = TASK_INTERRUPTIBLE;
- schedule_timeout(0);
+ yield();
+
a = inb(ioaddr[0] + 7);
if (jiffies >= timeout) {
printk(KERN_WARNING "%s: card_wait_for_busy_clear timeout\n",
@@ -319,8 +319,8 @@ card_wait_for_ready(const int ioaddr[], const char* name, unsigned char in[])
timeout = jiffies + TimeOutJiffies;
while (a & 0x80 || !(a & 0x40)) {
/* a little sleep */
- current->state = TASK_INTERRUPTIBLE;
- schedule_timeout(0);
+ yield();
+
a = inb(ioaddr[1] + 6);
if (jiffies >= timeout) {
printk(KERN_WARNING "%s: card_wait_for_ready timeout\n",
diff --git a/drivers/net/sis900.c b/drivers/net/sis900.c
index 781c90d02c94..e175b860cdb3 100644
--- a/drivers/net/sis900.c
+++ b/drivers/net/sis900.c
@@ -573,8 +573,8 @@ static int __init sis900_mii_probe (struct net_device * net_dev)
if(status & MII_STAT_LINK){
while (poll_bit) {
- current->state = TASK_INTERRUPTIBLE;
- schedule_timeout(0);
+ yield();
+
poll_bit ^= (mdio_read(net_dev, sis_priv->cur_phy, MII_STATUS) & poll_bit);
if (jiffies >= timeout) {
printk(KERN_WARNING "%s: reset phy and link down now\n", net_dev->name);