patch-2.4.6 linux/drivers/atm/ambassador.c
Next file: linux/drivers/atm/fore200e.c
Previous file: linux/drivers/acpi/utilities/utxface.c
Back to the patch index
Back to the overall index
- Lines: 81
- Date:
Wed Jun 27 16:18:13 2001
- Orig file:
v2.4.5/linux/drivers/atm/ambassador.c
- Orig date:
Fri Dec 29 14:35:47 2000
diff -u --recursive --new-file v2.4.5/linux/drivers/atm/ambassador.c linux/drivers/atm/ambassador.c
@@ -613,19 +613,21 @@
while (timeout) {
// go to sleep
// PRINTD (DBG_CMD, "wait: sleeping %lu for command", timeout);
+ set_current_state(TASK_UNINTERRUPTIBLE);
timeout = schedule_timeout (timeout);
- // woken up by timeout or signal
}
// wait for my slot to be reached (all waiters are here or above, until...)
while (ptrs->out != my_slot) {
PRINTD (DBG_CMD, "wait: command slot (now at %p)", ptrs->out);
+ set_current_state(TASK_UNINTERRUPTIBLE);
schedule();
}
// wait on my slot (... one gets to its slot, and... )
while (ptrs->out->request != cpu_to_be32 (SRB_COMPLETE)) {
PRINTD (DBG_CMD, "wait: command slot completion");
+ set_current_state(TASK_UNINTERRUPTIBLE);
schedule();
}
@@ -1986,6 +1988,7 @@
while (!lb->result || lb->result == cpu_to_be32 (COMMAND_IN_PROGRESS))
if (timeout) {
+ set_current_state(TASK_UNINTERRUPTIBLE);
timeout = schedule_timeout (timeout);
} else {
PRINTD (DBG_LOAD|DBG_ERR, "command %d timed out", cmd);
@@ -2110,12 +2113,15 @@
unsigned long timeout;
// 4.2 second wait
timeout = HZ*42/10;
- while (timeout)
+ while (timeout) {
+ set_current_state(TASK_UNINTERRUPTIBLE);
timeout = schedule_timeout (timeout);
+ }
// half second time-out
timeout = HZ/2;
while (!rd_plain (dev, offsetof(amb_mem, mb.loader.ready)))
if (timeout) {
+ set_current_state(TASK_UNINTERRUPTIBLE);
timeout = schedule_timeout (timeout);
} else {
PRINTD (DBG_LOAD|DBG_ERR, "reset timed out");
@@ -2255,8 +2261,10 @@
u32 minor;
command cmd;
cmd.request = cpu_to_be32 (SRB_GET_VERSION);
- while (command_do (dev, &cmd))
+ while (command_do (dev, &cmd)) {
+ set_current_state(TASK_UNINTERRUPTIBLE);
schedule();
+ }
major = be32_to_cpu (cmd.args.version.major);
minor = be32_to_cpu (cmd.args.version.minor);
PRINTK (KERN_INFO, "microcode version is %u.%u", major, minor);
@@ -2280,8 +2288,10 @@
}
cmd.request = cpu_to_be32 (SRB_GET_BIA);
- while (command_do (dev, &cmd))
+ while (command_do (dev, &cmd)) {
+ set_current_state(TASK_UNINTERRUPTIBLE);
schedule();
+ }
lower4 = be32_to_cpu (cmd.args.bia.lower4);
upper2 = be32_to_cpu (cmd.args.bia.upper2);
PRINTD (DBG_LOAD, "BIA: lower4: %08x, upper2 %04x", lower4, upper2);
@@ -2362,7 +2372,7 @@
struct pci_dev * pci_dev;
int devs;
- void do_pci_device (void) {
+ void __init do_pci_device (void) {
amb_dev * dev;
// read resources from PCI configuration space
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)