Re: [PATCH] linux-user/hexagon: Use generic target_stat64 structure

2021-12-19 Thread Laurent Vivier

Le 16/11/2021 à 22:09, Philippe Mathieu-Daudé a écrit :

Linux Hexagon port doesn't define a specific 'struct stat'
but uses the generic one (see Linux commit 6103ec56c65c [*]
"asm-generic: add generic ABI headers" which predates the
introduction of the Hexagon port).

Remove the target specific target_stat (which in fact is the
target_stat64 structure but uses incorrect target_long and
ABI unsafe long long types) and use the generic target_stat64
instead.

[*] 
https://github.com/torvalds/linux/commit/6103ec56c65c3#diff-5f59b07b38273b7d6a74193bc81a8cd18928c688276eae20cb10c569de3253ee

Signed-off-by: Philippe Mathieu-Daudé 
---
  linux-user/syscall_defs.h | 28 ++--
  1 file changed, 2 insertions(+), 26 deletions(-)

diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index a5ce487dcc3..7ab612d163b 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -2129,7 +2129,8 @@ struct target_stat64  {
  abi_ulong __unused5;
  };
  
-#elif defined(TARGET_OPENRISC) || defined(TARGET_NIOS2) || defined(TARGET_RISCV)

+#elif defined(TARGET_OPENRISC) || defined(TARGET_NIOS2) \
+|| defined(TARGET_RISCV) || defined(TARGET_HEXAGON)
  
  /* These are the asm-generic versions of the stat and stat64 structures */
  
@@ -2240,31 +2241,6 @@ struct target_stat64 {

  uint64_t   st_ino;
  };
  
-#elif defined(TARGET_HEXAGON)

-
-struct target_stat {
-unsigned long long st_dev;
-unsigned long long st_ino;
-unsigned int st_mode;
-unsigned int st_nlink;
-unsigned int st_uid;
-unsigned int st_gid;
-unsigned long long st_rdev;
-target_ulong __pad1;
-long long st_size;
-target_long st_blksize;
-int __pad2;
-long long st_blocks;
-
-target_long target_st_atime;
-target_long target_st_atime_nsec;
-target_long target_st_mtime;
-target_long target_st_mtime_nsec;
-target_long target_st_ctime;
-target_long target_st_ctime_nsec;
-int __unused[2];
-};
-
  #else
  #error unsupported CPU
  #endif



Applied to my linux-user-for-7.0 branch.

Thanks,
Laurent



RE: [PATCH] linux-user/hexagon: Use generic target_stat64 structure

2021-12-15 Thread Taylor Simpson


> -Original Message-
> From: Philippe Mathieu-Daudé  On
> Behalf Of Philippe Mathieu-Daudé
> Sent: Wednesday, December 15, 2021 4:36 AM
> To: qemu-devel@nongnu.org
> Cc: Taylor Simpson ; Richard Henderson
> ; Laurent Vivier 
> Subject: Re: [PATCH] linux-user/hexagon: Use generic target_stat64
> structure
> 
> ping.
> 

Sorry if my previous email didn't get through, but ...

Reviewed-by: Taylor Simpson 
Tested-by: Taylor Simpson 




Re: [PATCH] linux-user/hexagon: Use generic target_stat64 structure

2021-12-15 Thread Philippe Mathieu-Daudé
ping.

