diff -NurpP --minimal linux-2.6.16-vs2.1.1-rc14.9/include/linux/vserver/limit_cmd.h linux-2.6.16-vs2.1.1-rc14.10/include/linux/vserver/limit_cmd.h --- linux-2.6.16-vs2.1.1-rc14.9/include/linux/vserver/limit_cmd.h 2006-04-02 07:19:29 +0200 +++ linux-2.6.16-vs2.1.1-rc14.10/include/linux/vserver/limit_cmd.h 2006-04-03 01:13:28 +0200 @@ -27,16 +27,16 @@ struct vcmd_ctx_rlimit_mask_v0 { #ifdef __KERNEL__ -#ifdef CONFIG_COMPAT +#ifdef CONFIG_IA32_EMULATION struct vcmd_ctx_rlimit_v0_x32 { uint32_t id; uint64_t minimum; uint64_t softlimit; uint64_t maximum; -} __attribute__ ((packed)); +} __attribute__ ((aligned (4))); -#endif /* CONFIG_COMPAT */ +#endif /* CONFIG_IA32_EMULATION */ #include @@ -44,12 +44,12 @@ extern int vc_get_rlimit(uint32_t, void extern int vc_set_rlimit(uint32_t, void __user *); extern int vc_get_rlimit_mask(uint32_t, void __user *); -#ifdef CONFIG_COMPAT +#ifdef CONFIG_IA32_EMULATION extern int vc_get_rlimit_x32(uint32_t, void __user *); extern int vc_set_rlimit_x32(uint32_t, void __user *); -#endif /* CONFIG_COMPAT */ +#endif /* CONFIG_IA32_EMULATION */ #endif /* __KERNEL__ */ #endif /* _VX_LIMIT_CMD_H */ diff -NurpP --minimal linux-2.6.16-vs2.1.1-rc14.9/kernel/vserver/limit.c linux-2.6.16-vs2.1.1-rc14.10/kernel/vserver/limit.c --- linux-2.6.16-vs2.1.1-rc14.9/kernel/vserver/limit.c 2006-04-02 07:20:04 +0200 +++ linux-2.6.16-vs2.1.1-rc14.10/kernel/vserver/limit.c 2006-04-03 01:09:49 +0200 @@ -153,7 +153,7 @@ int vc_set_rlimit(uint32_t id, void __us vc_data.minimum, vc_data.softlimit, vc_data.maximum); } -#ifdef CONFIG_COMPAT +#ifdef CONFIG_IA32_EMULATION int vc_set_rlimit_x32(uint32_t id, void __user *data) { diff -NurpP --minimal linux-2.6.16-vs2.1.1-rc14.9/kernel/vserver/switch.c linux-2.6.16-vs2.1.1-rc14.10/kernel/vserver/switch.c --- linux-2.6.16-vs2.1.1-rc14.9/kernel/vserver/switch.c 2006-04-02 04:32:54 +0200 +++ linux-2.6.16-vs2.1.1-rc14.10/kernel/vserver/switch.c 2006-04-03 01:11:42 +0200 @@ -139,10 +139,17 @@ long do_vserver(uint32_t cmd, uint32_t i #endif switch (cmd) { +#ifdef CONFIG_IA32_EMULATION case VCMD_get_rlimit: return __COMPAT(vc_get_rlimit, id, data, compat); case VCMD_set_rlimit: return __COMPAT(vc_set_rlimit, id, data, compat); +#else + case VCMD_get_rlimit: + return vc_get_rlimit(id, data); + case VCMD_set_rlimit: + return vc_set_rlimit(id, data); +#endif case VCMD_get_rlimit_mask: return vc_get_rlimit_mask(id, data);