patch-2.4.20 linux-2.4.20/drivers/block/ps2esdi.c
Next file: linux-2.4.20/drivers/block/rd.c
Previous file: linux-2.4.20/drivers/block/paride/pseudo.h
Back to the patch index
Back to the overall index
- Lines: 42
- Date:
Thu Nov 28 15:53:12 2002
- Orig file:
linux-2.4.19/drivers/block/ps2esdi.c
- Orig date:
Fri Nov 9 14:01:21 2001
diff -urN linux-2.4.19/drivers/block/ps2esdi.c linux-2.4.20/drivers/block/ps2esdi.c
@@ -466,7 +466,6 @@
u_int block, count;
/* since, this routine is called with interrupts cleared - they
must be before it finishes */
- sti();
#if 0
printk("%s:got request. device : %d minor : %d command : %d sector : %ld count : %ld, buffer: %p\n",
@@ -563,6 +562,7 @@
u_short track, head, cylinder, sector;
u_short cmd_blk[TYPE_1_CMD_BLK_LENGTH];
+ int err;
/* do some relevant arithmatic */
track = block / ps2esdi_info[drive].sect;
@@ -580,9 +580,13 @@
cylinder, head, sector,
CURRENT->current_nr_sectors, drive);
+ spin_unlock_irq(&io_request_lock);
/* send the command block to the controller */
- if (ps2esdi_out_cmd_blk(cmd_blk)) {
- printk("%s: Controller failed\n", DEVICE_NAME);
+ err = ps2esdi_out_cmd_blk(cmd_blk);
+ spin_lock_irq(&io_request_lock);
+
+ if (err) {
+ printk(KERN_ERR "%s: Controller failed\n", DEVICE_NAME);
if ((++CURRENT->errors) >= MAX_RETRIES)
end_request(FAIL);
}
@@ -1135,9 +1139,7 @@
int start = target << ps2esdi_gendisk.minor_shift;
int partition;
- cli();
ps2esdi_valid[target] = (access_count[target] != 1);
- sti();
if (ps2esdi_valid[target])
return (-EBUSY);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)