diff options
| author | Linus Torvalds <torvalds@home.transmeta.com> | 2002-09-25 18:56:07 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-09-25 18:56:07 -0700 |
| commit | b0538e0e35d9b8aa2f9bb81792d661fc5e7d8fbf (patch) | |
| tree | ded47f4f82d5e1ff8d72e5dc4d90a19104ef29db | |
| parent | 7beeab1a2aab4acf38be2f4db46e4e6ff97bfd09 (diff) | |
| parent | 7878f4113c7a5accb3154d95632357e4e122fddf (diff) | |
Merge http://gkernel.bkbits.net/misc-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
| -rw-r--r-- | drivers/cdrom/cdu31a.c | 3 | ||||
| -rw-r--r-- | drivers/cdrom/sonycd535.c | 3 | ||||
| -rw-r--r-- | drivers/net/sb1000.c | 8 | ||||
| -rw-r--r-- | drivers/net/sis900.c | 4 |
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); |
