linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / arch / sparc64 / kernel / us3_cpufreq.c
index 47e3aca..6d1f9a3 100644 (file)
@@ -203,9 +203,6 @@ static int __init us3_freq_init(void)
        unsigned long manuf, impl, ver;
        int ret;
 
-       if (tlb_type != cheetah && tlb_type != cheetah_plus)
-               return -ENODEV;
-
        __asm__("rdpr %%ver, %0" : "=r" (ver));
        manuf = ((ver >> 48) & 0xffff);
        impl  = ((ver >> 32) & 0xffff);
@@ -218,16 +215,20 @@ static int __init us3_freq_init(void)
                struct cpufreq_driver *driver;
 
                ret = -ENOMEM;
-               driver = kzalloc(sizeof(struct cpufreq_driver), GFP_KERNEL);
+               driver = kmalloc(sizeof(struct cpufreq_driver), GFP_KERNEL);
                if (!driver)
                        goto err_out;
+               memset(driver, 0, sizeof(*driver));
 
-               us3_freq_table = kzalloc(
+               us3_freq_table = kmalloc(
                        (NR_CPUS * sizeof(struct us3_freq_percpu_info)),
                        GFP_KERNEL);
                if (!us3_freq_table)
                        goto err_out;
 
+               memset(us3_freq_table, 0,
+                      (NR_CPUS * sizeof(struct us3_freq_percpu_info)));
+
                driver->init = us3_freq_cpu_init;
                driver->verify = us3_freq_verify;
                driver->target = us3_freq_target;