[PATCH 7/8] arm64/kexec: Add core kexec support
Dave Young
dyoung at redhat.com
Fri Jul 11 02:47:48 PDT 2014
On 07/07/14 at 03:33pm, Dave Young wrote:
> [snip]
>
> > +
> > +/**
> > + * kexec_cpu_info_init - Initialize an array of kexec_cpu_info structures.
> > + *
> > + * Allocates a cpu info array and fills it with info for all cpus found in
> > + * the device tree passed. The cpu info array is zero terminated.
> > + */
> > +
> > +int kexec_cpu_info_init(const struct device_node *dn,
> > + struct kexec_dt_info *info)
> > +{
> > + int result;
> > + unsigned int cpu;
> > + const struct device_node *i;
> > +
> > + info->cpu_info = kmalloc(
> > + (1 + info->cpu_count) * sizeof(struct kexec_cpu_info),
> > + GFP_KERNEL);
> > +
> > + if (!info->cpu_info) {
> > + pr_debug("%s: out of memory", __func__);
> > + return -ENOMEM;
> > + }
> > +
> > + info->spinner_count = 0;
> > +
> > + for (cpu = 0, i = dn; cpu < info->cpu_count; cpu++) {
> > + struct kexec_cpu_info *cpu_info = &info->cpu_info[cpu];
> > +
> > + i = of_find_node_by_type((struct device_node *)i, "cpu");
> > +
> > + BUG_ON(!i);
> > +
> > + cpu_info->cpu = cpu;
> > +
> > + result = cpu_read_ops((struct device_node *)i, cpu,
> > + &cpu_info->cpu_ops);
>
> cpu_ops memory is not allocated?
Oops, I misread the code, it should be not a problem. Just ignore above comment
But I surely have some problem, probably caused by some random issues.
>
> BTW cpu_read_ops will call cpu_get_ops which is marked as __init
>
> Thanks
> Dave
>
> _______________________________________________
> kexec mailing list
> kexec at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
More information about the linux-arm-kernel
mailing list