Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1449624 > unrolled thread

[PATCH 0/5] Define AT_VECTOR_SIZE_ARCH correctly

Started byJames Hogan <james.hogan@imgtec.com>
First post2016-07-25 18:10 +0200
Last post2016-07-25 18:10 +0200
Articles 5 — 1 participant

Back to article view | Back to linux.kernel


Contents

  [PATCH 0/5] Define AT_VECTOR_SIZE_ARCH correctly James Hogan <james.hogan@imgtec.com> - 2016-07-25 18:10 +0200
    [PATCH 5/5] tile: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO James Hogan <james.hogan@imgtec.com> - 2016-07-25 18:10 +0200
      Re: [PATCH 5/5] tile: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO James Hogan <james.hogan@imgtec.com> - 2016-07-25 21:20 +0200
    [PATCH 3/5] arm64: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO James Hogan <james.hogan@imgtec.com> - 2016-07-25 18:10 +0200
    [PATCH 1/5] MIPS: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO James Hogan <james.hogan@imgtec.com> - 2016-07-25 18:10 +0200

#1449624 — [PATCH 0/5] Define AT_VECTOR_SIZE_ARCH correctly

FromJames Hogan <james.hogan@imgtec.com>
Date2016-07-25 18:10 +0200
Subject[PATCH 0/5] Define AT_VECTOR_SIZE_ARCH correctly
Message-ID<rYQC5-6GE-3@gated-at.bofh.it>
Several architectures define ARCH_DLINFO to [sometimes] contain
NEW_AUX_ENT entries, but don't define AT_VECTOR_SIZE_ARCH with the
corresponding maximum number of NEW_AUX_ENT entries.

In practice this doesn't cause any problems as AT_VECTOR_SIZE_BASE
includes space for AT_BASE_PLATFORM which none of these arches use, but
nevertheless lets define it now and add the comment above ARCH_DLINFO as
found in several other architectures to remind future modifiers of
ARCH_DLINFO to keep AT_VECTOR_SIZE_ARCH up to date.

Arch maintainers, please take via your own trees if you're happy to do
so.

- I haven't included an update for x86/um as it doesn't follow the same
  pattern as other architectures so it is unclear to me whether it has
  the same issue.

- Build tested on MIPS, ARM & tile.

- Tested on MIPS.

James Hogan (5):
  MIPS: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
  ARM: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
  arm64: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
  s390: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
  tile: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO

 arch/arm/include/asm/elf.h           | 1 +
 arch/arm/include/uapi/asm/auxvec.h   | 2 ++
 arch/arm64/include/asm/elf.h         | 1 +
 arch/arm64/include/uapi/asm/auxvec.h | 2 ++
 arch/mips/include/asm/elf.h          | 1 +
 arch/mips/include/uapi/asm/auxvec.h  | 2 ++
 arch/s390/include/asm/elf.h          | 1 +
 arch/s390/include/uapi/asm/auxvec.h  | 2 ++
 arch/tile/include/asm/elf.h          | 1 +
 arch/tile/include/uapi/asm/auxvec.h  | 2 ++
 10 files changed, 15 insertions(+)

Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Nathan Lynch <nathan_lynch@mentor.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Chris Metcalf <cmetcalf@mellanox.com>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: Richard Weinberger <richard@nod.at>
Cc: linux-mips@linux-mips.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-s390@vger.kernel.org
Cc: user-mode-linux-devel@lists.sourceforge.net
-- 
2.4.10

[toc] | [next] | [standalone]


#1449626 — [PATCH 5/5] tile: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO

FromJames Hogan <james.hogan@imgtec.com>
Date2016-07-25 18:10 +0200
Subject[PATCH 5/5] tile: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
Message-ID<rYQC6-6GE-25@gated-at.bofh.it>
In reply to#1449624
AT_VECTOR_SIZE_ARCH should be defined with the maximum number of
NEW_AUX_ENT entries that ARCH_DLINFO can contain, but it wasn't defined
for tile at all even though ARCH_DLINFO will contain one NEW_AUX_ENT for
the VDSO address.

This shouldn't be a problem as AT_VECTOR_SIZE_BASE includes space for
AT_BASE_PLATFORM which tile doesn't use, but lets define it now and add
the comment above ARCH_DLINFO as found in several other architectures to
remind future modifiers of ARCH_DLINFO to keep AT_VECTOR_SIZE_ARCH up to
date.

