From 8fa19acad60d450cac096ea06c1c4fd4c5cd1676 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Fri, 6 Jan 2006 19:56:12 +0000 Subject: [PATCH] - Fix cards with multiple modules. Prior to this, the ports on the various modules would have overlapping names. - Only create /dev/si_control for unit 0. Tested by: Joerg Lehners Joerg dot Lehners at informatik dot uni-oldenburg dot de (on 6.x) MFC after: 1 week --- sys/dev/si/si.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/sys/dev/si/si.c b/sys/dev/si/si.c index 8bbb8b85e04..e821a9e684a 100644 --- a/sys/dev/si/si.c +++ b/sys/dev/si/si.c @@ -541,7 +541,8 @@ try_next: pp->sp_pend = IDLE_CLOSE; pp->sp_state = 0; /* internal flag */ #ifdef SI_DEBUG - sprintf(pp->sp_name, "si%r%r", unit, x); + sprintf(pp->sp_name, "si%r%r", unit, + (int)(pp - sc->sc_ports)); #endif tp = pp->sp_tty = ttyalloc(); tp->t_sc = pp; @@ -552,7 +553,8 @@ try_next: tp->t_oproc = si_start; tp->t_param = siparam; tp->t_stop = si_stop; - ttycreate(tp, TS_CALLOUT, "A%r%r", unit, x); + ttycreate(tp, TS_CALLOUT, "A%r%r", unit, + (int)(pp - sc->sc_ports)); } try_next2: if (modp->sm_next == 0) { @@ -576,7 +578,9 @@ try_next2: done_chartimes = 1; } - make_dev(&si_Scdevsw, 0, 0, 0, 0600, "si_control"); + if (unit == 0) + make_dev(&si_Scdevsw, 0, UID_ROOT, GID_WHEEL, 0600, + "si_control"); return (0); }