Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src



Hi Jukka,

you wrote:
> +int
> +cpufreq_register(struct cpufreq *cf)
> +{
....
> +     mutex_enter(&cpufreq_lock);
> +
> +     if (cf_backend != NULL) {
> +             mutex_exit(&cpufreq_lock);
> +             return EALREADY;
> +     }
> +
> +     mutex_exit(&cpufreq_lock);
> +     cf_backend = kmem_zalloc(sizeof(*cf), KM_SLEEP);
                   ^
You probably need to assign to a temporary variable here

> +
> +     if (cf_backend == NULL)
> +             return ENOMEM;
> +
> +     mutex_enter(&cpufreq_lock);

and do cf_backend != NULL check one more time here before assigning
a new value (from the temporary variable) to cf_backend.

...

> +void
> +cpufreq_deregister(void)
> +{
> +
> +     mutex_enter(&cpufreq_lock);
> +
> +     if (cf_backend == NULL) {
> +             mutex_exit(&cpufreq_lock);
> +             return;
> +     }
> +
> +     mutex_exit(&cpufreq_lock);
> +     kmem_free(cf_backend, sizeof(*cf_backend));
> +     cf_backend = NULL;

And something similar here.
> +}

Alex


Home | Main Index | Thread Index | Old Index