patch-2.4.14 linux/drivers/scsi/qlogicisp.c
Next file: linux/drivers/scsi/qlogicpti.c
Previous file: linux/drivers/scsi/qlogicfc.c
Back to the patch index
Back to the overall index
- Lines: 45
- Date:
Thu Oct 25 13:53:51 2001
- Orig file:
v2.4.13/linux/drivers/scsi/qlogicisp.c
- Orig date:
Tue Oct 9 17:06:52 2001
diff -u --recursive --new-file v2.4.13/linux/drivers/scsi/qlogicisp.c linux/drivers/scsi/qlogicisp.c
@@ -1279,8 +1279,10 @@
isp_outw(HCCR_BIOS_DISABLE, host, HOST_HCCR);
loop_count = DEFAULT_LOOP_COUNT;
- while (--loop_count && isp_inw(host, HOST_HCCR) == RISC_BUSY)
+ while (--loop_count && isp_inw(host, HOST_HCCR) == RISC_BUSY) {
barrier();
+ cpu_relax();
+ }
if (!loop_count)
printk("qlogicisp: reset_hardware loop timeout\n");
@@ -1904,8 +1906,10 @@
return 1;
loop_count = DEFAULT_LOOP_COUNT;
- while (--loop_count && isp_inw(host, HOST_HCCR) & 0x0080)
+ while (--loop_count && isp_inw(host, HOST_HCCR) & 0x0080) {
barrier();
+ cpu_relax();
+ }
if (!loop_count)
printk("qlogicisp: mbox_command loop timeout #1\n");
@@ -1925,14 +1929,18 @@
isp_outw(HCCR_SET_HOST_INTR, host, HOST_HCCR);
loop_count = DEFAULT_LOOP_COUNT;
- while (--loop_count && !(isp_inw(host, PCI_INTF_STS) & 0x04))
+ while (--loop_count && !(isp_inw(host, PCI_INTF_STS) & 0x04)) {
barrier();
+ cpu_relax();
+ }
if (!loop_count)
printk("qlogicisp: mbox_command loop timeout #2\n");
loop_count = DEFAULT_LOOP_COUNT;
- while (--loop_count && isp_inw(host, MBOX0) == 0x04)
+ while (--loop_count && isp_inw(host, MBOX0) == 0x04) {
barrier();
+ cpu_relax();
+ }
if (!loop_count)
printk("qlogicisp: mbox_command loop timeout #3\n");
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)