On 11/16/21 22:09, Philippe Mathieu-Daudé wrote:
> Linux Hexagon port doesn't define a specific 'struct stat'
> but uses the generic one (see Linux commit 6103ec56c65c [*]
> "asm-generic: add generic ABI headers" which predates the
> introduction of the Hexagon port).
> 
> Remove the target specific target_stat (which in fact is the
> target_stat64 structure but uses incorrect target_long and
> ABI unsafe long long types) and use the generic target_stat64
> instead.
> 
> [*] 
> https://github.com/torvalds/linux/commit/6103ec56c65c3#diff-5f59b07b38273b7d6a74193bc81a8cd18928c688276eae20cb10c569de3253ee
> 
> Signed-off-by: Philippe Mathieu-Daudé 
> ---
>  linux-user/syscall_defs.h | 28 ++--
>  1 file changed, 2 insertions(+), 26 deletions(-)
> 
> diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
> index a5ce487dcc3..7ab612d163b 100644
> --- a/linux-user/syscall_defs.h
> +++ b/linux-user/syscall_defs.h
> @@ -2129,7 +2129,8 @@ struct target_stat64  {
>  abi_ulong __unused5;
>  };
>  
> -#elif defined(TARGET_OPENRISC) || defined(TARGET_NIOS2) || 
> defined(TARGET_RISCV)
> +#elif defined(TARGET_OPENRISC) || defined(TARGET_NIOS2) \
> +|| defined(TARGET_RISCV) || defined(TARGET_HEXAGON)
>  
>  /* These are the asm-generic versions of the stat and stat64 structures */
>  
> @@ -2240,31 +2241,6 @@ struct target_stat64 {
>  uint64_t   st_ino;
>  };
>  
> -#elif defined(TARGET_HEXAGON)
> -
> -struct target_stat {
> -unsigned long long st_dev;
> -unsigned long long st_ino;
> -unsigned int st_mode;
> -unsigned int st_nlink;
> -unsigned int st_uid;
> -unsigned int st_gid;
> -unsigned long long st_rdev;
> -target_ulong __pad1;
> -long long st_size;
> -target_long st_blksize;
> -int __pad2;
> -long long st_blocks;
> -
> -target_long target_st_atime;
> -target_long target_st_atime_nsec;
> -target_long target_st_mtime;
> -target_long target_st_mtime_nsec;
> -target_long target_st_ctime;
> -target_long target_st_ctime_nsec;
> -int __unused[2];
> -};
> -
>  #else
>  #error unsupported CPU
>  #endif
> 



Re: [PATCH] linux-user/hexagon: Use generic target_stat64 structure

2021-12-06 Thread Philippe Mathieu-Daudé
On Mon, Dec 6, 2021 at 3:21 PM Philippe Mathieu-Daudé  wrote:
>
> Hi Laurent,
>
> What is your plan for this patch? Technically this is a bugfix.

I see the code was released for 6.0, so not a regression. Probably 7.0
material now.

> On 11/16/21 22:09, Philippe Mathieu-Daudé wrote:
> > Linux Hexagon port doesn't define a specific 'struct stat'
> > but uses the generic one (see Linux commit 6103ec56c65c [*]
> > "asm-generic: add generic ABI headers" which predates the
> > introduction of the Hexagon port).
> >
> > Remove the target specific target_stat (which in fact is the
> > target_stat64 structure but uses incorrect target_long and
> > ABI unsafe long long types) and use the generic target_stat64
> > instead.
> >
> > [*] 
> > https://github.com/torvalds/linux/commit/6103ec56c65c3#diff-5f59b07b38273b7d6a74193bc81a8cd18928c688276eae20cb10c569de3253ee
> >
> > Signed-off-by: Philippe Mathieu-Daudé 
> > ---
> >  linux-user/syscall_defs.h | 28 ++--
> >  1 file changed, 2 insertions(+), 26 deletions(-)
> >
> > diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
> > index a5ce487dcc3..7ab612d163b 100644
> > --- a/linux-user/syscall_defs.h
> > +++ b/linux-user/syscall_defs.h
> > @@ -2129,7 +2129,8 @@ struct target_stat64  {
> >  abi_ulong __unused5;
> >  };
> >
> > -#elif defined(TARGET_OPENRISC) || defined(TARGET_NIOS2) || 
> > defined(TARGET_RISCV)
> > +#elif defined(TARGET_OPENRISC) || defined(TARGET_NIOS2) \
> > +|| defined(TARGET_RISCV) || defined(TARGET_HEXAGON)
> >
> >  /* These are the asm-generic versions of the stat and stat64 structures */
> >
> > @@ -2240,31 +2241,6 @@ struct target_stat64 {
> >  uint64_t   st_ino;
> >  };
> >
> > -#elif defined(TARGET_HEXAGON)
> > -
> > -struct target_stat {
> > -unsigned long long st_dev;
> > -unsigned long long st_ino;
> > -unsigned int st_mode;
> > -unsigned int st_nlink;
> > -unsigned int st_uid;
> > -unsigned int st_gid;
> > -unsigned long long st_rdev;
> > -target_ulong __pad1;
> > -long long st_size;
> > -target_long st_blksize;
> > -int __pad2;
> > -long long st_blocks;
> > -
> > -target_long target_st_atime;
> > -target_long target_st_atime_nsec;
> > -target_long target_st_mtime;
> > -target_long target_st_mtime_nsec;
> > -target_long target_st_ctime;
> > -target_long target_st_ctime_nsec;
> > -int __unused[2];
> > -};
> > -
> >  #else
> >  #error unsupported CPU
> >  #endif
> >



