Messages in this thread | | | Date | Wed, 7 Jul 2004 13:47:33 -0700 | From | Roland McGrath <> | Subject | Re: ptrace "fix" breaks ia64 |
| |
> The problem is due to the fact that the gate page on ia64 really does > live in the kernel-mapped segment (as your original code correctly > assumed). Furthermore, pgd_offset_k() is different from pgd_offset() > since the kernel-mapped segment gets a full page-directory inside a > single region, whereas user-space regions get only 1/8th of a > page-directory, so it's not OK to use pgd_offset() in lieu of > pgd_offset().
Sorry. I skimmed all the code and comments for pgd_offset_k and thought at the time that it was strictly an optimized shortcut for pgd_offset. Clearly I did not understand the ia64 code.
> I suppose we could have a new macro pgd_offset_gate() or something > along those lines to accommodate platform-differences in where the > gage page lives.
That seems like the reasonable thing to do. I considered just putting all that logic into arch-specific code, joining with the get_gate_vma code. But that would leave x86_64 requiring duplication of the generic version. At least with the various arch cases around now, just adding pgd_offset_gate is the thing that will allow maximal code sharing.
Thanks, Roland - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |