From 67ca64a948cdccb690b2fb2a5ad9849f142c637d Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Tue, 18 Aug 2009 15:43:32 +0200 Subject: [PATCH] --- yaml --- r: 161095 b: refs/heads/master c: 41e05a12c7aae16f0381103af3e5ca791e87ce59 h: refs/heads/master i: 161093: 5d32baec94a1d1cb3d21e7453f2f114428431f2b 161091: d5096afbb46844862896e856b898be795bcdf236 161087: 9e9e5d66b470d7d7e15fcd32654386ab1b0ef7c6 v: v3 --- [refs] | 2 +- trunk/drivers/s390/scsi/zfcp_def.h | 2 +- trunk/drivers/s390/scsi/zfcp_qdio.c | 11 +++++------ 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index bd2b718f3b90..42381a527487 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b592e89ac9af521be164490e45c53c93e89c776f +refs/heads/master: 41e05a12c7aae16f0381103af3e5ca791e87ce59 diff --git a/trunk/drivers/s390/scsi/zfcp_def.h b/trunk/drivers/s390/scsi/zfcp_def.h index cc98eead2c3c..7da2fad8f515 100644 --- a/trunk/drivers/s390/scsi/zfcp_def.h +++ b/trunk/drivers/s390/scsi/zfcp_def.h @@ -438,7 +438,7 @@ struct zfcp_qdio { struct zfcp_qdio_queue req_q; spinlock_t stat_lock; spinlock_t req_q_lock; - ktime_t req_q_time; + unsigned long long req_q_time; u64 req_q_util; atomic_t req_q_full; wait_queue_head_t req_q_wq; diff --git a/trunk/drivers/s390/scsi/zfcp_qdio.c b/trunk/drivers/s390/scsi/zfcp_qdio.c index 2b499e28ff1f..6c5228b627fc 100644 --- a/trunk/drivers/s390/scsi/zfcp_qdio.c +++ b/trunk/drivers/s390/scsi/zfcp_qdio.c @@ -56,16 +56,15 @@ static void zfcp_qdio_zero_sbals(struct qdio_buffer *sbal[], int first, int cnt) } /* this needs to be called prior to updating the queue fill level */ -static void zfcp_qdio_account(struct zfcp_qdio *qdio) +static inline void zfcp_qdio_account(struct zfcp_qdio *qdio) { - ktime_t now; - s64 span; + unsigned long long now, span; int free, used; spin_lock(&qdio->stat_lock); - now = ktime_get(); - span = ktime_us_delta(now, qdio->req_q_time); - free = max(0, atomic_read(&qdio->req_q.count)); + now = get_clock_monotonic(); + span = (now - qdio->req_q_time) >> 12; + free = atomic_read(&qdio->req_q.count); used = QDIO_MAX_BUFFERS_PER_Q - free; qdio->req_q_util += used * span; qdio->req_q_time = now;