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.