Fixes: 4a556f4f56da ("tile: implement gettimeofday() via vDSO")
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Chris Metcalf <cmetcalf@mellanox.com>
---
 arch/tile/include/asm/elf.h         | 1 +
 arch/tile/include/uapi/asm/auxvec.h | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/arch/tile/include/asm/elf.h b/arch/tile/include/asm/elf.h
index c505d77e4d06..e9d54a06736f 100644
--- a/arch/tile/include/asm/elf.h
+++ b/arch/tile/include/asm/elf.h
@@ -129,6 +129,7 @@ extern int dump_task_regs(struct task_struct *, elf_gregset_t *);
 struct linux_binprm;
 extern int arch_setup_additional_pages(struct linux_binprm *bprm,
 				       int executable_stack);
+/* update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT entries changes */
 #define ARCH_DLINFO \
 do { \
 	NEW_AUX_ENT(AT_SYSINFO_EHDR, VDSO_BASE); \
diff --git a/arch/tile/include/uapi/asm/auxvec.h b/arch/tile/include/uapi/asm/auxvec.h
index c93e92709f14..f497123ed980 100644
--- a/arch/tile/include/uapi/asm/auxvec.h
+++ b/arch/tile/include/uapi/asm/auxvec.h
@@ -18,4 +18,6 @@
 /* The vDSO location. */
 #define AT_SYSINFO_EHDR         33
 
+#define AT_VECTOR_SIZE_ARCH 1 /* entries in ARCH_DLINFO */
+
 #endif /* _ASM_TILE_AUXVEC_H */
-- 
2.4.10

[toc] | [prev] | [next] | [standalone]


#1449759 — Re: [PATCH 5/5] tile: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO

FromJames Hogan <james.hogan@imgtec.com>
Date2016-07-25 21:20 +0200
SubjectRe: [PATCH 5/5] tile: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
Message-ID<rYTzY-8r9-17@gated-at.bofh.it>
In reply to#1449626

[Multipart message — attachments visible in raw view] — view raw

On Mon, Jul 25, 2016 at 12:37:50PM -0400, Chris Metcalf wrote:
> On 7/25/2016 11:59 AM, James Hogan wrote:
> > AT_VECTOR_SIZE_ARCH should be defined with the maximum number of
> > NEW_AUX_ENT entries that ARCH_DLINFO can contain, but it wasn't defined
> > for tile at all even though ARCH_DLINFO will contain one NEW_AUX_ENT for
> > the VDSO address.
> >
> > This shouldn't be a problem as AT_VECTOR_SIZE_BASE includes space for
> > AT_BASE_PLATFORM which tile doesn't use, but lets define it now and add
> > the comment above ARCH_DLINFO as found in several other architectures to
> > remind future modifiers of ARCH_DLINFO to keep AT_VECTOR_SIZE_ARCH up to
> > date.
> >
> > Fixes: 4a556f4f56da ("tile: implement gettimeofday() via vDSO")
> > Signed-off-by: James Hogan<james.hogan@imgtec.com>
> > Cc: Chris Metcalf<cmetcalf@mellanox.com>
> > ---
> >   arch/tile/include/asm/elf.h         | 1 +
> >   arch/tile/include/uapi/asm/auxvec.h | 2 ++
> >   2 files changed, 3 insertions(+)
> 
> Thanks, taken into the tile tree.
> 
> I'm a little dubious that AT_VECTOR_SIZE_ARCH should be being defined
> in the uapi version of auxvec.h, since I don't see why userspace should
> be interested in it, but that does seem to be the current convention.

Yes, I agree.

> Ugh, there are even CONFIG_xxx ifdefs in the x86 and sh uapi/asm/auxvec.h ...
> Maybe the define could be moved to arch/*/include/asm/elf.h?

That sounds like a sensible place for it to me.

Cheers
James

[toc] | [prev] | [next] | [standalone]


#1449627 — [PATCH 3/5] arm64: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO

FromJames Hogan <james.hogan@imgtec.com>
Date2016-07-25 18:10 +0200
Subject[PATCH 3/5] arm64: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
Message-ID<rYQC6-6GE-13@gated-at.bofh.it>
In reply to#1449624
AT_VECTOR_SIZE_ARCH should be defined with the maximum number of
NEW_AUX_ENT entries that ARCH_DLINFO can contain, but it wasn't defined
for arm64 at all even though ARCH_DLINFO will contain one NEW_AUX_ENT
for the VDSO address.

This shouldn't be a problem as AT_VECTOR_SIZE_BASE includes space for
AT_BASE_PLATFORM which arm64 doesn't use, but lets define it now and add
the comment above ARCH_DLINFO as found in several other architectures to
remind future modifiers of ARCH_DLINFO to keep AT_VECTOR_SIZE_ARCH up to
date.

Fixes: f668cd1673aa ("arm64: ELF definitions")
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: linux-arm-kernel@lists.infradead.org
---
 arch/arm64/include/asm/elf.h         | 1 +
 arch/arm64/include/uapi/asm/auxvec.h | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/arch/arm64/include/asm/elf.h b/arch/arm64/include/asm/elf.h
index 579b6e654f2d..a55384f4a5d7 100644
--- a/arch/arm64/include/asm/elf.h
+++ b/arch/arm64/include/asm/elf.h
@@ -140,6 +140,7 @@ typedef struct user_fpsimd_state elf_fpregset_t;
 
 #define SET_PERSONALITY(ex)		clear_thread_flag(TIF_32BIT);
 
+/* update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT entries changes */
 #define ARCH_DLINFO							\
 do {									\
 	NEW_AUX_ENT(AT_SYSINFO_EHDR,					\
diff --git a/arch/arm64/include/uapi/asm/auxvec.h b/arch/arm64/include/uapi/asm/auxvec.h
index 22d6d8885854..4cf0c17787a8 100644
--- a/arch/arm64/include/uapi/asm/auxvec.h
+++ b/arch/arm64/include/uapi/asm/auxvec.h
@@ -19,4 +19,6 @@
 /* vDSO location */
 #define AT_SYSINFO_EHDR	33
 
+#define AT_VECTOR_SIZE_ARCH 1 /* entries in ARCH_DLINFO */
+
 #endif
-- 
2.4.10

[toc] | [prev] | [next] | [standalone]


#1449629 — [PATCH 1/5] MIPS: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO

FromJames Hogan <james.hogan@imgtec.com>
Date2016-07-25 18:10 +0200
Subject[PATCH 1/5] MIPS: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
Message-ID<rYQC6-6GE-23@gated-at.bofh.it>
In reply to#1449624
AT_VECTOR_SIZE_ARCH should be defined with the maximum number of
NEW_AUX_ENT entries that ARCH_DLINFO can contain, but it wasn't defined
for MIPS at all even though ARCH_DLINFO will contain one NEW_AUX_ENT for
the VDSO address.

This shouldn't be a problem as AT_VECTOR_SIZE_BASE includes space for
AT_BASE_PLATFORM which MIPS doesn't use, but lets define it now and add
the comment above ARCH_DLINFO as found in several other architectures to
remind future modifiers of ARCH_DLINFO to keep AT_VECTOR_SIZE_ARCH up to
date.

Fixes: ebb5e78cc634 ("MIPS: Initial implementation of a VDSO")
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org
---
 arch/mips/include/asm/elf.h         | 1 +
 arch/mips/include/uapi/asm/auxvec.h | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/arch/mips/include/asm/elf.h b/arch/mips/include/asm/elf.h
index f5f45717968e..ede8c4ff56f7 100644
--- a/arch/mips/include/asm/elf.h
+++ b/arch/mips/include/asm/elf.h
@@ -458,6 +458,7 @@ extern const char *__elf_platform;
 #define ELF_ET_DYN_BASE		(TASK_SIZE / 3 * 2)
 #endif
 
+/* update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT entries changes */
 #define ARCH_DLINFO							\
 do {									\
 	NEW_AUX_ENT(AT_SYSINFO_EHDR,					\
diff --git a/arch/mips/include/uapi/asm/auxvec.h b/arch/mips/include/uapi/asm/auxvec.h
index c9c7195272c4..45ba259a3618 100644
--- a/arch/mips/include/uapi/asm/auxvec.h
+++ b/arch/mips/include/uapi/asm/auxvec.h
@@ -14,4 +14,6 @@
 /* Location of VDSO image. */
 #define AT_SYSINFO_EHDR		33
 
+#define AT_VECTOR_SIZE_ARCH 1 /* entries in ARCH_DLINFO */
+
 #endif /* __ASM_AUXVEC_H */
-- 
2.4.10

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web