patch-2.0.11 linux/drivers/scsi/scsi.c
Next file: linux/drivers/scsi/scsicam.c
Previous file: linux/drivers/scsi/eata_pio.h
Back to the patch index
Back to the overall index
- Lines: 122
- Date:
Thu Aug 1 15:43:04 1996
- Orig file:
v2.0.10/linux/drivers/scsi/scsi.c
- Orig date:
Tue Jul 23 10:26:49 1996
diff -u --recursive --new-file v2.0.10/linux/drivers/scsi/scsi.c linux/drivers/scsi/scsi.c
@@ -167,19 +167,6 @@
#endif
/*
- * As the scsi do command functions are intelligent, and may need to
- * redo a command, we need to keep track of the last command
- * executed on each one.
- */
-
-#define WAS_RESET 0x01
-#define WAS_TIMEDOUT 0x02
-#define WAS_SENSE 0x04
-#define IS_RESETTING 0x08
-#define IS_ABORTING 0x10
-#define ASKED_FOR_SENSE 0x20
-
-/*
* This is the number of clock ticks we should wait before we time out
* and abort the command. This is for where the scsi.c module generates
* the command, not where it originates from a higher level, in which
@@ -878,8 +865,7 @@
SCpnt->internal_timeout |= IN_RESET2;
scsi_reset (SCpnt,
SCSI_RESET_ASYNCHRONOUS | SCSI_RESET_SUGGEST_BUS_RESET);
- return;
-
+ return;
case (IN_ABORT | IN_RESET | IN_RESET2):
/* Obviously the bus reset didn't work.
* Let's try even harder and call for an HBA reset.
@@ -1204,6 +1190,15 @@
#ifdef DEBUG_DELAY
unsigned long clock;
#endif
+
+#if DEBUG
+ unsigned long *ret = 0;
+#ifdef __mips__
+ __asm__ __volatile__ ("move\t%0,$31":"=r"(ret));
+#else
+ ret = __builtin_return_address(0);
+#endif
+#endif
host = SCpnt->host;
@@ -1393,9 +1388,9 @@
SCpnt->serial_number = 0;
SCpnt->bufflen = bufflen;
SCpnt->buffer = buffer;
- SCpnt->flags=0;
- SCpnt->retries=0;
- SCpnt->allowed=retries;
+ SCpnt->flags = 0;
+ SCpnt->retries = 0;
+ SCpnt->allowed = retries;
SCpnt->done = done;
SCpnt->timeout_per_command = timeout;
@@ -1413,7 +1408,7 @@
/* Start the timer ticking. */
- SCpnt->internal_timeout = 0;
+ SCpnt->internal_timeout = NORMAL_TIMEOUT;
SCpnt->abort_reason = 0;
internal_cmnd (SCpnt);
@@ -1580,7 +1575,8 @@
if (SCpnt->flags & WAS_SENSE)
{
#ifdef DEBUG
- printk ("In scsi_done, GOOD status, COMMAND COMPLETE, parsing sense information.\n");
+ printk ("In scsi_done, GOOD status, COMMAND COMPLETE, "
+ "parsing sense information.\n");
#endif
SCpnt->flags &= ~WAS_SENSE;
#if 0 /* This cannot possibly be correct. */
@@ -1628,7 +1624,8 @@
else
{
#ifdef DEBUG
- printk("COMMAND COMPLETE message returned, status = FINISHED. \n");
+ printk("COMMAND COMPLETE message returned, "
+ "status = FINISHED. \n");
#endif
exit = DRIVER_OK;
status = FINISHED;
@@ -2402,8 +2399,15 @@
{
unsigned int page, sector, nbits, mask;
unsigned long flags;
-
+
#ifdef DEBUG
+ unsigned long ret = 0;
+
+#ifdef __mips__
+ __asm__ __volatile__ ("move\t%0,$31":"=r"(ret));
+#else
+ ret = __builtin_return_address(0);
+#endif
printk("scsi_free %p %d\n",obj, len);
#endif
@@ -2422,9 +2426,14 @@
save_flags(flags);
cli();
- if((dma_malloc_freelist[page] & (mask << sector)) != (mask<<sector))
+ if((dma_malloc_freelist[page] &
+ (mask << sector)) != (mask<<sector)){
+#ifdef DEBUG
+ printk("scsi_free(obj=%p, len=%d) called from %08lx\n",
+ obj, len, ret);
+#endif
panic("scsi_free:Trying to free unused memory");
-
+ }
dma_free_sectors += nbits;
dma_malloc_freelist[page] &= ~(mask << sector);
restore_flags(flags);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov