summaryrefslogtreecommitdiffstats
path: root/sys/dev/si
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2006-01-06 19:56:12 +0000
committerjhb <jhb@FreeBSD.org>2006-01-06 19:56:12 +0000
commitc3cc6833404ee41c8be67bdf82ec3c3dbd45c9a3 (patch)
tree5f6e104bed1968cf95fdd0aa4f8d894f65cc19d0 /sys/dev/si
parent4882287a5eab96e94b96d583e9a287e1fd4e4aed (diff)
downloadFreeBSD-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
Diffstat (limited to 'sys/dev/si')
-rw-r--r--sys/dev/si/si.c10
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);
}
OpenPOWER on IntegriCloud