qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v6 6/7] linux-user: Add missing TARGET_EDQUOT er


From: Laurent Vivier
Subject: Re: [Qemu-devel] [PATCH v6 6/7] linux-user: Add missing TARGET_EDQUOT error code for Mips
Date: Fri, 16 Sep 2016 21:22:26 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0


Le 16/09/2016 à 13:14, Aleksandar Markovic a écrit :
> From: Aleksandar Markovic <address@hidden>
> 
> EDQUOT is defined for Mips platform in Linux kernel in such a way
> that it has different value than on most other platforms. However,
> correspondant TARGET_EDQUOT for Mips is missing in Qemu code. Moreover,
> TARGET_EDQUOT is missing from the table for conversion of error codes
> from host to target. This patch fixes these problems.
> 
> Without this patch, syscalls add_key(), keyctl(), link(), mkdir(), mknod(),
> open(), rename(), request_key(), setxattr(), symlink(), and write() will not
> be able to return the right error code in some scenarios on Mips platform.
> (Some of these syscalls are not yet supported in Qemu, but once they are
> supported, they will need correct EDQUOT handling.)
> 
> Signed-off-by: Aleksandar Markovic <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>

> ---
>  linux-user/mips/target_syscall.h   | 2 ++
>  linux-user/mips64/target_syscall.h | 2 ++
>  linux-user/syscall.c               | 1 +
>  3 files changed, 5 insertions(+)
> 
> diff --git a/linux-user/mips/target_syscall.h 
> b/linux-user/mips/target_syscall.h
> index 2b4f390..827799f 100644
> --- a/linux-user/mips/target_syscall.h
> +++ b/linux-user/mips/target_syscall.h
> @@ -221,6 +221,8 @@ struct target_pt_regs {
>  #undef TARGET_ENOTRECOVERABLE
>  #define TARGET_ENOTRECOVERABLE 166     /* State not recoverable */
>  
> +#undef TARGET_EDQUOT
> +#define TARGET_EDQUOT          1133    /* Quota exceeded */
>  
>  #define UNAME_MACHINE "mips"
>  #define UNAME_MINIMUM_RELEASE "2.6.32"
> diff --git a/linux-user/mips64/target_syscall.h 
> b/linux-user/mips64/target_syscall.h
> index 8da9c1f..29c1983 100644
> --- a/linux-user/mips64/target_syscall.h
> +++ b/linux-user/mips64/target_syscall.h
> @@ -218,6 +218,8 @@ struct target_pt_regs {
>  #undef TARGET_ENOTRECOVERABLE
>  #define TARGET_ENOTRECOVERABLE 166     /* State not recoverable */
>  
> +#undef TARGET_EDQUOT
> +#define TARGET_EDQUOT          1133    /* Quota exceeded */
>  
>  #define UNAME_MACHINE "mips64"
>  #define UNAME_MINIMUM_RELEASE "2.6.32"
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index ee23b29..e4bd40d 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -725,6 +725,7 @@ static uint16_t 
> host_to_target_errno_table[ERRNO_TABLE_SIZE] = {
>      [ENAVAIL]                = TARGET_ENAVAIL,
>      [EISNAM]         = TARGET_EISNAM,
>      [EREMOTEIO]              = TARGET_EREMOTEIO,
> +    [EDQUOT]            = TARGET_EDQUOT,
>      [ESHUTDOWN]              = TARGET_ESHUTDOWN,
>      [ETOOMANYREFS]   = TARGET_ETOOMANYREFS,
>      [ETIMEDOUT]              = TARGET_ETIMEDOUT,
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]