[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] linux-user/hexagon: Use generic target_stat64 structure
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH] linux-user/hexagon: Use generic target_stat64 structure |
Date: |
Mon, 6 Dec 2021 15:26:22 +0100 |
On Mon, Dec 6, 2021 at 3:21 PM Philippe Mathieu-Daudé <f4bug@amsat.org> 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é <f4bug@amsat.org>
> > ---
> > 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
> >