The old code evaluates addr once, your new code evaluates it twice.
Have you tried an inline function instead of a macro?
linux/fs/binfmt_elf.c contains a few lines that probably break if 'addr' is evaluated twice:
<<<<<<<
argv = (elf_caddr_t *) sp;
if (!ibcs) {
__put_user((elf_addr_t)(unsigned long) envp,--sp);
__put_user((elf_addr_t)(unsigned long) argv,--sp);
}
<<<<<<<<<
--
Manfred
-
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/
This archive was generated by hypermail 2b29 : Mon Dec 31 2001 - 21:00:11 EST