From 1ab933b50ecd219c781927db8c0efe9b7e8b4ddf Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Wed, 16 Apr 2003 23:09:26 -0700 Subject: [PATCH] [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. --- arch/i386/kernel/microcode.c | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/arch/i386/kernel/microcode.c b/arch/i386/kernel/microcode.c index 8c5414a00be8f..0371e43806e8f 100644 --- a/arch/i386/kernel/microcode.c +++ b/arch/i386/kernel/microcode.c @@ -107,7 +107,6 @@ static unsigned int microcode_num; /* number of chunks in microcode */ 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 @@ static struct miscdevice microcode_dev = { .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 \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); } -- 2.53.0