On Thu, 13 Sep 2018, Brijesh Singh wrote:
>  
> +static void __init kvmclock_init_mem(void)
> +{
> +     unsigned int ncpus = num_possible_cpus() - HVC_BOOT_ARRAY_SIZE;
> +     unsigned int order = get_order(ncpus * sizeof(*hvclock_mem));
> +     struct page *p;
> +     int r;
> +
> +     p = alloc_pages(GFP_KERNEL, order);
> +     if (p) {

If you make this:

        if (!p) {
                pr_warn();
                return;
        }

then you spare one indentation level and give useful information.

> +             hvclock_mem = page_address(p);
> +
> +             /*
> +              * hvclock is shared between the guest and the hypervisor, must
> +              * be mapped decrypted.
> +              */
> +             if (sev_active()) {
> +                     r = set_memory_decrypted((unsigned long) hvclock_mem,
> +                                              1UL << order);
> +                     if (r) {
> +                             __free_pages(p, order);
> +                             hvclock_mem = NULL;

This wants a pr_warn() as well, please.
  
> +                             return;
> +                     }
> +             }
> +
> +             memset(hvclock_mem, 0, PAGE_SIZE << order);
> +     }
> +}

Other than that, this looks really reasonable and way more palatable in the
rc stage.

Thanks,

        tglx

Reply via email to