 09dc68d958
			
		
	
	
	09dc68d958
	
	
	
		
			
			struct cpu_dev's c_models is only ever set inside CONFIG_X86_32 conditionals (or code that's being built for 32-bit only), so there's no use of reserving the (empty) space for the model names in a 64-bit kernel. Similarly, c_size_cache is only used in the #else of a CONFIG_X86_64 conditional, so reserving space for (and in one case even initializing) that field is pointless for 64-bit kernels too. While moving both fields to the end of the structure, I also noticed that: - the c_models array size was one too small, potentially causing table_lookup_model() to return garbage on Intel CPUs (intel.c's instance was lacking the sentinel with family being zero), so the patch bumps that by one, - c_models' vendor sub-field was unused (and anyway redundant with the base structure's c_x86_vendor field), so the patch deletes it. Also rename the legacy fields so that their legacy nature stands out and comment their declarations. Signed-off-by: Jan Beulich <jbeulich@suse.com> Link: http://lkml.kernel.org/r/5265036802000078000FC4DB@nat28.tlf.novell.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
		
			
				
	
	
		
			26 lines
		
	
	
	
		
			461 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			461 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <linux/kernel.h>
 | |
| #include <linux/init.h>
 | |
| #include <asm/processor.h>
 | |
| #include "cpu.h"
 | |
| 
 | |
| /*
 | |
|  * UMC chips appear to be only either 386 or 486,
 | |
|  * so no special init takes place.
 | |
|  */
 | |
| 
 | |
| static const struct cpu_dev umc_cpu_dev = {
 | |
| 	.c_vendor	= "UMC",
 | |
| 	.c_ident	= { "UMC UMC UMC" },
 | |
| 	.legacy_models	= {
 | |
| 		{ .family = 4, .model_names =
 | |
| 		  {
 | |
| 			  [1] = "U5D",
 | |
| 			  [2] = "U5S",
 | |
| 		  }
 | |
| 		},
 | |
| 	},
 | |
| 	.c_x86_vendor	= X86_VENDOR_UMC,
 | |
| };
 | |
| 
 | |
| cpu_dev_register(umc_cpu_dev);
 | |
| 
 |