Sorry, I reposted the same patch inside the bunch of ones, hope it's not a 
problem. However, I've seen some more problems which I didn't fix in the 
patch:
> +#if 0
>  #define LAST_GENERIC_SYSCALL __NR_vperfctr_read
> +#else
> +#define LAST_GENERIC_SYSCALL __NR_keyctl
> +#endif
>
>  #if LAST_GENERIC_SYSCALL > LAST_ARCH_SYSCALL
>  #define LAST_SYSCALL LAST_GENERIC_SYSCALL
> @@ -54,11 +58,14 @@ extern syscall_handler_t sys_get_mempoli
>  extern syscall_handler_t sys_set_mempolicy;
>  extern syscall_handler_t sys_sys_kexec_load;
>  extern syscall_handler_t sys_sys_setaltroot;
> +
> +#if 0
>  extern syscall_handler_t sys_vperfctr_open;
>  extern syscall_handler_t sys_vperfctr_control;
>  extern syscall_handler_t sys_vperfctr_unlink;
>  extern syscall_handler_t sys_vperfctr_iresume;
>  extern syscall_handler_t sys_vperfctr_read;
> +#endif
>
>  syscall_handler_t *sys_call_table[] = {
>   [ __NR_restart_syscall ] = (syscall_handler_t *) sys_restart_syscall,
> @@ -273,7 +280,10 @@ syscall_handler_t *sys_call_table[] = {
>   [ __NR_mq_timedreceive ] = (syscall_handler_t *) sys_mq_timedreceive,
>   [ __NR_mq_notify ] = (syscall_handler_t *) sys_mq_notify,
>   [ __NR_mq_getsetattr ] = (syscall_handler_t *) sys_mq_getsetattr,
> +#if 0
>   [ __NR_sys_kexec_load ] = (syscall_handler_t *) sys_kexec_load,
> +#endif
> + [ __NR_sys_kexec_load ] = (syscall_handler_t *) sys_ni_syscall,
>   [ __NR_waitid ] = (syscall_handler_t *) sys_waitid,
>  #if 0
>   [ __NR_sys_setaltroot ] = (syscall_handler_t *) sys_sys_setaltroot,
This is left alone, but this way, the "285" syscall is not set at all, while 
it should be sys_ni_syscall like for what I commented out (apart the ones at 
the end).
> @@ -281,11 +291,14 @@ syscall_handler_t *sys_call_table[] = {
>   [ __NR_add_key ] = (syscall_handler_t *) sys_add_key,
>   [ __NR_request_key ] = (syscall_handler_t *) sys_request_key,
>   [ __NR_keyctl ] = (syscall_handler_t *) sys_keyctl,
> + /* These syscalls are still in -mm only*/
> +#if 0
>   [ __NR_vperfctr_open ] = (syscall_handler_t *) sys_vperfctr_open,
>   [ __NR_vperfctr_control ] = (syscall_handler_t *) sys_vperfctr_control,
>   [ __NR_vperfctr_unlink ] = (syscall_handler_t *) sys_vperfctr_unlink,
>   [ __NR_vperfctr_iresume ] = (syscall_handler_t *) sys_vperfctr_iresume,
>   [ __NR_vperfctr_read ] = (syscall_handler_t *) sys_vperfctr_read,
> +#endif
>
>   ARCH_SYSCALLS
>   [ LAST_SYSCALL + 1 ... NR_syscalls ] =
> _
While looking at the unistd.h code, I discovered another bug (for i386) - I'm 
posting it here to avoid forgetting it:

/*
 * user-visible error numbers are in the range -1 - -128: see
 * <asm-i386/errno.h>
 */

But in include/asm-generic/errno.h, there is a problem:

#define EKEYREVOKED     128     /* Key has been revoked */
#define EKEYREJECTED    129     /* Key was rejected by service */

I.e. the range has changed...
I think that the max errno value should become a macro defined in errno.h.
-- 
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729
http://www.user-mode-linux.org/~blaisorblade


-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to