@@ -373,98 +373,6 @@ static int apply_microcode_on_target(int cpu)
373373 return ret ;
374374}
375375
376- #ifdef CONFIG_MICROCODE_OLD_INTERFACE
377- static int do_microcode_update (const void __user * buf , size_t size )
378- {
379- int error = 0 ;
380- int cpu ;
381-
382- for_each_online_cpu (cpu ) {
383- struct ucode_cpu_info * uci = ucode_cpu_info + cpu ;
384- enum ucode_state ustate ;
385-
386- if (!uci -> valid )
387- continue ;
388-
389- ustate = microcode_ops -> request_microcode_user (cpu , buf , size );
390- if (ustate == UCODE_ERROR ) {
391- error = -1 ;
392- break ;
393- } else if (ustate == UCODE_NEW ) {
394- apply_microcode_on_target (cpu );
395- }
396- }
397-
398- return error ;
399- }
400-
401- static int microcode_open (struct inode * inode , struct file * file )
402- {
403- return capable (CAP_SYS_RAWIO ) ? stream_open (inode , file ) : - EPERM ;
404- }
405-
406- static ssize_t microcode_write (struct file * file , const char __user * buf ,
407- size_t len , loff_t * ppos )
408- {
409- ssize_t ret = - EINVAL ;
410- unsigned long nr_pages = totalram_pages ();
411-
412- if ((len >> PAGE_SHIFT ) > nr_pages ) {
413- pr_err ("too much data (max %ld pages)\n" , nr_pages );
414- return ret ;
415- }
416-
417- cpus_read_lock ();
418- mutex_lock (& microcode_mutex );
419-
420- if (do_microcode_update (buf , len ) == 0 )
421- ret = (ssize_t )len ;
422-
423- if (ret > 0 )
424- perf_check_microcode ();
425-
426- mutex_unlock (& microcode_mutex );
427- cpus_read_unlock ();
428-
429- return ret ;
430- }
431-
432- static const struct file_operations microcode_fops = {
433- .owner = THIS_MODULE ,
434- .write = microcode_write ,
435- .open = microcode_open ,
436- .llseek = no_llseek ,
437- };
438-
439- static struct miscdevice microcode_dev = {
440- .minor = MICROCODE_MINOR ,
441- .name = "microcode" ,
442- .nodename = "cpu/microcode" ,
443- .fops = & microcode_fops ,
444- };
445-
446- static int __init microcode_dev_init (void )
447- {
448- int error ;
449-
450- error = misc_register (& microcode_dev );
451- if (error ) {
452- pr_err ("can't misc_register on minor=%d\n" , MICROCODE_MINOR );
453- return error ;
454- }
455-
456- return 0 ;
457- }
458-
459- static void __exit microcode_dev_exit (void )
460- {
461- misc_deregister (& microcode_dev );
462- }
463- #else
464- #define microcode_dev_init () 0
465- #define microcode_dev_exit () do { } while (0)
466- #endif
467-
468376/* fake device for request_firmware */
469377static struct platform_device * microcode_pdev ;
470378
@@ -856,10 +764,6 @@ static int __init microcode_init(void)
856764 goto out_driver ;
857765 }
858766
859- error = microcode_dev_init ();
860- if (error )
861- goto out_ucode_group ;
862-
863767 register_syscore_ops (& mc_syscore_ops );
864768 cpuhp_setup_state_nocalls (CPUHP_AP_MICROCODE_LOADER , "x86/microcode:starting" ,
865769 mc_cpu_starting , NULL );
@@ -870,10 +774,6 @@ static int __init microcode_init(void)
870774
871775 return 0 ;
872776
873- out_ucode_group :
874- sysfs_remove_group (& cpu_subsys .dev_root -> kobj ,
875- & cpu_root_microcode_group );
876-
877777 out_driver :
878778 cpus_read_lock ();
879779 mutex_lock (& microcode_mutex );
0 commit comments