Lines 3641-3647
Link Here
|
3641 |
unsigned long vma_offset; |
3641 |
unsigned long vma_offset; |
3642 |
unsigned long pte_linear; |
3642 |
unsigned long pte_linear; |
3643 |
mem_map_t* pMmPage; |
3643 |
mem_map_t* pMmPage; |
3644 |
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) |
3644 |
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) |
|
|
3645 |
unsigned long address = (unsigned long) (vmf->address); |
3646 |
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) |
3645 |
unsigned long address = (unsigned long) (vmf->virtual_address); |
3647 |
unsigned long address = (unsigned long) (vmf->virtual_address); |
3646 |
#endif |
3648 |
#endif |
3647 |
|
3649 |
|
Lines 3716-3722
Link Here
|
3716 |
{ |
3718 |
{ |
3717 |
unsigned long kaddr; |
3719 |
unsigned long kaddr; |
3718 |
mem_map_t* pMmPage; |
3720 |
mem_map_t* pMmPage; |
3719 |
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) |
3721 |
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) |
|
|
3722 |
unsigned long address = (unsigned long) (vmf->address); |
3723 |
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) |
3720 |
unsigned long address = (unsigned long) (vmf->virtual_address); |
3724 |
unsigned long address = (unsigned long) (vmf->virtual_address); |
3721 |
#endif |
3725 |
#endif |
3722 |
|
3726 |
|
Lines 3761-3767
Link Here
|
3761 |
{ |
3765 |
{ |
3762 |
unsigned long kaddr; |
3766 |
unsigned long kaddr; |
3763 |
mem_map_t* pMmPage; |
3767 |
mem_map_t* pMmPage; |
3764 |
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) |
3768 |
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) |
|
|
3769 |
unsigned long address = (unsigned long) (vmf->address); |
3770 |
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) |
3765 |
unsigned long address = (unsigned long) (vmf->virtual_address); |
3771 |
unsigned long address = (unsigned long) (vmf->virtual_address); |
3766 |
#endif |
3772 |
#endif |
3767 |
|
3773 |
|
Lines 3824-3830
Link Here
|
3824 |
mem_map_t* pMmPage; |
3830 |
mem_map_t* pMmPage; |
3825 |
struct firegl_pcie_mem* pciemem; |
3831 |
struct firegl_pcie_mem* pciemem; |
3826 |
unsigned long* pagelist; |
3832 |
unsigned long* pagelist; |
3827 |
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) |
3833 |
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) |
|
|
3834 |
unsigned long address = (unsigned long) (vmf->address); |
3835 |
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) |
3828 |
unsigned long address = (unsigned long) (vmf->virtual_address); |
3836 |
unsigned long address = (unsigned long) (vmf->virtual_address); |
3829 |
#endif |
3837 |
#endif |
3830 |
|
3838 |
|
Lines 3886-3892
Link Here
|
3886 |
|
3894 |
|
3887 |
unsigned long offset; |
3895 |
unsigned long offset; |
3888 |
struct page *page; |
3896 |
struct page *page; |
3889 |
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) |
3897 |
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) |
|
|
3898 |
unsigned long address = (unsigned long) (vmf->address); |
3899 |
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) |
3890 |
unsigned long address = (unsigned long) (vmf->virtual_address); |
3900 |
unsigned long address = (unsigned long) (vmf->virtual_address); |
3891 |
#endif |
3901 |
#endif |
3892 |
|
3902 |
|
Lines 4179-4185
Link Here
|
4179 |
TRACE_NOPAGE(vm_gart_nopage,vma, address,type); |
4189 |
TRACE_NOPAGE(vm_gart_nopage,vma, address,type); |
4180 |
} |
4190 |
} |
4181 |
|
4191 |
|
4182 |
#else |
4192 |
#elif LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0) |
4183 |
|
4193 |
|
4184 |
#define TRACE_FAULT(_f, _v,_a) \ |
4194 |
#define TRACE_FAULT(_f, _v,_a) \ |
4185 |
int ret; \ |
4195 |
int ret; \ |
Lines 4187-4192
Link Here
|
4187 |
ret = _f(_v,_a); \ |
4197 |
ret = _f(_v,_a); \ |
4188 |
KCL_DEBUG_TRACEOUT(FN_DRM_NOPAGE, ret, NULL); \ |
4198 |
KCL_DEBUG_TRACEOUT(FN_DRM_NOPAGE, ret, NULL); \ |
4189 |
return ret; |
4199 |
return ret; |
|
|
4200 |
|
4201 |
static int ip_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) |
4202 |
{ |
4203 |
TRACE_FAULT(do_vm_fault, vma, vmf); |
4204 |
} |
4205 |
|
4206 |
static int ip_vm_shm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) |
4207 |
{ |
4208 |
TRACE_FAULT(do_vm_shm_fault, vma, vmf); |
4209 |
} |
4210 |
|
4211 |
static int ip_vm_dma_fault(struct vm_area_struct *vma, struct vm_fault *vmf) |
4212 |
{ |
4213 |
TRACE_FAULT(do_vm_dma_fault, vma, vmf); |
4214 |
} |
4215 |
|
4216 |
static int ip_vm_kmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf) |
4217 |
{ |
4218 |
TRACE_FAULT(do_vm_kmap_fault, vma, vmf); |
4219 |
} |
4220 |
|
4221 |
static int ip_vm_pcie_fault(struct vm_area_struct *vma, struct vm_fault *vmf) |
4222 |
{ |
4223 |
TRACE_FAULT(do_vm_pcie_fault, vma, vmf); |
4224 |
} |
4225 |
|
4226 |
static int ip_vm_gart_fault(struct vm_area_struct *vma, struct vm_fault *vmf) |
4227 |
{ |
4228 |
TRACE_FAULT(do_vm_gart_fault, vma, vmf); |
4229 |
} |
4230 |
|
4231 |
#else |
4232 |
|
4233 |
#define TRACE_FAULT(_f, _v,_a) \ |
4234 |
int ret; \ |
4235 |
KCL_DEBUG_TRACEIN(FN_DRM_NOPAGE, (unsigned long)_a->address, NULL); \ |
4236 |
ret = _f(_v,_a); \ |
4237 |
KCL_DEBUG_TRACEOUT(FN_DRM_NOPAGE, ret, NULL); \ |
4238 |
return ret; |
4190 |
|
4239 |
|
4191 |
static int ip_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) |
4240 |
static int ip_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) |
4192 |
{ |
4241 |
{ |