Re: [PATCH] linux-user/hexagon: Use generic target_stat64 structure

2021-12-06 Thread Philippe Mathieu-Daudé
Hi Laurent,

What is your plan for this patch? Technically this is a bugfix.

On 11/16/21 22:09, Philippe Mathieu-Daudé wrote:
> Linux Hexagon port doesn't define a specific 'struct stat'
> but uses the generic one (see Linux commit 6103ec56c65c [*]
> "asm-generic: add generic ABI headers" which predates the
> introduction of the Hexagon port).
> 
> Remove the target specific target_stat (which in fact is the
> target_stat64 structure but uses incorrect target_long and
> ABI unsafe long long types) and use the generic target_stat64
> instead.
> 
> [*] 
> https://github.com/torvalds/linux/commit/6103ec56c65c3#diff-5f59b07b38273b7d6a74193bc81a8cd18928c688276eae20cb10c569de3253ee
> 
> Signed-off-by: Philippe Mathieu-Daudé 
> ---
>  linux-user/syscall_defs.h | 28 ++--
>  1 file changed, 2 insertions(+), 26 deletions(-)
> 
> diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
> index a5ce487dcc3..7ab612d163b 100644
> --- a/linux-user/syscall_defs.h
> +++ b/linux-user/syscall_defs.h
> @@ -2129,7 +2129,8 @@ struct target_stat64  {
>  abi_ulong __unused5;
>  };
>  
> -#elif defined(TARGET_OPENRISC) || defined(TARGET_NIOS2) || 
> defined(TARGET_RISCV)
> +#elif defined(TARGET_OPENRISC) || defined(TARGET_NIOS2) \
> +|| defined(TARGET_RISCV) || defined(TARGET_HEXAGON)
>  
>  /* These are the asm-generic versions of the stat and stat64 structures */
>  
> @@ -2240,31 +2241,6 @@ struct target_stat64 {
>  uint64_t   st_ino;
>  };
>  
> -#elif defined(TARGET_HEXAGON)
> -
> -struct target_stat {
> -unsigned long long st_dev;
> -unsigned long long st_ino;
> -unsigned int st_mode;
> -unsigned int st_nlink;
> -unsigned int st_uid;
> -unsigned int st_gid;
> -unsigned long long st_rdev;
> -target_ulong __pad1;
> -long long st_size;
> -target_long st_blksize;
> -int __pad2;
> -long long st_blocks;
> -
> -target_long target_st_atime;
> -target_long target_st_atime_nsec;
> -target_long target_st_mtime;
> -target_long target_st_mtime_nsec;
> -target_long target_st_ctime;
> -target_long target_st_ctime_nsec;
> -int __unused[2];
> -};
> -
>  #else
>  #error unsupported CPU
>  #endif
> 



RE: [PATCH] linux-user/hexagon: Use generic target_stat64 structure

2021-11-17 Thread Taylor Simpson


