summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@home.transmeta.com>2002-09-25 18:56:07 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2002-09-25 18:56:07 -0700
commitb0538e0e35d9b8aa2f9bb81792d661fc5e7d8fbf (patch)
treeded47f4f82d5e1ff8d72e5dc4d90a19104ef29db
parent7beeab1a2aab4acf38be2f4db46e4e6ff97bfd09 (diff)
parent7878f4113c7a5accb3154d95632357e4e122fddf (diff)
Merge http://gkernel.bkbits.net/misc-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
-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 6d993e467a03..22f29be9d695 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 (time_after_eq(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 (time_after_eq(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);