Message ID | 5673A718.40103@emindsoft.com.cn |
---|---|
State | New |
Headers | show |
Le 18/12/2015 07:26, Chen Gang a écrit : > > For fcntl, it always needs to notice about it, just like do_fcntl() has > done, or it will cause issue (e.g. alpha host run i386 guest). > > Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com> > --- > linux-user/syscall.c | 18 ++++++++++++------ > 1 files changed, 12 insertions(+), 6 deletions(-) > > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index 0f8adeb..1a60e6f 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -9007,7 +9007,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, > if (((CPUARMState *)cpu_env)->eabi) { > if (!lock_user_struct(VERIFY_READ, target_efl, arg3, 1)) > goto efault; > - fl.l_type = tswap16(target_efl->l_type); > + fl.l_type = target_to_host_bitmask(tswap16(target_fl->l_type), > + flock_tbl); > fl.l_whence = tswap16(target_efl->l_whence); > fl.l_start = tswap64(target_efl->l_start); > fl.l_len = tswap64(target_efl->l_len); > @@ -9018,7 +9019,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, > { > if (!lock_user_struct(VERIFY_READ, target_fl, arg3, 1)) > goto efault; > - fl.l_type = tswap16(target_fl->l_type); > + fl.l_type = target_to_host_bitmask(tswap16(target_fl->l_type), > + flock_tbl); > fl.l_whence = tswap16(target_fl->l_whence); > fl.l_start = tswap64(target_fl->l_start); > fl.l_len = tswap64(target_fl->l_len); > @@ -9031,7 +9033,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, > if (((CPUARMState *)cpu_env)->eabi) { > if (!lock_user_struct(VERIFY_WRITE, target_efl, arg3, 0)) > goto efault; > - target_efl->l_type = tswap16(fl.l_type); > + target_efl->l_type = host_to_target_bitmask( > + tswap16(fl.l_type), flock_tbl); > target_efl->l_whence = tswap16(fl.l_whence); > target_efl->l_start = tswap64(fl.l_start); > target_efl->l_len = tswap64(fl.l_len); > @@ -9042,7 +9045,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, > { > if (!lock_user_struct(VERIFY_WRITE, target_fl, arg3, 0)) > goto efault; > - target_fl->l_type = tswap16(fl.l_type); > + target_fl->l_type = host_to_target_bitmask( > + tswap16(fl.l_type), flock_tbl); > target_fl->l_whence = tswap16(fl.l_whence); > target_fl->l_start = tswap64(fl.l_start); > target_fl->l_len = tswap64(fl.l_len); > @@ -9058,7 +9062,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, > if (((CPUARMState *)cpu_env)->eabi) { > if (!lock_user_struct(VERIFY_READ, target_efl, arg3, 1)) > goto efault; > - fl.l_type = tswap16(target_efl->l_type); > + fl.l_type = target_to_host_bitmask(tswap16(target_fl->l_type), > + flock_tbl); > fl.l_whence = tswap16(target_efl->l_whence); > fl.l_start = tswap64(target_efl->l_start); > fl.l_len = tswap64(target_efl->l_len); > @@ -9069,7 +9074,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, > { > if (!lock_user_struct(VERIFY_READ, target_fl, arg3, 1)) > goto efault; > - fl.l_type = tswap16(target_fl->l_type); > + fl.l_type = target_to_host_bitmask(tswap16(target_fl->l_type), > + flock_tbl); > fl.l_whence = tswap16(target_fl->l_whence); > fl.l_start = tswap64(target_fl->l_start); > fl.l_len = tswap64(target_fl->l_len); > This patch looks good to me, except that script/checkpatch.pl complains about "DOS line ending" and "line over 80 characters". Reviewed-by: Laurent Vivier <laurent@vivier.eu>
On 12/18/15 17:37, Laurent Vivier wrote: > > Le 18/12/2015 07:26, Chen Gang a écrit : >> >> For fcntl, it always needs to notice about it, just like do_fcntl() has >> done, or it will cause issue (e.g. alpha host run i386 guest). >> >> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com> >> --- >> linux-user/syscall.c | 18 ++++++++++++------ >> 1 files changed, 12 insertions(+), 6 deletions(-) >> >> diff --git a/linux-user/syscall.c b/linux-user/syscall.c >> index 0f8adeb..1a60e6f 100644 >> --- a/linux-user/syscall.c >> +++ b/linux-user/syscall.c >> @@ -9007,7 +9007,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, >> if (((CPUARMState *)cpu_env)->eabi) { >> if (!lock_user_struct(VERIFY_READ, target_efl, arg3, 1)) >> goto efault; >> - fl.l_type = tswap16(target_efl->l_type); >> + fl.l_type = target_to_host_bitmask(tswap16(target_fl->l_type), >> + flock_tbl); >> fl.l_whence = tswap16(target_efl->l_whence); >> fl.l_start = tswap64(target_efl->l_start); >> fl.l_len = tswap64(target_efl->l_len); >> @@ -9018,7 +9019,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, >> { >> if (!lock_user_struct(VERIFY_READ, target_fl, arg3, 1)) >> goto efault; >> - fl.l_type = tswap16(target_fl->l_type); >> + fl.l_type = target_to_host_bitmask(tswap16(target_fl->l_type), >> + flock_tbl); >> fl.l_whence = tswap16(target_fl->l_whence); >> fl.l_start = tswap64(target_fl->l_start); >> fl.l_len = tswap64(target_fl->l_len); >> @@ -9031,7 +9033,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, >> if (((CPUARMState *)cpu_env)->eabi) { >> if (!lock_user_struct(VERIFY_WRITE, target_efl, arg3, 0)) >> goto efault; >> - target_efl->l_type = tswap16(fl.l_type); >> + target_efl->l_type = host_to_target_bitmask( >> + tswap16(fl.l_type), flock_tbl); >> target_efl->l_whence = tswap16(fl.l_whence); >> target_efl->l_start = tswap64(fl.l_start); >> target_efl->l_len = tswap64(fl.l_len); >> @@ -9042,7 +9045,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, >> { >> if (!lock_user_struct(VERIFY_WRITE, target_fl, arg3, 0)) >> goto efault; >> - target_fl->l_type = tswap16(fl.l_type); >> + target_fl->l_type = host_to_target_bitmask( >> + tswap16(fl.l_type), flock_tbl); >> target_fl->l_whence = tswap16(fl.l_whence); >> target_fl->l_start = tswap64(fl.l_start); >> target_fl->l_len = tswap64(fl.l_len); >> @@ -9058,7 +9062,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, >> if (((CPUARMState *)cpu_env)->eabi) { >> if (!lock_user_struct(VERIFY_READ, target_efl, arg3, 1)) >> goto efault; >> - fl.l_type = tswap16(target_efl->l_type); >> + fl.l_type = target_to_host_bitmask(tswap16(target_fl->l_type), >> + flock_tbl); >> fl.l_whence = tswap16(target_efl->l_whence); >> fl.l_start = tswap64(target_efl->l_start); >> fl.l_len = tswap64(target_efl->l_len); >> @@ -9069,7 +9074,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, >> { >> if (!lock_user_struct(VERIFY_READ, target_fl, arg3, 1)) >> goto efault; >> - fl.l_type = tswap16(target_fl->l_type); >> + fl.l_type = target_to_host_bitmask(tswap16(target_fl->l_type), >> + flock_tbl); >> fl.l_whence = tswap16(target_fl->l_whence); >> fl.l_start = tswap64(target_fl->l_start); >> fl.l_len = tswap64(target_fl->l_len); >> > > This patch looks good to me, except that script/checkpatch.pl complains > about "DOS line ending" and "line over 80 characters". > I did not get any script/checkpatch.pl complains, originally. Does my email client configuration is incorrect, then cause incorrect mail format? I guess not. The related reason is below. - I copy your full reply mail contents to a new file (diff.patch). - Remove all '> ' in vi editor (1,% s/^> //g) (so get the original patch contents). - ./script/checkpatch.pl diff.patch, it has no any complains. > Reviewed-by: Laurent Vivier <laurent@vivier.eu> > Thanks.
Le 18/12/2015 22:40, Chen Gang a écrit : > > On 12/18/15 17:37, Laurent Vivier wrote: >> >> Le 18/12/2015 07:26, Chen Gang a écrit : >>> >>> For fcntl, it always needs to notice about it, just like do_fcntl() has >>> done, or it will cause issue (e.g. alpha host run i386 guest). >>> >>> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com> >>> --- >>> linux-user/syscall.c | 18 ++++++++++++------ >>> 1 files changed, 12 insertions(+), 6 deletions(-) >>> >>> diff --git a/linux-user/syscall.c b/linux-user/syscall.c >>> index 0f8adeb..1a60e6f 100644 >>> --- a/linux-user/syscall.c >>> +++ b/linux-user/syscall.c >>> @@ -9007,7 +9007,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, >>> if (((CPUARMState *)cpu_env)->eabi) { >>> if (!lock_user_struct(VERIFY_READ, target_efl, arg3, 1)) >>> goto efault; >>> - fl.l_type = tswap16(target_efl->l_type); >>> + fl.l_type = target_to_host_bitmask(tswap16(target_fl->l_type), >>> + flock_tbl); >>> fl.l_whence = tswap16(target_efl->l_whence); >>> fl.l_start = tswap64(target_efl->l_start); >>> fl.l_len = tswap64(target_efl->l_len); >>> @@ -9018,7 +9019,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, >>> { >>> if (!lock_user_struct(VERIFY_READ, target_fl, arg3, 1)) >>> goto efault; >>> - fl.l_type = tswap16(target_fl->l_type); >>> + fl.l_type = target_to_host_bitmask(tswap16(target_fl->l_type), >>> + flock_tbl); >>> fl.l_whence = tswap16(target_fl->l_whence); >>> fl.l_start = tswap64(target_fl->l_start); >>> fl.l_len = tswap64(target_fl->l_len); >>> @@ -9031,7 +9033,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, >>> if (((CPUARMState *)cpu_env)->eabi) { >>> if (!lock_user_struct(VERIFY_WRITE, target_efl, arg3, 0)) >>> goto efault; >>> - target_efl->l_type = tswap16(fl.l_type); >>> + target_efl->l_type = host_to_target_bitmask( >>> + tswap16(fl.l_type), flock_tbl); >>> target_efl->l_whence = tswap16(fl.l_whence); >>> target_efl->l_start = tswap64(fl.l_start); >>> target_efl->l_len = tswap64(fl.l_len); >>> @@ -9042,7 +9045,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, >>> { >>> if (!lock_user_struct(VERIFY_WRITE, target_fl, arg3, 0)) >>> goto efault; >>> - target_fl->l_type = tswap16(fl.l_type); >>> + target_fl->l_type = host_to_target_bitmask( >>> + tswap16(fl.l_type), flock_tbl); >>> target_fl->l_whence = tswap16(fl.l_whence); >>> target_fl->l_start = tswap64(fl.l_start); >>> target_fl->l_len = tswap64(fl.l_len); >>> @@ -9058,7 +9062,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, >>> if (((CPUARMState *)cpu_env)->eabi) { >>> if (!lock_user_struct(VERIFY_READ, target_efl, arg3, 1)) >>> goto efault; >>> - fl.l_type = tswap16(target_efl->l_type); >>> + fl.l_type = target_to_host_bitmask(tswap16(target_fl->l_type), >>> + flock_tbl); >>> fl.l_whence = tswap16(target_efl->l_whence); >>> fl.l_start = tswap64(target_efl->l_start); >>> fl.l_len = tswap64(target_efl->l_len); >>> @@ -9069,7 +9074,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, >>> { >>> if (!lock_user_struct(VERIFY_READ, target_fl, arg3, 1)) >>> goto efault; >>> - fl.l_type = tswap16(target_fl->l_type); >>> + fl.l_type = target_to_host_bitmask(tswap16(target_fl->l_type), >>> + flock_tbl); >>> fl.l_whence = tswap16(target_fl->l_whence); >>> fl.l_start = tswap64(target_fl->l_start); >>> fl.l_len = tswap64(target_fl->l_len); >>> >> >> This patch looks good to me, except that script/checkpatch.pl complains >> about "DOS line ending" and "line over 80 characters". >> > > I did not get any script/checkpatch.pl complains, originally. > > Does my email client configuration is incorrect, then cause incorrect > mail format? I guess not. The related reason is below. > > - I copy your full reply mail contents to a new file (diff.patch). If you copy, you loose the special characters. I do a "Save as". > > - Remove all '> ' in vi editor (1,% s/^> //g) (so get the original > patch contents). > > - ./script/checkpatch.pl diff.patch, it has no any complains. If I run "file" on the saved file, I have: $ file orig.eml orig.eml: SMTP mail, ASCII text, with CRLF line terminators I can convert it with "tr": $ tr "\r" "\n" < orig.eml > new.eml $ file new.eml new.eml: SMTP mail, ASCII text $ ./scripts/checkpatch.pl new.eml total: 0 errors, 0 warnings, 54 lines checked new.eml has no obvious style problems and is ready for submission. Laurent
On 12/19/15 05:58, Laurent Vivier wrote: > > Le 18/12/2015 22:40, Chen Gang a écrit : >> [...] >> I did not get any script/checkpatch.pl complains, originally. >> >> Does my email client configuration is incorrect, then cause incorrect >> mail format? I guess not. The related reason is below. >> >> - I copy your full reply mail contents to a new file (diff.patch). > > If you copy, you loose the special characters. I do a "Save as". > >> >> - Remove all '> ' in vi editor (1,% s/^> //g) (so get the original >> patch contents). >> >> - ./script/checkpatch.pl diff.patch, it has no any complains. > > If I run "file" on the saved file, I have: > > $ file orig.eml > orig.eml: SMTP mail, ASCII text, with CRLF line terminators > > I can convert it with "tr": > > $ tr "\r" "\n" < orig.eml > new.eml > > $ file new.eml > new.eml: SMTP mail, ASCII text > > $ ./scripts/checkpatch.pl new.eml > total: 0 errors, 0 warnings, 54 lines checked > > new.eml has no obvious style problems and is ready for submission. > > Laurent > OK, thank you very much. I shall config my email client again to notice about it. Thanks.
Le 18/12/2015 23:12, Chen Gang a écrit : > > On 12/19/15 05:58, Laurent Vivier wrote: >> >> Le 18/12/2015 22:40, Chen Gang a écrit : >>> > > [...] > >>> I did not get any script/checkpatch.pl complains, originally. >>> >>> Does my email client configuration is incorrect, then cause incorrect >>> mail format? I guess not. The related reason is below. >>> >>> - I copy your full reply mail contents to a new file (diff.patch). >> >> If you copy, you loose the special characters. I do a "Save as". >> >>> >>> - Remove all '> ' in vi editor (1,% s/^> //g) (so get the original >>> patch contents). >>> >>> - ./script/checkpatch.pl diff.patch, it has no any complains. >> >> If I run "file" on the saved file, I have: >> >> $ file orig.eml >> orig.eml: SMTP mail, ASCII text, with CRLF line terminators >> >> I can convert it with "tr": >> >> $ tr "\r" "\n" < orig.eml > new.eml >> >> $ file new.eml >> new.eml: SMTP mail, ASCII text >> >> $ ./scripts/checkpatch.pl new.eml >> total: 0 errors, 0 warnings, 54 lines checked >> >> new.eml has no obvious style problems and is ready for submission. >> >> Laurent >> > > OK, thank you very much. I shall config my email client again to notice > about it. You should not use your email client to send patches, you should use "git send-email": http://wiki.qemu.org/Contribute/SubmitAPatch Laurent
On 12/19/15 06:15, Laurent Vivier wrote: > > Le 18/12/2015 23:12, Chen Gang a écrit : >> [...] >> >> OK, thank you very much. I shall config my email client again to notice >> about it. > > You should not use your email client to send patches, you should use > "git send-email": > > http://wiki.qemu.org/Contribute/SubmitAPatch > OK, thanks.
diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 0f8adeb..1a60e6f 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -9007,7 +9007,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, if (((CPUARMState *)cpu_env)->eabi) { if (!lock_user_struct(VERIFY_READ, target_efl, arg3, 1)) goto efault; - fl.l_type = tswap16(target_efl->l_type); + fl.l_type = target_to_host_bitmask(tswap16(target_fl->l_type), + flock_tbl); fl.l_whence = tswap16(target_efl->l_whence); fl.l_start = tswap64(target_efl->l_start); fl.l_len = tswap64(target_efl->l_len); @@ -9018,7 +9019,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, { if (!lock_user_struct(VERIFY_READ, target_fl, arg3, 1)) goto efault; - fl.l_type = tswap16(target_fl->l_type); + fl.l_type = target_to_host_bitmask(tswap16(target_fl->l_type), + flock_tbl); fl.l_whence = tswap16(target_fl->l_whence); fl.l_start = tswap64(target_fl->l_start); fl.l_len = tswap64(target_fl->l_len); @@ -9031,7 +9033,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, if (((CPUARMState *)cpu_env)->eabi) { if (!lock_user_struct(VERIFY_WRITE, target_efl, arg3, 0)) goto efault; - target_efl->l_type = tswap16(fl.l_type); + target_efl->l_type = host_to_target_bitmask( + tswap16(fl.l_type), flock_tbl); target_efl->l_whence = tswap16(fl.l_whence); target_efl->l_start = tswap64(fl.l_start); target_efl->l_len = tswap64(fl.l_len); @@ -9042,7 +9045,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, { if (!lock_user_struct(VERIFY_WRITE, target_fl, arg3, 0)) goto efault; - target_fl->l_type = tswap16(fl.l_type); + target_fl->l_type = host_to_target_bitmask( + tswap16(fl.l_type), flock_tbl); target_fl->l_whence = tswap16(fl.l_whence); target_fl->l_start = tswap64(fl.l_start); target_fl->l_len = tswap64(fl.l_len); @@ -9058,7 +9062,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, if (((CPUARMState *)cpu_env)->eabi) { if (!lock_user_struct(VERIFY_READ, target_efl, arg3, 1)) goto efault; - fl.l_type = tswap16(target_efl->l_type); + fl.l_type = target_to_host_bitmask(tswap16(target_fl->l_type), + flock_tbl); fl.l_whence = tswap16(target_efl->l_whence); fl.l_start = tswap64(target_efl->l_start); fl.l_len = tswap64(target_efl->l_len); @@ -9069,7 +9074,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, { if (!lock_user_struct(VERIFY_READ, target_fl, arg3, 1)) goto efault; - fl.l_type = tswap16(target_fl->l_type); + fl.l_type = target_to_host_bitmask(tswap16(target_fl->l_type), + flock_tbl); fl.l_whence = tswap16(target_fl->l_whence); fl.l_start = tswap64(target_fl->l_start); fl.l_len = tswap64(target_fl->l_len);
For fcntl, it always needs to notice about it, just like do_fcntl() has done, or it will cause issue (e.g. alpha host run i386 guest). Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com> --- linux-user/syscall.c | 18 ++++++++++++------ 1 files changed, 12 insertions(+), 6 deletions(-)