> -Original Message-
> From: Richard Henderson 
> Sent: Wednesday, November 17, 2021 1:18 AM
> To: Philippe Mathieu-Daudé ; qemu-devel@nongnu.org
> Cc: Laurent Vivier ; Taylor Simpson
> 
> Subject: Re: [PATCH] linux-user/hexagon: Use generic target_stat64
> structure
> 
> On 11/16/21 10:09 PM, Philippe Mathieu-Daudé wrote:
> > Linux Hexagon port doesn't define a specific 'struct stat'
> > but uses the generic one (see Linux commit 6103ec56c65c [*]
> > "asm-generic: add generic ABI headers" which predates the introduction
> > of the Hexagon port).
> >
> > Remove the target specific target_stat (which in fact is the
> > target_stat64 structure but uses incorrect target_long and ABI unsafe
> > long long types) and use the generic target_stat64 instead.
> >
> > [*]https://github.com/torvalds/linux/commit/6103ec56c65c3#diff-5f59b07
> > b38273b7d6a74193bc81a8cd18928c688276eae20cb10c569de3253ee
> >
> > Signed-off-by: Philippe Mathieu-Daudé
> > ---
> >   linux-user/syscall_defs.h | 28 ++--
> >   1 file changed, 2 insertions(+), 26 deletions(-)
> 
> Reviewed-by: Richard Henderson 

Reviewed-by: Taylor Simpson 
Tested-by: Taylor Simpson 



Re: [PATCH] linux-user/hexagon: Use generic target_stat64 structure

2021-11-16 Thread Richard Henderson

On 11/16/21 10:09 PM, Philippe Mathieu-Daudé wrote:

Linux Hexagon port doesn't define a specific 'struct stat'
but uses the generic one (see Linux commit 6103ec56c65c [*]
"asm-generic: add generic ABI headers" which predates the
introduction of the Hexagon port).

Remove the target specific target_stat (which in fact is the
target_stat64 structure but uses incorrect target_long and
ABI unsafe long long types) and use the generic target_stat64
instead.

[*]https://github.com/torvalds/linux/commit/6103ec56c65c3#diff-5f59b07b38273b7d6a74193bc81a8cd18928c688276eae20cb10c569de3253ee

Signed-off-by: Philippe Mathieu-Daudé
---
  linux-user/syscall_defs.h | 28 ++--
  1 file changed, 2 insertions(+), 26 deletions(-)


Reviewed-by: Richard Henderson 

r~



[PATCH] linux-user/hexagon: Use generic target_stat64 structure

2021-11-16 Thread Philippe Mathieu-Daudé
Linux Hexagon port doesn't define a specific 'struct stat'
but uses the generic one (see Linux commit 6103ec56c65c [*]
"asm-generic: add generic ABI headers" which predates the
introduction of the Hexagon port).

Remove the target specific target_stat (which in fact is the
target_stat64 structure but uses incorrect target_long and
ABI unsafe long long types) and use the generic target_stat64
instead.

[*] 
https://github.com/torvalds/linux/commit/6103ec56c65c3#diff-5f59b07b38273b7d6a74193bc81a8cd18928c688276eae20cb10c569de3253ee

Signed-off-by: Philippe Mathieu-Daudé 
---
 linux-user/syscall_defs.h | 28 ++--
 1 file changed, 2 insertions(+), 26 deletions(-)

diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index a5ce487dcc3..7ab612d163b 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -2129,7 +2129,8 @@ struct target_stat64  {
 abi_ulong __unused5;
 };
 
-#elif defined(TARGET_OPENRISC) || defined(TARGET_NIOS2) || 
defined(TARGET_RISCV)
+#elif defined(TARGET_OPENRISC) || defined(TARGET_NIOS2) \
+|| defined(TARGET_RISCV) || defined(TARGET_HEXAGON)
 
 /* These are the asm-generic versions of the stat and stat64 structures */
 
@@ -2240,31 +2241,6 @@ struct target_stat64 {
 uint64_t   st_ino;
 };
 
-#elif defined(TARGET_HEXAGON)
-
-struct target_stat {
-unsigned long long st_dev;
-unsigned long long st_ino;
-unsigned int st_mode;
-unsigned int st_nlink;
-unsigned int st_uid;
-unsigned int st_gid;
-unsigned long long st_rdev;
-target_ulong __pad1;
-long long st_size;
-target_long st_blksize;
-int __pad2;
-long long st_blocks;
-
-target_long target_st_atime;
-target_long target_st_atime_nsec;
-target_long target_st_mtime;
-target_long target_st_mtime_nsec;
-target_long target_st_ctime;
-target_long target_st_ctime_nsec;
-int __unused[2];
-};
-
 #else
 #error unsupported CPU
 #endif
-- 
2.31.1