From 5e1d0a23bcfaee91f2be78cfe02f2c23177dfb26 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Mon, 12 Apr 2004 23:02:21 +0000 Subject: [PATCH] Fix off by one error, twice. Submitted by: Carlos Velasco (first one), jhb (second one) --- sys/kern/subr_rman.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/kern/subr_rman.c b/sys/kern/subr_rman.c index b068af31687..754695b5cb8 100644 --- a/sys/kern/subr_rman.c +++ b/sys/kern/subr_rman.c @@ -234,7 +234,7 @@ rman_reserve_resource_bound(struct rman *rm, u_long start, u_long end, rstart += bound - (rstart & ~bmask); } while ((rstart & amask) != 0 && rstart < end && rstart < s->r_end); - rend = ulmin(s->r_end, ulmax(rstart + count, end)); + rend = ulmin(s->r_end, ulmax(rstart + count - 1, end)); if (rstart > rend) { DPRINTF(("adjusted start exceeds end\n")); continue; @@ -334,7 +334,7 @@ rman_reserve_resource_bound(struct rman *rm, u_long start, u_long end, if ((s->r_flags & flags) != flags) continue; rstart = ulmax(s->r_start, start); - rend = ulmin(s->r_end, ulmax(start + count, end)); + rend = ulmin(s->r_end, ulmax(start + count - 1, end)); if (s->r_start >= start && s->r_end <= end && (s->r_end - s->r_start + 1) == count && (s->r_start & amask) == 0 && -- 2.45.2