diff options
author | jhb <jhb@FreeBSD.org> | 2006-01-06 19:56:12 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2006-01-06 19:56:12 +0000 |
commit | c3cc6833404ee41c8be67bdf82ec3c3dbd45c9a3 (patch) | |
tree | 5f6e104bed1968cf95fdd0aa4f8d894f65cc19d0 | |
parent | 4882287a5eab96e94b96d583e9a287e1fd4e4aed (diff) | |
download | FreeBSD-src-c3cc6833404ee41c8be67bdf82ec3c3dbd45c9a3.zip FreeBSD-src-c3cc6833404ee41c8be67bdf82ec3c3dbd45c9a3.tar.gz |
- 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
-rw-r--r-- | sys/dev/si/si.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/dev/si/si.c b/sys/dev/si/si.c index 8bbb8b8..e821a9e 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); } |