diff options
author | Ying Zhu <[email protected]> | 2013-06-27 19:41:30 +0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2013-06-27 10:01:25 -0700 |
commit | c12936b141e7479a1402561e9e528731d763747e (patch) | |
tree | 136f8631b9c65657db8a66c2720b5d46766be233 | |
parent | 88c283952f0bfeab54612f9ce666601d83c4244f (diff) |
Fix module probe failure on 32-bit systems
Previous commit 7ef5e54e2e28884a04dc800657967b891239e933 caused
module probe failure on 32-bit systems, dmesg showed
Unknown symbol __moddi3
This was caused by the modulo operation 'gethrtime() % tqs->stqs_count'
in the committed code. Instead of implementing __moddi3 for all 32-bit
systems, Behlendorf advised we can just cast the return value of
gethrtime() into a uint64_t, since gethrtime does not return negative
value on all circumstances we need not care about the potential overflow.
Signed-off-by: Ying Zhu <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Closes #1551
-rw-r--r-- | module/zfs/spa.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/module/zfs/spa.c b/module/zfs/spa.c index ba376fb58..c885e3e41 100644 --- a/module/zfs/spa.c +++ b/module/zfs/spa.c @@ -920,7 +920,7 @@ spa_taskq_dispatch_ent(spa_t *spa, zio_type_t t, zio_taskq_type_t q, if (tqs->stqs_count == 1) { tq = tqs->stqs_taskq[0]; } else { - tq = tqs->stqs_taskq[gethrtime() % tqs->stqs_count]; + tq = tqs->stqs_taskq[((uint64_t)gethrtime()) % tqs->stqs_count]; } taskq_dispatch_ent(tq, func, arg, flags, ent); @@ -943,7 +943,7 @@ spa_taskq_dispatch_sync(spa_t *spa, zio_type_t t, zio_taskq_type_t q, if (tqs->stqs_count == 1) { tq = tqs->stqs_taskq[0]; } else { - tq = tqs->stqs_taskq[gethrtime() % tqs->stqs_count]; + tq = tqs->stqs_taskq[((uint64_t)gethrtime()) % tqs->stqs_count]; } id = taskq_dispatch(tq, func, arg, flags); |