From: Johannes E. <jcn...@go...> - 2008-07-29 17:10:43
Attachments:
0001-Replace-nopfn-by-fault.patch
|
Hi, folks, as Ross mentioned four days ago, nopfn has gone from the kernel tree. Therefore we need to adapt drm_vm.c to use fault instead. What do you think about the attached patch? Cheers, Johannes |
From: Thomas H. <th...@tu...> - 2008-07-29 18:26:03
|
Johannes, Johannes Engel wrote: > Hi, folks, > > as Ross mentioned four days ago, nopfn has gone from the kernel tree. > Therefore we need to adapt drm_vm.c to use fault instead. > What do you think about the attached patch? > > Cheers, Johannes > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > ------------------------------------------------------------------------ > > -- > _______________________________________________ > Dri-devel mailing list > Dri...@li... > https://lists.sourceforge.net/lists/listinfo/dri-devel If the patch works, it looks correct to me. However, you need to make sure (using defines) that the code will compile also on kernels that don't have the .fault method. /Thomas |
From: Johannes E. <jcn...@go...> - 2008-07-29 20:58:15
Attachments:
0001-Replace-nopfn-by-fault.patch
|
Thomas Hellström wrote: > Johannes, > > If the patch works, it looks correct to me. > However, you need to make sure (using defines) that the code will > compile also on kernels that don't have the .fault method. > > /Thomas Hi Thomas, thanks for reviewing and suggesting. :) I created a new variable DRM_HAS_FAULT which is defined for kernels from 2.6.23 and decides about using .fault or .nopfn. I attach a corrected version. Cheers, Johannes |
From: Tomas C. <to...@db...> - 2008-07-29 21:07:59
|
Johannes Engel wrote: > Thomas Hellström wrote: >> Johannes, >> >> If the patch works, it looks correct to me. >> However, you need to make sure (using defines) that the code will >> compile also on kernels that don't have the .fault method. >> >> /Thomas > Hi Thomas, > > thanks for reviewing and suggesting. :) > I created a new variable DRM_HAS_FAULT which is defined for kernels from > 2.6.23 and decides about using .fault or .nopfn. > I attach a corrected version. Wow, there are a lot ifdefs in the code. You could remove most of them if you do something like: #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23)) #define DRM_HAS_FAULT #define DRM_FAULT_SIGBUS VM_FAULT_SIGBUS #else #define DRM_FAULT_SIGBUS NOPFN_SIGBUS #endif and then use DRM_FAULT_SIGBUS in the code below. Also, why don't you take these two ifdefs together? +#ifdef DRM_HAS_FAULT + unsigned long address = (unsigned long)vmf->virtual_address; +#endif int err; unsigned long bus_base; unsigned long bus_offset; unsigned long bus_size; +#ifdef DRM_HAS_FAULT + int ret = VM_FAULT_NOPAGE; +#else unsigned long ret = NOPFN_REFAULT; +#endif tom |
From: Johannes E. <jcn...@go...> - 2008-07-29 21:19:10
Attachments:
0001-Replace-nopfn-by-fault.patch
|
Tomas Carnecky wrote: > Wow, there are a lot ifdefs in the code. Exactly what I was thinking when I saw the patch. ;) But I was too lazy to think for a solution. Thanks for doing that for me. :) Here comes the result. Cheers, Johannes |
From: Dave A. <ai...@li...> - 2008-07-31 03:01:54
|
> > Wow, there are a lot ifdefs in the code. > Exactly what I was thinking when I saw the patch. ;) But I was too lazy to > think for a solution. Thanks for doing that for me. :) > Here comes the result. > Thanks for looking at this, but I dislike both of these ideas, I'll just move the old nopfn code to drm_compat.c add fault code into drm_vm.c Yes we get code duplication, but other things just mess up clean merges upstream. Dave. |