[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] x86/hpet: warn about and clear reserved set config register bits


  • To: Jan Beulich <JBeulich@xxxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxx>
  • From: Keir Fraser <keir@xxxxxxx>
  • Date: Wed, 28 Mar 2012 14:47:43 +0100
  • Delivery-date: Wed, 28 Mar 2012 13:48:09 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xen.org>
  • Thread-index: Ac0M6VlgqwLZ4uw4wkadMdntxRhRVg==
  • Thread-topic: [Xen-devel] [PATCH] x86/hpet: warn about and clear reserved set config register bits

On 28/03/2012 14:42, "Jan Beulich" <JBeulich@xxxxxxxx> wrote:

> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>

Acked-by: Keir Fraser <keir@xxxxxxx>

> --- a/xen/arch/x86/hpet.c
> +++ b/xen/arch/x86/hpet.c
> @@ -755,6 +755,13 @@ void hpet_resume(u32 *boot_cfg)
>      if ( boot_cfg )
>          *boot_cfg = cfg;
>      cfg &= ~(HPET_CFG_ENABLE | HPET_CFG_LEGACY);
> +    if ( cfg )
> +    {
> +        printk(XENLOG_WARNING
> +               "HPET: reserved bits %#x set in global config register\n",
> +               cfg);
> +        cfg = 0;
> +    }
>      hpet_write32(cfg, HPET_CFG);
>  
>      hpet_id = hpet_read32(HPET_ID);
> @@ -765,6 +772,13 @@ void hpet_resume(u32 *boot_cfg)
>          if ( boot_cfg )
>              boot_cfg[i + 1] = cfg;
>          cfg &= ~HPET_TN_ENABLE;
> +        if ( cfg & HPET_TN_RESERVED )
> +        {
> +            printk(XENLOG_WARNING
> +                   "HPET: reserved bits %#x set in channel %u config
> register\n",
> +                   cfg & HPET_TN_RESERVED, i);
> +            cfg &= ~HPET_TN_RESERVED;
> +        }
>          hpet_write32(cfg, HPET_Tn_CFG(i));
>      }
>  
> --- a/xen/arch/x86/hvm/hpet.c
> +++ b/xen/arch/x86/hvm/hpet.c
> @@ -42,7 +42,8 @@
>      (hvm_get_guest_time(vhpet_vcpu(hpet)) / STIME_PER_HPET_TICK)
>  
>  #define HPET_TN_INT_ROUTE_CAP_SHIFT 32
> -#define HPET_TN_CFG_BITS_READONLY_OR_RESERVED 0xffff80b1U
> +#define HPET_TN_CFG_BITS_READONLY_OR_RESERVED (HPET_TN_RESERVED | \
> +    HPET_TN_PERIODIC_CAP | HPET_TN_64BIT_CAP | HPET_TN_FSB_CAP)
>  
>  /* can be routed to IOAPIC.redirect_table[23..20] */
>  #define HPET_TN_INT_ROUTE_CAP      (0x00f00000ULL \
> --- a/xen/include/asm-x86/hpet.h
> +++ b/xen/include/asm-x86/hpet.h
> @@ -43,6 +43,7 @@
>  #define HPET_TN_ROUTE  0x3e00
>  #define HPET_TN_FSB  0x4000
>  #define HPET_TN_FSB_CAP  0x8000
> +#define HPET_TN_RESERVED 0xffff0081
>  #define HPET_TN_ROUTE_SHIFT 9
>  
>  
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.