summaryrefslogtreecommitdiffstats
path: root/sys/dev/vkbd
diff options
context:
space:
mode:
authordavide <davide@FreeBSD.org>2013-09-07 13:45:44 +0000
committerdavide <davide@FreeBSD.org>2013-09-07 13:45:44 +0000
commitec6382d0c26c20bd51fe82da2429500f6a034707 (patch)
tree6e614255289b5312f626893bca4618a0e9379c04 /sys/dev/vkbd
parenteb5a66191bbcd3ddd0b695b32e9bd837c356027d (diff)
downloadFreeBSD-src-ec6382d0c26c20bd51fe82da2429500f6a034707.zip
FreeBSD-src-ec6382d0c26c20bd51fe82da2429500f6a034707.tar.gz
- Use make_dev_credf(MAKEDEV_REF) instead of the race-prone make_dev()+
dev_ref() in the clone handlers that still use it. - Don't set SI_CHEAPCLONE flag, it's not used anywhere neither in devfs (for anything real) Reviewed by: kib
Diffstat (limited to 'sys/dev/vkbd')
-rw-r--r--sys/dev/vkbd/vkbd.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/sys/dev/vkbd/vkbd.c b/sys/dev/vkbd/vkbd.c
index 81418f2..fc5452a 100644
--- a/sys/dev/vkbd/vkbd.c
+++ b/sys/dev/vkbd/vkbd.c
@@ -186,14 +186,10 @@ vkbd_dev_clone(void *arg, struct ucred *cred, char *name, int namelen,
return; /* don't recognize the name */
/* find any existing device, or allocate new unit number */
- if (clone_create(&vkbd_dev_clones, &vkbd_dev_cdevsw, &unit, dev, 0)) {
- *dev = make_dev(&vkbd_dev_cdevsw, unit,
- UID_ROOT, GID_WHEEL, 0600, DEVICE_NAME "%d", unit);
- if (*dev != NULL) {
- dev_ref(*dev);
- (*dev)->si_flags |= SI_CHEAPCLONE;
- }
- }
+ if (clone_create(&vkbd_dev_clones, &vkbd_dev_cdevsw, &unit, dev, 0))
+ *dev = make_dev_credf(MAKEDEV_REF, &vkbd_dev_cdevsw, unit,
+ cred, UID_ROOT, GID_WHEEL, 0600, DEVICE_NAME "%d",
+ unit);
}
/* Open device */
OpenPOWER on IntegriCloud