diff options
-rw-r--r-- | drivers/scsi/ncr53c8xx.c | 22 | ||||
-rw-r--r-- | drivers/scsi/sym53c8xx_defs.h | 13 |
2 files changed, 11 insertions, 24 deletions
diff --git a/drivers/scsi/ncr53c8xx.c b/drivers/scsi/ncr53c8xx.c index 519486d24b28..9a4f576c0d5e 100644 --- a/drivers/scsi/ncr53c8xx.c +++ b/drivers/scsi/ncr53c8xx.c | |||
@@ -3481,8 +3481,8 @@ static int ncr_queue_command (struct ncb *np, struct scsi_cmnd *cmd) | |||
3481 | **---------------------------------------------------- | 3481 | **---------------------------------------------------- |
3482 | */ | 3482 | */ |
3483 | if (np->settle_time && cmd->timeout_per_command >= HZ) { | 3483 | if (np->settle_time && cmd->timeout_per_command >= HZ) { |
3484 | u_long tlimit = ktime_get(cmd->timeout_per_command - HZ); | 3484 | u_long tlimit = jiffies + cmd->timeout_per_command - HZ; |
3485 | if (ktime_dif(np->settle_time, tlimit) > 0) | 3485 | if (time_after(np->settle_time, tlimit)) |
3486 | np->settle_time = tlimit; | 3486 | np->settle_time = tlimit; |
3487 | } | 3487 | } |
3488 | 3488 | ||
@@ -3516,7 +3516,7 @@ static int ncr_queue_command (struct ncb *np, struct scsi_cmnd *cmd) | |||
3516 | ** Force ordered tag if necessary to avoid timeouts | 3516 | ** Force ordered tag if necessary to avoid timeouts |
3517 | ** and to preserve interactivity. | 3517 | ** and to preserve interactivity. |
3518 | */ | 3518 | */ |
3519 | if (lp && ktime_exp(lp->tags_stime)) { | 3519 | if (lp && time_after(jiffies, lp->tags_stime)) { |
3520 | if (lp->tags_smap) { | 3520 | if (lp->tags_smap) { |
3521 | order = M_ORDERED_TAG; | 3521 | order = M_ORDERED_TAG; |
3522 | if ((DEBUG_FLAGS & DEBUG_TAGS)||bootverbose>2){ | 3522 | if ((DEBUG_FLAGS & DEBUG_TAGS)||bootverbose>2){ |
@@ -3524,7 +3524,7 @@ static int ncr_queue_command (struct ncb *np, struct scsi_cmnd *cmd) | |||
3524 | "ordered tag forced.\n"); | 3524 | "ordered tag forced.\n"); |
3525 | } | 3525 | } |
3526 | } | 3526 | } |
3527 | lp->tags_stime = ktime_get(3*HZ); | 3527 | lp->tags_stime = jiffies + 3*HZ; |
3528 | lp->tags_smap = lp->tags_umap; | 3528 | lp->tags_smap = lp->tags_umap; |
3529 | } | 3529 | } |
3530 | 3530 | ||
@@ -3792,7 +3792,7 @@ static int ncr_reset_scsi_bus(struct ncb *np, int enab_int, int settle_delay) | |||
3792 | u32 term; | 3792 | u32 term; |
3793 | int retv = 0; | 3793 | int retv = 0; |
3794 | 3794 | ||
3795 | np->settle_time = ktime_get(settle_delay * HZ); | 3795 | np->settle_time = jiffies + settle_delay * HZ; |
3796 | 3796 | ||
3797 | if (bootverbose > 1) | 3797 | if (bootverbose > 1) |
3798 | printk("%s: resetting, " | 3798 | printk("%s: resetting, " |
@@ -5044,7 +5044,7 @@ static void ncr_setup_tags (struct ncb *np, struct scsi_device *sdev) | |||
5044 | 5044 | ||
5045 | static void ncr_timeout (struct ncb *np) | 5045 | static void ncr_timeout (struct ncb *np) |
5046 | { | 5046 | { |
5047 | u_long thistime = ktime_get(0); | 5047 | u_long thistime = jiffies; |
5048 | 5048 | ||
5049 | /* | 5049 | /* |
5050 | ** If release process in progress, let's go | 5050 | ** If release process in progress, let's go |
@@ -5057,7 +5057,7 @@ static void ncr_timeout (struct ncb *np) | |||
5057 | return; | 5057 | return; |
5058 | } | 5058 | } |
5059 | 5059 | ||
5060 | np->timer.expires = ktime_get(SCSI_NCR_TIMER_INTERVAL); | 5060 | np->timer.expires = jiffies + SCSI_NCR_TIMER_INTERVAL; |
5061 | add_timer(&np->timer); | 5061 | add_timer(&np->timer); |
5062 | 5062 | ||
5063 | /* | 5063 | /* |
@@ -5336,8 +5336,8 @@ void ncr_exception (struct ncb *np) | |||
5336 | **========================================================= | 5336 | **========================================================= |
5337 | */ | 5337 | */ |
5338 | 5338 | ||
5339 | if (ktime_exp(np->regtime)) { | 5339 | if (time_after(jiffies, np->regtime)) { |
5340 | np->regtime = ktime_get(10*HZ); | 5340 | np->regtime = jiffies + 10*HZ; |
5341 | for (i = 0; i<sizeof(np->regdump); i++) | 5341 | for (i = 0; i<sizeof(np->regdump); i++) |
5342 | ((char*)&np->regdump)[i] = INB_OFF(i); | 5342 | ((char*)&np->regdump)[i] = INB_OFF(i); |
5343 | np->regdump.nc_dstat = dstat; | 5343 | np->regdump.nc_dstat = dstat; |
@@ -5453,7 +5453,7 @@ static int ncr_int_sbmc (struct ncb *np) | |||
5453 | ** Suspend command processing for 1 second and | 5453 | ** Suspend command processing for 1 second and |
5454 | ** reinitialize all except the chip. | 5454 | ** reinitialize all except the chip. |
5455 | */ | 5455 | */ |
5456 | np->settle_time = ktime_get(1*HZ); | 5456 | np->settle_time = jiffies + HZ; |
5457 | ncr_init (np, 0, bootverbose ? "scsi mode change" : NULL, HS_RESET); | 5457 | ncr_init (np, 0, bootverbose ? "scsi mode change" : NULL, HS_RESET); |
5458 | return 1; | 5458 | return 1; |
5459 | } | 5459 | } |
@@ -6923,7 +6923,7 @@ static struct lcb *ncr_setup_lcb (struct ncb *np, struct scsi_device *sdev) | |||
6923 | for (i = 0 ; i < MAX_TAGS ; i++) | 6923 | for (i = 0 ; i < MAX_TAGS ; i++) |
6924 | lp->cb_tags[i] = i; | 6924 | lp->cb_tags[i] = i; |
6925 | lp->maxnxs = MAX_TAGS; | 6925 | lp->maxnxs = MAX_TAGS; |
6926 | lp->tags_stime = ktime_get(3*HZ); | 6926 | lp->tags_stime = jiffies + 3*HZ; |
6927 | ncr_setup_tags (np, sdev); | 6927 | ncr_setup_tags (np, sdev); |
6928 | } | 6928 | } |
6929 | 6929 | ||
diff --git a/drivers/scsi/sym53c8xx_defs.h b/drivers/scsi/sym53c8xx_defs.h index 4c4ae7d4713f..139cd0e12e62 100644 --- a/drivers/scsi/sym53c8xx_defs.h +++ b/drivers/scsi/sym53c8xx_defs.h | |||
@@ -281,19 +281,6 @@ | |||
281 | #endif | 281 | #endif |
282 | 282 | ||
283 | /* | 283 | /* |
284 | ** These simple macros limit expression involving | ||
285 | ** kernel time values (jiffies) to some that have | ||
286 | ** chance not to be too much incorrect. :-) | ||
287 | */ | ||
288 | #define ktime_get(o) (jiffies + (u_long) o) | ||
289 | #define ktime_exp(b) ((long)(jiffies) - (long)(b) >= 0) | ||
290 | #define ktime_dif(a, b) ((long)(a) - (long)(b)) | ||
291 | /* These ones are not used in this driver */ | ||
292 | #define ktime_add(a, o) ((a) + (u_long)(o)) | ||
293 | #define ktime_sub(a, o) ((a) - (u_long)(o)) | ||
294 | |||
295 | |||
296 | /* | ||
297 | * IO functions definition for big/little endian CPU support. | 284 | * IO functions definition for big/little endian CPU support. |
298 | * For now, the NCR is only supported in little endian addressing mode, | 285 | * For now, the NCR is only supported in little endian addressing mode, |
299 | */ | 286 | */ |