Skip to content

Commit

Permalink
uapi: simplify __ARCH_FLOCK{,64}_PAD a little
Browse files Browse the repository at this point in the history
Don't bother to define the symbols empty, just don't use them.
That makes the intent a little more clear.

Remove the unused HAVE_ARCH_STRUCT_FLOCK64 define and merge the
32-bit mips struct flock into the generic one.

Add a new __ARCH_FLOCK_EXTRA_SYSID macro following the style of
__ARCH_FLOCK_PAD to avoid having a separate definition just for
one architecture.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Guo Ren <guoren@kernel.org>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20220405071314.3225832-2-guoren@kernel.org
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
  • Loading branch information
Christoph Hellwig authored and Palmer Dabbelt committed Apr 26, 2022
1 parent 3123109 commit 9f79b8b
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 47 deletions.
26 changes: 3 additions & 23 deletions arch/mips/include/uapi/asm/fcntl.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,30 +50,10 @@
#define F_SETLKW64 35
#endif

/*
* The flavours of struct flock. "struct flock" is the ABI compliant
* variant. Finally struct flock64 is the LFS variant of struct flock. As
* a historic accident and inconsistence with the ABI definition it doesn't
* contain all the same fields as struct flock.
*/

#if _MIPS_SIM != _MIPS_SIM_ABI64

#include <linux/types.h>

struct flock {
short l_type;
short l_whence;
__kernel_off_t l_start;
__kernel_off_t l_len;
long l_sysid;
__kernel_pid_t l_pid;
long pad[4];
};

#define HAVE_ARCH_STRUCT_FLOCK

#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
#define __ARCH_FLOCK_EXTRA_SYSID long l_sysid;
#define __ARCH_FLOCK_PAD long pad[4];
#endif

#include <asm-generic/fcntl.h>

Expand Down
19 changes: 7 additions & 12 deletions include/uapi/asm-generic/fcntl.h
Original file line number Diff line number Diff line change
Expand Up @@ -192,34 +192,29 @@ struct f_owner_ex {

#define F_LINUX_SPECIFIC_BASE 1024

#ifndef HAVE_ARCH_STRUCT_FLOCK
#ifndef __ARCH_FLOCK_PAD
#define __ARCH_FLOCK_PAD
#endif

struct flock {
short l_type;
short l_whence;
__kernel_off_t l_start;
__kernel_off_t l_len;
__kernel_pid_t l_pid;
__ARCH_FLOCK_PAD
};
#ifdef __ARCH_FLOCK_EXTRA_SYSID
__ARCH_FLOCK_EXTRA_SYSID
#endif

#ifndef HAVE_ARCH_STRUCT_FLOCK64
#ifndef __ARCH_FLOCK64_PAD
#define __ARCH_FLOCK64_PAD
#ifdef __ARCH_FLOCK_PAD
__ARCH_FLOCK_PAD
#endif
};

struct flock64 {
short l_type;
short l_whence;
__kernel_loff_t l_start;
__kernel_loff_t l_len;
__kernel_pid_t l_pid;
#ifdef __ARCH_FLOCK64_PAD
__ARCH_FLOCK64_PAD
};
#endif
};

#endif /* _ASM_GENERIC_FCNTL_H */
19 changes: 7 additions & 12 deletions tools/include/uapi/asm-generic/fcntl.h
Original file line number Diff line number Diff line change
Expand Up @@ -187,34 +187,29 @@ struct f_owner_ex {

#define F_LINUX_SPECIFIC_BASE 1024

#ifndef HAVE_ARCH_STRUCT_FLOCK
#ifndef __ARCH_FLOCK_PAD
#define __ARCH_FLOCK_PAD
#endif

struct flock {
short l_type;
short l_whence;
__kernel_off_t l_start;
__kernel_off_t l_len;
__kernel_pid_t l_pid;
__ARCH_FLOCK_PAD
};
#ifdef __ARCH_FLOCK_EXTRA_SYSID
__ARCH_FLOCK_EXTRA_SYSID
#endif

#ifndef HAVE_ARCH_STRUCT_FLOCK64
#ifndef __ARCH_FLOCK64_PAD
#define __ARCH_FLOCK64_PAD
#ifdef __ARCH_FLOCK_PAD
__ARCH_FLOCK_PAD
#endif
};

struct flock64 {
short l_type;
short l_whence;
__kernel_loff_t l_start;
__kernel_loff_t l_len;
__kernel_pid_t l_pid;
#ifdef __ARCH_FLOCK64_PAD
__ARCH_FLOCK64_PAD
};
#endif
};

#endif /* _ASM_GENERIC_FCNTL_H */

0 comments on commit 9f79b8b

Please sign in to comment.