Bug 139701
Summary: | current->personality is not being set to PER_LINUX32 | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 4 | Reporter: | Joe Maionchi <joeking> |
Component: | ia32el | Assignee: | Jakub Jelinek <jakub> |
Status: | CLOSED RAWHIDE | QA Contact: | |
Severity: | high | Docs Contact: | |
Priority: | medium | ||
Version: | 4.0 | CC: | davej, grgustaf, jturner, keve.a.gabbert, rkenna, sheryl.sage, tony.luck, yoav.zach |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | ia64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2004-11-22 22:54:05 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 140583 |
Description
Joe Maionchi
2004-11-17 16:43:53 UTC
I doubt ia32el calling personality (PER_LINUX32) will make any difference on RHEL4 - as the kernel is compiled without CONFIG_IA32_SUPPORT, that personality is simply not registered, so likely the syscall will fail. I believe the right solution would be to add an interface for external ioctl/syscall translation modules to ia32el and let say Veritas build/ship an ia32el module that would do the translation. How should Veritas test for 32-bit process is a question for the kernel team, but testing PER_LINUX32 sounds wrong, one can change the personality. On x86-64, the right way is IMHO test_thread_flag(TIF_IA32). On IA-64 with ia32el, this is very questionable, as the process is really 64-bit, not 32-bit. *** Bug 139698 has been marked as a duplicate of this bug. *** *** Bug 139567 has been marked as a duplicate of this bug. *** I also expected that a "personality(PER_LINUX32)" call would fail on RHEL4 ... but I tried it and it works just fine. So this does provide a simple and convenient way for ia32-el to leave a footprint that an in-kernel module can test to determine how to interpret the format of a binary structure passed between usermode and kernel. Ia32-el can't make the conversion ... it has no idea what the structures look like. A plug-in interface sounds complex/cumbersome (some sort of extra shared libraries that ia32-el would load if they are present, and then feed all ioctl's through??) I was wrong, personality (PER_LINUX32) in ia32el-1.1-11 succeeds (the difference from CONFIG_IA32_SUPPORT times is just that this call doesn't change exec domain and therefore doesn't change e.g. altroot). So I guess checking current->personality == PER_LINUX32 is something that Veritas can use in their module. |