On 22 September 2012 00:02, morten.rasmussen@arm.com wrote:
diff --git a/arch/arm/kernel/topology.c b/arch/arm/kernel/topology.c
+void __init arch_get_hmp_domains(struct list_head *hmp_domains_list) +{
struct cpumask hmp_fast_cpu_mask;
struct cpumask hmp_slow_cpu_mask;
can be merged to single line.
struct hmp_domain *domain;
arch_get_fast_and_slow_cpus(&hmp_fast_cpu_mask, &hmp_slow_cpu_mask);
/*
* Initialize hmp_domains
* Must be ordered with respect to compute capacity.
* Fastest domain at head of list.
*/
domain = (struct hmp_domain *)
kmalloc(sizeof(struct hmp_domain), GFP_KERNEL);
should be:
domain = kmalloc(sizeof(*domain), GFP_KERNEL);
cpumask_copy(&domain->cpus, &hmp_slow_cpu_mask);
what if kmalloc failed?
list_add(&domain->hmp_domains, hmp_domains_list);
domain = (struct hmp_domain *)
kmalloc(sizeof(struct hmp_domain), GFP_KERNEL);
would be better to kmalloc only once with size 2* sizeof(*domain)
cpumask_copy(&domain->cpus, &hmp_fast_cpu_mask);
list_add(&domain->hmp_domains, hmp_domains_list);
Also would be better to create a macro for above two lines to remove code redundancy.