> kasprintf() returns a pointer to dynamically allocated memory
> which can be NULL upon failure. Ensure the allocation was successful
> by checking the pointer validity.
…
> +++ b/arch/x86/xen/smp.c
> @@ -61,10 +61,14 @@ void xen_smp_intr_free(unsigned int cpu)
>
>  int xen_smp_intr_init(unsigned int cpu)
>  {
> -     int rc;
> +     int rc = 0;

I find the indication of a successful function execution sufficient by
the statement “return 0;” at the end.
How do you think about to omit such an extra variable initialisation?


>       char *resched_name, *callfunc_name, *debug_name;
>
>       resched_name = kasprintf(GFP_KERNEL, "resched%d", cpu);
> +     if (!resched_name) {
> +             rc = -ENOMEM;
> +             goto fail;
> +     }
>       per_cpu(xen_resched_irq, cpu).name = resched_name;
>       rc = bind_ipi_to_irqhandler(XEN_RESCHEDULE_VECTOR,
>                                   cpu,

You propose to apply the same error code in four if branches.
I suggest to avoid the specification of duplicate assignment statements
for this purpose.
How do you think about to use another label like “e_nomem”?

Regards,
Markus

Reply via email to