On Wed, 2007-10-10 at 21:38 -0600, Thayne Harbaugh wrote: <SNIP> > I have noticed that many functions in syscall.c return a *host* errno > when a *target* errno should be return. At the same time, there are > several places in syscall.c:do_syscall() that immediately return an > errno rather than setting the return value and exiting through the > syscall return value reporting at the end of do_syscall(). > > This patch addresses both of those problems at once rather than touching > the exact same errno return lines twice in do_syscall().
The patch is better with parenthesis around the arguments of the return_err() macro: #define return_err(err) do { ret = -(err); goto fail; } while(0)