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

Re: [Xen-devel] [PATCH] NMI: continue in case of PCI SERR erros



>>> On 25.02.11 at 11:53, Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
wrote:
> Memory parity error is only valid for IBM PC-AT, newer machines use
> bit 7 (0x80) of 0x61 port for PCI SERR. While memory errors are
> usually reported via MCE.
> 
> Rename the memory parity error handler to pci serr handler and
> print a warning and continue instead of crashing.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
> 
> ---
> 
> diff -r 598d1fc295b6 xen/arch/x86/traps.c
> --- a/xen/arch/x86/traps.c    Thu Feb 24 09:33:19 2011 +0000
> +++ b/xen/arch/x86/traps.c    Fri Feb 25 10:37:47 2011 +0000
> @@ -3075,23 +3075,12 @@ static void nmi_dom0_report(unsigned int
>      send_guest_trap(d, 0, TRAP_nmi);
>  }
>  
> -static void mem_parity_error(struct cpu_user_regs *regs)
> +static void pci_serr_error(struct cpu_user_regs *regs)
>  {
> -    switch ( opt_nmi[0] )
> -    {
> -    case 'd': /* 'dom0' */
> -        nmi_dom0_report(_XEN_NMIREASON_parity_error);
> -    case 'i': /* 'ignore' */
> -        break;
> -    default:  /* 'fatal' */
> -        console_force_unlock();
> -        printk("\n\nNMI - MEMORY ERROR\n");
> -        fatal_trap(TRAP_nmi, regs);
> -    }
> +    console_force_unlock();
> +    printk("\n\nNMI - PCI system error (SERR)\n");

Why do you remove the reporting of the event to Dom0? I'd rather
see this part stay and the public headers getting adjusted in a
compatible way.

Jan

>  
> -    outb((inb(0x61) & 0x0f) | 0x04, 0x61); /* clear-and-disable parity check 
> */
> -    mdelay(1);
> -    outb((inb(0x61) & 0x0b) | 0x00, 0x61); /* enable parity check */
> +    outb((inb(0x61) & 0x0f) | 0x04, 0x61); /* clear-and-disable the PCI SERR 
> error line. */
>  }
>  
>  static void io_check_error(struct cpu_user_regs *regs)
> @@ -3154,7 +3143,7 @@ asmlinkage void do_nmi(struct cpu_user_r
>      {
>          reason = inb(0x61);
>          if ( reason & 0x80 )
> -            mem_parity_error(regs);
> +            pci_serr_error(regs);
>          else if ( reason & 0x40 )
>              io_check_error(regs);
>          else if ( !nmi_watchdog )
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx 
> http://lists.xensource.com/xen-devel 




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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