VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / drivers / telephony / phonedev.c
index 3300eeb..3c987f4 100644 (file)
@@ -28,7 +28,7 @@
 
 #include <linux/kmod.h>
 #include <linux/sem.h>
-
+#include <linux/devfs_fs_kernel.h>
 
 #define PHONE_NUM_DEVICES      256
 
@@ -105,6 +105,8 @@ int phone_register_device(struct phone_device *p, int unit)
                if (phone_device[i] == NULL) {
                        phone_device[i] = p;
                        p->minor = i;
+                       devfs_mk_cdev(MKDEV(PHONE_MAJOR,i),
+                               S_IFCHR|S_IRUSR|S_IWUSR, "phone/%d", i);
                        up(&phone_lock);
                        return 0;
                }
@@ -122,6 +124,7 @@ void phone_unregister_device(struct phone_device *pfd)
        down(&phone_lock);
        if (phone_device[pfd->minor] != pfd)
                panic("phone: bad unregister");
+       devfs_remove("phone/%d", pfd->minor);
        phone_device[pfd->minor] = NULL;
        up(&phone_lock);
 }