Re: [PATCH 10/13] Do not try to disable hpet if it hasn't beeninitialized before

From: Konrad Rzeszutek Wilk
Date: Wed Jun 30 2010 - 13:55:37 EST


On Mon, Jun 21, 2010 at 05:14:04PM +0100, stefano@xxxxxxxxxxxxxx wrote:
> From: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
>
> hpet_disable is called unconditionally on machine reboot if hpet support
> is compiled in the kernel.
> hpet_disable only checks if the machine is hpet capable but doesn't make
> sure that hpet has been initialized.

CC-ing John Stultz who has had his head wrapped around this time-thingy.

Hi John!

What are your thoughts about this patch?
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
> ---
> arch/x86/kernel/hpet.c | 18 ++++++++++--------
> 1 files changed, 10 insertions(+), 8 deletions(-)
>
> diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
> index 23b4ecd..2b299da 100644
> --- a/arch/x86/kernel/hpet.c
> +++ b/arch/x86/kernel/hpet.c
> @@ -959,16 +959,18 @@ fs_initcall(hpet_late_init);
>
> void hpet_disable(void)
> {
> - if (is_hpet_capable()) {
> - unsigned int cfg = hpet_readl(HPET_CFG);
> + unsigned int cfg;
>
> - if (hpet_legacy_int_enabled) {
> - cfg &= ~HPET_CFG_LEGACY;
> - hpet_legacy_int_enabled = 0;
> - }
> - cfg &= ~HPET_CFG_ENABLE;
> - hpet_writel(cfg, HPET_CFG);
> + if (!is_hpet_capable() || !hpet_address || !hpet_virt_address)
> + return;
> +
> + cfg = hpet_readl(HPET_CFG);
> + if (hpet_legacy_int_enabled) {
> + cfg &= ~HPET_CFG_LEGACY;
> + hpet_legacy_int_enabled = 0;
> }
> + cfg &= ~HPET_CFG_ENABLE;
> + hpet_writel(cfg, HPET_CFG);
> }
>
> #ifdef CONFIG_HPET_EMULATE_RTC
> --
> 1.7.0.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/