--- zzzz-none-000/linux-2.4.17/drivers/pcmcia/ds.c 2001-11-12 17:39:01.000000000 +0000 +++ sangam-fb-322/linux-2.4.17/drivers/pcmcia/ds.c 2004-11-24 13:23:45.000000000 +0000 @@ -55,6 +55,7 @@ #include #include #include +#include /*====================================================================*/ @@ -880,6 +881,8 @@ EXPORT_SYMBOL(register_pccard_driver); EXPORT_SYMBOL(unregister_pccard_driver); +static devfs_handle_t devfs_handle; + /*====================================================================*/ int __init init_pcmcia_ds(void) @@ -957,8 +960,13 @@ if (i == -EBUSY) printk(KERN_NOTICE "unable to find a free device # for " "Driver Services\n"); - else + else { major_dev = i; + devfs_handle = devfs_register(NULL, "pcmcia", DEVFS_FL_DEFAULT, + major_dev, 0, + S_IFCHR | S_IRUSR | S_IWUSR, + &ds_fops, NULL); + } #ifdef CONFIG_PROC_FS if (proc_pccard) @@ -983,7 +991,9 @@ remove_proc_entry("drivers", proc_pccard); #endif if (major_dev != -1) - unregister_chrdev(major_dev, "pcmcia"); + devfs_unregister_chrdev(major_dev, "pcmcia"); + devfs_unregister(devfs_handle); + for (i = 0; i < sockets; i++) pcmcia_deregister_client(socket_table[i].handle); sockets = 0;