From 464deb56c22ebb174dadf6125f72f183b808f67f Mon Sep 17 00:00:00 2001 From: phk Date: Sat, 1 Oct 2005 19:21:03 +0000 Subject: Make sure the clone lists are sorted in the right order. Explosion triggered by: pjd MFC: 3 days --- sys/kern/kern_conf.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'sys/kern/kern_conf.c') diff --git a/sys/kern/kern_conf.c b/sys/kern/kern_conf.c index 4e8e033..b400a4e 100644 --- a/sys/kern/kern_conf.c +++ b/sys/kern/kern_conf.c @@ -824,8 +824,10 @@ clone_create(struct clonedevs **cdp, struct cdevsw *csw, int *up, struct cdev ** low++; de = dev; continue; - } - if (u > (unit | extra)) { + } else if (u < (unit | extra)) { + de = dev; + continue; + } else if (u > (unit | extra)) { dl = dev; break; } @@ -835,7 +837,7 @@ clone_create(struct clonedevs **cdp, struct cdevsw *csw, int *up, struct cdev ** dev = newdev(csw, unit2minor(unit | extra), ndev); if (dev->si_flags & SI_CLONELIST) { printf("dev %p (%s) is on clonelist\n", dev, dev->si_name); - printf("unit=%d\n", unit); + printf("unit=%d, low=%d, extra=0x%x\n", unit, low, extra); LIST_FOREACH(dev, &cd->head, si_clone) { printf("\t%p %s\n", dev, dev->si_name); } -- cgit v1.1