From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeremy Fitzhardinge Subject: Re: Re: pvops: i915 kms crashs with corrupt page table Date: Thu, 25 Feb 2010 16:37:43 -0800 Message-ID: <4B8717D7.3090307@goop.org> References: <20100224175555.GA6353@wavehammer.waldi.eu.org> <4B857CB9.8090804@goop.org> <20100225100620.GA31747@wavehammer.waldi.eu.org> <20100225103234.GA2324@wavehammer.waldi.eu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20100225103234.GA2324@wavehammer.waldi.eu.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Bastian Blank Cc: Konrad Rzeszutek , xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On 02/25/2010 02:32 AM, Bastian Blank wrote: > On Thu, Feb 25, 2010 at 11:06:20AM +0100, Bastian Blank wrote: > >> On Wed, Feb 24, 2010 at 11:23:37AM -0800, Jeremy Fitzhardinge wrote: >> >>> On 02/24/2010 09:55 AM, Bastian Blank wrote: >>> >>>> I run a 2.6.32 dom0 kernel (the Debian distribution config). If I enable >>>> KMS in the intel driver, Xorg crashs with corrupt page table. >>>> >>> Does this help? >>> >> No. >> > But it is something like that: > > intel_i810_configure: > pci_read_config_dword(intel_private.pcidev, I810_GMADDR,&temp); > agp_bridge->gart_bus_addr = (temp& PCI_BASE_ADDRESS_MEM_MASK); > > agp_copy_info: > info->aper_base = bridge->gart_bus_addr; > > drm_agp_init: > head->base = head->agp_info.aper_base; > > dev->agp = head > > i915_gem_init_ringbuffer: > ring->map.offset = dev->agp->base + obj_priv->gtt_offset; > > This address is directly used to create a userspace mapping. > Does this help? diff --git a/arch/x86/include/asm/pgtable_64.h b/arch/x86/include/asm/pgtable_64.h index c57a301..4e46931 100644 --- a/arch/x86/include/asm/pgtable_64.h +++ b/arch/x86/include/asm/pgtable_64.h @@ -160,7 +160,7 @@ extern void cleanup_highmap(void); #define pgtable_cache_init() do { } while (0) #define check_pgt_cache() do { } while (0) -#define PAGE_AGP PAGE_KERNEL_NOCACHE +#define PAGE_AGP PAGE_KERNEL_IO_NOCACHE #define HAVE_PAGE_AGP 1 /* fs/proc/kcore.c */ J