Re: [PATCH] consistently use MAX_ERRNO in __syscall_return

From: H. Peter Anvin
Date: Mon Jul 03 2006 - 12:08:56 EST


Randy.Dunlap wrote:
#define NR_syscalls 318
+#include <linux/err.h>
include/linux/err.h: Assembler messages:
include/linux/err.h:20: Error: no such instruction: `static inline void *ERR_PTR(long error)'
include/linux/err.h:21: Error: junk at end of line, first unrecognized character is `{'
include/linux/err.h:22: Error: no such instruction: `return (void *)error'
include/linux/err.h:23: Error: junk at end of line, first unrecognized character is `}'
include/linux/err.h:25: Error: no such instruction: `static inline long PTR_ERR(const void *ptr)'
include/linux/err.h:26: Error: junk at end of line, first unrecognized character is `{'
include/linux/err.h:27: Error: no such instruction: `return (long)ptr'
include/linux/err.h:28: Error: junk at end of line, first unrecognized character is `}'
include/linux/err.h:30: Error: no such instruction: `static inline long IS_ERR(const void *ptr)'
include/linux/err.h:31: Error: junk at end of line, first unrecognized character is `{'
include/linux/err.h:32: Error: no such instruction: `return unlikely(((unsigned long)ptr)>=(unsigned long)-4095)'
include/linux/err.h:33: Error: junk at end of line, first unrecognized character is `}'
distcc[7619] ERROR: compile (null) on localhost failed
make[1]: *** [arch/i386/kernel/vsyscall-sysenter.o] Error 1
make: *** [arch/i386/kernel/vsyscall-sysenter.o] Error 2

Built for me on i386 and x86_64.

unlikely() shouldn't be used in code exported to user space. At least one architecture simply open-codes the __builtin_expect(); or we could
introduce __likely() and __unlikely() for the benefit of userspace.

How did you determine that this had something to do with
userspace?


The vsyscalls are userspace code. Doesn't mean they operate by userspace naming rules, of course, but still...

-hpa
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/