summaryrefslogtreecommitdiffstats
path: root/sys/sparc64
diff options
context:
space:
mode:
authorjake <jake@FreeBSD.org>2002-01-08 04:43:04 +0000
committerjake <jake@FreeBSD.org>2002-01-08 04:43:04 +0000
commit94243355415343a2b26edbcc71077b7fc5c89248 (patch)
treea7206cb49135935cc040dcdeca045937c2367655 /sys/sparc64
parent29ddfd4ed093481ac2628fcb9bbc03c4597c8247 (diff)
downloadFreeBSD-src-94243355415343a2b26edbcc71077b7fc5c89248.zip
FreeBSD-src-94243355415343a2b26edbcc71077b7fc5c89248.tar.gz
Fix qsort callouts used for sorting memory regions during boot. vm_offset_t
is unsigned, so we can't use signed arithmetic. Tripped over by: jhb
Diffstat (limited to 'sys/sparc64')
-rw-r--r--sys/sparc64/sparc64/pmap.c26
1 files changed, 22 insertions, 4 deletions
diff --git a/sys/sparc64/sparc64/pmap.c b/sys/sparc64/sparc64/pmap.c
index 290b67c..55c1729 100644
--- a/sys/sparc64/sparc64/pmap.c
+++ b/sys/sparc64/sparc64/pmap.c
@@ -216,14 +216,32 @@ static int om_cmp(const void *a, const void *b);
static int
mr_cmp(const void *a, const void *b)
{
- return ((const struct mem_region *)a)->mr_start -
- ((const struct mem_region *)b)->mr_start;
+ const struct mem_region *mra;
+ const struct mem_region *mrb;
+
+ mra = a;
+ mrb = b;
+ if (mra->mr_start < mrb->mr_start)
+ return (-1);
+ else if (mra->mr_start > mrb->mr_start)
+ return (1);
+ else
+ return (0);
}
static int
om_cmp(const void *a, const void *b)
{
- return ((const struct ofw_map *)a)->om_start -
- ((const struct ofw_map *)b)->om_start;
+ const struct ofw_map *oma;
+ const struct ofw_map *omb;
+
+ oma = a;
+ omb = b;
+ if (oma->om_start < omb->om_start)
+ return (-1);
+ else if (oma->om_start > omb->om_start)
+ return (1);
+ else
+ return (0);
}
/*
OpenPOWER on IntegriCloud