Messages in this thread Patch in this message | | | Date | Sun, 6 Apr 2003 09:17:40 +0200 | From | Christoph Hellwig <> | Subject | [PATCH] fix devfs support in i386 microcode driver |
| |
register a /dev/cpu/microcode symlink instead of a regular file with the same name - regular file support is gone in devfs.
--- 1.17/arch/i386/kernel/microcode.c Tue Mar 11 09:16:36 2003 +++ edited/arch/i386/kernel/microcode.c Thu Mar 27 10:24:37 2003 @@ -107,7 +107,6 @@ static char *mc_applied; /* array of applied microcode blocks */ static unsigned int mc_fsize; /* file size of /dev/cpu/microcode */ -/* we share file_operations between misc and devfs mechanisms */ static struct file_operations microcode_fops = { .owner = THIS_MODULE, .read = microcode_read, @@ -122,41 +121,33 @@ .fops = µcode_fops, }; -static devfs_handle_t devfs_handle; - static int __init microcode_init(void) { int error; error = misc_register(µcode_dev); if (error) - printk(KERN_WARNING - "microcode: can't misc_register on minor=%d\n", - MICROCODE_MINOR); - - devfs_handle = devfs_register(NULL, "cpu/microcode", - DEVFS_FL_DEFAULT, 0, 0, S_IFREG | S_IRUSR | S_IWUSR, - µcode_fops, NULL); - if (devfs_handle == NULL && error) { - printk(KERN_ERR "microcode: failed to devfs_register()\n"); - misc_deregister(µcode_dev); - goto out; - } - error = 0; + goto fail; + error = devfs_mk_symlink("cpu/microcode", "../misc/microcode"); + if (error) + goto fail_deregister; + printk(KERN_INFO "IA-32 Microcode Update Driver: v%s <tigran@veritas.com>\n", MICROCODE_VERSION); + return 0; -out: +fail_deregister: + misc_deregister(µcode_dev); +fail: return error; } static void __exit microcode_exit(void) { misc_deregister(µcode_dev); - devfs_unregister(devfs_handle); - if (mc_applied) - kfree(mc_applied); + devfs_remove("cpu/microcode"); + kfree(mc_applied); printk(KERN_INFO "IA-32 Microcode Update Driver v%s unregistered\n", MICROCODE_VERSION); } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |