diff options
Diffstat (limited to 'arch/sparc64/kernel/us3_cpufreq.c')
-rw-r--r-- | arch/sparc64/kernel/us3_cpufreq.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/arch/sparc64/kernel/us3_cpufreq.c b/arch/sparc64/kernel/us3_cpufreq.c index 6d1f9a3c464f..47e3acafb5be 100644 --- a/arch/sparc64/kernel/us3_cpufreq.c +++ b/arch/sparc64/kernel/us3_cpufreq.c | |||
@@ -203,6 +203,9 @@ static int __init us3_freq_init(void) | |||
203 | unsigned long manuf, impl, ver; | 203 | unsigned long manuf, impl, ver; |
204 | int ret; | 204 | int ret; |
205 | 205 | ||
206 | if (tlb_type != cheetah && tlb_type != cheetah_plus) | ||
207 | return -ENODEV; | ||
208 | |||
206 | __asm__("rdpr %%ver, %0" : "=r" (ver)); | 209 | __asm__("rdpr %%ver, %0" : "=r" (ver)); |
207 | manuf = ((ver >> 48) & 0xffff); | 210 | manuf = ((ver >> 48) & 0xffff); |
208 | impl = ((ver >> 32) & 0xffff); | 211 | impl = ((ver >> 32) & 0xffff); |
@@ -215,20 +218,16 @@ static int __init us3_freq_init(void) | |||
215 | struct cpufreq_driver *driver; | 218 | struct cpufreq_driver *driver; |
216 | 219 | ||
217 | ret = -ENOMEM; | 220 | ret = -ENOMEM; |
218 | driver = kmalloc(sizeof(struct cpufreq_driver), GFP_KERNEL); | 221 | driver = kzalloc(sizeof(struct cpufreq_driver), GFP_KERNEL); |
219 | if (!driver) | 222 | if (!driver) |
220 | goto err_out; | 223 | goto err_out; |
221 | memset(driver, 0, sizeof(*driver)); | ||
222 | 224 | ||
223 | us3_freq_table = kmalloc( | 225 | us3_freq_table = kzalloc( |
224 | (NR_CPUS * sizeof(struct us3_freq_percpu_info)), | 226 | (NR_CPUS * sizeof(struct us3_freq_percpu_info)), |
225 | GFP_KERNEL); | 227 | GFP_KERNEL); |
226 | if (!us3_freq_table) | 228 | if (!us3_freq_table) |
227 | goto err_out; | 229 | goto err_out; |
228 | 230 | ||
229 | memset(us3_freq_table, 0, | ||
230 | (NR_CPUS * sizeof(struct us3_freq_percpu_info))); | ||
231 | |||
232 | driver->init = us3_freq_cpu_init; | 231 | driver->init = us3_freq_cpu_init; |
233 | driver->verify = us3_freq_verify; | 232 | driver->verify = us3_freq_verify; |
234 | driver->target = us3_freq_target; | 233 | driver->target = us3_freq_target; |