From 6e7c33f0dad0f70b5b785e2c4136fd5e31c2727a Mon Sep 17 00:00:00 2001 From: tsi Date: Wed, 26 Mar 2008 17:20:04 +0000 Subject: 23. In favour of the majority case, assume x86 and x86_64 systems cannot hard-fail master aborts. On an experimental basis, also assume the same of alpha systems. This adds support for such systems that don't include a PCI-to-ISA bridge. (Marc La France) --- programs/Xserver/hw/xfree86/CHANGELOG | 6 +++++- programs/Xserver/hw/xfree86/os-support/bus/Pci.h | 24 +++++++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/programs/Xserver/hw/xfree86/CHANGELOG b/programs/Xserver/hw/xfree86/CHANGELOG index 3b4915566..dd2720770 100644 --- a/programs/Xserver/hw/xfree86/CHANGELOG +++ b/programs/Xserver/hw/xfree86/CHANGELOG @@ -1,4 +1,8 @@ XFree86 4.7.99.15 (xx April 2008) + 23. In favour of the majority case, assume x86 and x86_64 systems cannot + hard-fail master aborts. On an experimental basis, also assume the same + of alpha systems. This adds support for such systems that don't include + a PCI-to-ISA bridge. (Marc La France) XFree86 4.7.99.14 (23 March 2008) 22. Fix null pointer defereference in XKB when LEDs don't exist @@ -20667,4 +20671,4 @@ XFree86 3.0a (28 April 1994) XFree86 3.0 (26 April 1994) -$XFree86: xc/programs/Xserver/hw/xfree86/CHANGELOG,v 3.3935 2008/03/18 20:24:04 tsi Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/CHANGELOG,v 3.3936 2008/03/23 12:03:00 dawes Exp $ diff --git a/programs/Xserver/hw/xfree86/os-support/bus/Pci.h b/programs/Xserver/hw/xfree86/os-support/bus/Pci.h index de4101b2c..1719dd202 100644 --- a/programs/Xserver/hw/xfree86/os-support/bus/Pci.h +++ b/programs/Xserver/hw/xfree86/os-support/bus/Pci.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h,v 1.55tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h,v 1.56tsi Exp $ */ /* * Copyright 1998 by Concurrent Computer Corporation * @@ -243,10 +243,17 @@ #define PCI_CFGMECH1_MAXDEV 32 +/* + * CAN_HARDFAIL_MASTER_ABORTS can be #define'd to a Bool function or some + * other boolean expression should the need arise. + */ +#undef CAN_HARDFAIL_MASTER_ABORTS + /* * Select architecture specific PCI init function */ #if defined(__alpha__) +# define CAN_HARDFAIL_MASTER_ABORTS FALSE /* Uncertain */ # if defined(linux) # define ARCH_PCI_INIT axpPciInit # define INCLUDE_XF86_MAP_PCI_MEM @@ -260,18 +267,21 @@ # define INCLUDE_XF86_NO_DOMAIN # endif #elif defined(__arm__) +# define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Unknown */ # if defined(linux) # define ARCH_PCI_INIT linuxPciInit # define INCLUDE_XF86_MAP_PCI_MEM # define INCLUDE_XF86_NO_DOMAIN # endif #elif defined(__hppa__) +# define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Unknown */ # if defined(linux) # define ARCH_PCI_INIT linuxPciInit # define INCLUDE_XF86_MAP_PCI_MEM # define INCLUDE_XF86_NO_DOMAIN # endif #elif defined(__ia64__) +# define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Broken */ # if defined(linux) # define ARCH_PCI_INIT linuxPciInit # define INCLUDE_XF86_MAP_PCI_MEM @@ -283,6 +293,7 @@ # endif # define XF86SCANPCI_WRAPPER ia64ScanPCIWrapper #elif defined(__i386__) || defined(i386) +# define CAN_HARDFAIL_MASTER_ABORTS FALSE /* Sane (so far) */ # define ARCH_PCI_INIT ix86PciInit # define INCLUDE_XF86_MAP_PCI_MEM # define INCLUDE_XF86_NO_DOMAIN @@ -290,18 +301,21 @@ # define ARCH_PCI_OS_INIT linuxPciInit # endif #elif defined(__mc68000__) +# define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Unknown */ # if defined(linux) # define ARCH_PCI_INIT linuxPciInit # define INCLUDE_XF86_MAP_PCI_MEM # define INCLUDE_XF86_NO_DOMAIN # endif #elif defined(__mips__) +# define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Unknown */ # if defined(linux) # define ARCH_PCI_INIT linuxPciInit # define INCLUDE_XF86_MAP_PCI_MEM # define INCLUDE_XF86_NO_DOMAIN # endif #elif defined(__powerpc__) +# define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Broken */ # if defined(linux) # define ARCH_PCI_INIT linuxPciInit # define INCLUDE_XF86_MAP_PCI_MEM @@ -322,18 +336,21 @@ # define INCLUDE_XF86_NO_DOMAIN # endif #elif defined(__s390__) +# define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Unknown */ # if defined(linux) # define ARCH_PCI_INIT linuxPciInit # define INCLUDE_XF86_MAP_PCI_MEM # define INCLUDE_XF86_NO_DOMAIN # endif #elif defined(__sh__) +# define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Unknown */ # if defined(linux) # define ARCH_PCI_INIT linuxPciInit # define INCLUDE_XF86_MAP_PCI_MEM # define INCLUDE_XF86_NO_DOMAIN # endif #elif defined(__sparc__) || defined(sparc) +# define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Broken */ # if defined(linux) # define ARCH_PCI_INIT linuxPciInit # define INCLUDE_XF86_MAP_PCI_MEM @@ -355,6 +372,7 @@ # endif # define ARCH_PCI_PCI_BRIDGE sparcPciPciBridge #elif defined(__amd64__) || defined(__x86_64__) +# define CAN_HARDFAIL_MASTER_ABORTS FALSE /* Likely */ # if defined(__FreeBSD__) # define ARCH_PCI_INIT freebsdPciInit # else @@ -371,6 +389,10 @@ #error No PCI support available for this architecture/OS combination #endif +#ifndef CAN_HARDFAIL_MASTER_ABORTS +#define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Assume the worst */ +#endif + extern void ARCH_PCI_INIT(void); #if defined(ARCH_PCI_OS_INIT) extern void ARCH_PCI_OS_INIT(void); -- cgit v1.2.3