Bugzilla – Attachment 49159 Details for
Bug 115800
nvidia: XEN support
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
IDP Log In
|
Forgot Password
[patch]
nvidia driver fix for Xen kernel
nv-fix-gartaddr-xen.diff (text/plain), 3.04 KB, created by
Stefan Dirsch
on 2005-09-08 08:28:43 UTC
(
hide
)
Description:
nvidia driver fix for Xen kernel
Filename:
MIME Type:
Creator:
Stefan Dirsch
Created:
2005-09-08 08:28:43 UTC
Size:
3.04 KB
patch
obsolete
>diff -uNrp NVIDIA-Linux-x86-1.0-7676-pkg1/usr/src/nv.orig/nv-linux.h NVIDIA-Linux-x86-1.0-7676-pkg1/usr/src/nv/nv-linux.h >--- NVIDIA-Linux-x86-1.0-7676-pkg1/usr/src/nv.orig/nv-linux.h 2005-07-29 22:30:43.000000000 +0200 >+++ NVIDIA-Linux-x86-1.0-7676-pkg1/usr/src/nv/nv-linux.h 2005-09-08 02:38:25.336116665 +0200 >@@ -637,14 +637,14 @@ typedef void irqreturn_t; > > #if defined(NV_REMAP_PFN_RANGE_PRESENT) > #define NV_REMAP_PAGE_RANGE(from, offset, x...) \ >- remap_pfn_range(vma, from, ((offset) >> PAGE_SHIFT), x) >+ io_remap_pfn_range(vma, from, ((offset) >> PAGE_SHIFT), x) > #elif defined(NV_REMAP_PAGE_RANGE_5_PRESENT) >-#define NV_REMAP_PAGE_RANGE(x...) remap_page_range(vma, x) >+#define NV_REMAP_PAGE_RANGE(x...) io_remap_page_range(vma, x) > #elif defined(NV_REMAP_PAGE_RANGE_4_PRESENT) >-#define NV_REMAP_PAGE_RANGE(x...) remap_page_range(x) >+#define NV_REMAP_PAGE_RANGE(x...) io_remap_page_range(x) > #else > #warning "conftest.sh failed, assuming remap_page_range(4)!" >-#define NV_REMAP_PAGE_RANGE(x...) remap_page_range(x) >+#define NV_REMAP_PAGE_RANGE(x...) io_remap_page_range(x) > #endif > > >@@ -1054,7 +1054,7 @@ static inline int nv_sg_map_buffer( > sg_ptr->offset = (unsigned long)base & ~PAGE_MASK; > sg_ptr->length = num_pages * PAGE_SIZE; > >- if (virt_to_phys(base) & ~dev->dma_mask) >+ if (virt_to_gart(base) & ~dev->dma_mask) > { > if (nv_remap_count + sg_ptr->length > nv_remap_limit) > { >@@ -1135,7 +1135,7 @@ static inline int nv_sg_load( > page_ptr->orig_phys_addr = page_ptr->phys_addr; > page_ptr->phys_addr = page_ptr->dma_addr; > page_ptr->orig_virt_addr = page_ptr->virt_addr; >- page_ptr->virt_addr = (unsigned long) __va(page_ptr->dma_addr); >+ page_ptr->virt_addr = gart_to_virt(page_ptr->dma_addr); > } > #endif > >diff -uNrp NVIDIA-Linux-x86-1.0-7676-pkg1/usr/src/nv.orig/nv-vm.c NVIDIA-Linux-x86-1.0-7676-pkg1/usr/src/nv/nv-vm.c >--- NVIDIA-Linux-x86-1.0-7676-pkg1/usr/src/nv.orig/nv-vm.c 2005-07-29 22:30:43.000000000 +0200 >+++ NVIDIA-Linux-x86-1.0-7676-pkg1/usr/src/nv/nv-vm.c 2005-09-08 02:33:51.437152371 +0200 >@@ -151,7 +151,7 @@ int nv_vm_malloc_pages( > /* point page_ptr at the start of the actual page list */ > nv_pte_t *page_ptr = *at->page_table; > unsigned int i, j; >- unsigned long virt_addr = 0, phys_addr; >+ unsigned long virt_addr = 0, phys_addr, gart_addr; > #if defined(NV_SG_MAP_BUFFERS) > nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv); > struct pci_dev *dev = nvl->dev; >@@ -238,6 +238,7 @@ int nv_vm_malloc_pages( > } > > phys_addr = nv_get_kern_phys_address(virt_addr); >+ gart_addr = phys_to_gart(phys_addr); > if (phys_addr == 0) > { > nv_printf(NV_DBG_ERRORS, >@@ -251,7 +252,7 @@ int nv_vm_malloc_pages( > page_ptr = at->page_table[i]; > page_ptr->phys_addr = phys_addr; > page_ptr->virt_addr = virt_addr; >- page_ptr->dma_addr = page_ptr->phys_addr; >+ page_ptr->dma_addr = gart_addr; > > #if defined(NV_SG_MAP_BUFFERS) > if (!NV_ALLOC_MAPPING_CONTIG(at->flags))
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
Actions:
View
|
Diff
Attachments on
bug 115800
:
49159
|
49160
|
49511
|
49567
|
49575