Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1449624 > unrolled thread
| Started by | James Hogan <james.hogan@imgtec.com> |
|---|---|
| First post | 2016-07-25 18:10 +0200 |
| Last post | 2016-07-25 18:10 +0200 |
| Articles | 5 — 1 participant |
Back to article view | Back to linux.kernel
[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
| From | James Hogan <james.hogan@imgtec.com> |
|---|---|
| Date | 2016-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]
| From | James Hogan <james.hogan@imgtec.com> |
|---|---|
| Date | 2016-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]
| From | James Hogan <james.hogan@imgtec.com> |
|---|---|
| Date | 2016-07-25 21:20 +0200 |
| Subject | Re: [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]
| From | James Hogan <james.hogan@imgtec.com> |
|---|---|
| Date | 2016-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]
| From | James Hogan <james.hogan@imgtec.com> |
|---|---|
| Date | 2016-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