[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.21.1804262342140.1596@nanos.tec.linutronix.de>
Date: Thu, 26 Apr 2018 23:49:08 +0200 (CEST)
From: Thomas Gleixner <tglx@...utronix.de>
To: "K. Y. Srinivasan" <kys@...rosoft.com>
cc: x86@...nel.org, gregkh@...uxfoundation.org,
linux-kernel@...r.kernel.org, devel@...uxdriverproject.org,
olaf@...fle.de, apw@...onical.com, jasowang@...hat.com,
hpa@...or.com, sthemmin@...rosoft.com,
Michael.H.Kelley@...rosoft.com, vkuznets@...hat.com
Subject: Re: [PATCH 1/5] X86: Hyper-V: Enlighten APIC access
On Wed, 25 Apr 2018, kys@...uxonhyperv.com wrote:
> --- /dev/null
> +++ b/arch/x86/hyperv/hv_apic.c
> @@ -0,0 +1,98 @@
> +// SPDX-License-Identifier: GPL-2.0
Thanks for putting the license identifier in.
> +
> +/*
> + * Hyper-V specific APIC code.
> + *
> + * Copyright (C) 2018, Microsoft, Inc.
> + *
> + * Author : K. Y. Srinivasan <kys@...rosoft.com>
But can you please check with your lawyers whether you can avoid the
pointless boilerplate? The SPDX identifier should cover it.
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License version 2 as published
> + * by the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful, but
> + * WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
> + * NON INFRINGEMENT. See the GNU General Public License for more
> + * details.
> + *
> + */
> +
> +#include <linux/types.h>
> +#include <asm/hypervisor.h>
> +#include <asm/mshyperv.h>
> +#include <linux/version.h>
> +#include <linux/vmalloc.h>
> +#include <linux/mm.h>
> +#include <linux/clockchips.h>
> +#include <linux/hyperv.h>
> +#include <linux/slab.h>
> +#include <linux/cpuhotplug.h>
We usually order the includes
#include <linux/....>
...
#include <linux/....>
#include <asm/....>
#include <asm/....>
> -void hyperv_init(void);
> +void __init hyperv_init(void);
> void hyperv_setup_mmu_ops(void);
> void hyper_alloc_mmu(void);
> void hyperv_report_panic(struct pt_regs *regs, long err);
> @@ -269,14 +269,16 @@ void hyperv_reenlightenment_intr(struct pt_regs *regs);
> void set_hv_tscchange_cb(void (*cb)(void));
> void clear_hv_tscchange_cb(void);
> void hyperv_stop_tsc_emulation(void);
> +void hv_apic_init(void);
> #else /* CONFIG_HYPERV */
> -static inline void hyperv_init(void) {}
> +static __init inline void hyperv_init(void) {}
The __init on the empty inline function is pointless.
Other than the few nits. This looks well done!
Thanks,
tglx
Powered by blists - more mailing lists