From: catalin.marinas@arm.com (Catalin Marinas)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v6 07/19] arm64: introduce is_a32_task and is_a32_thread (for AArch32 compat)
Date: Sat, 5 Dec 2015 11:00:27 +0000 [thread overview]
Message-ID: <20151205110025.GA1978@MBP.local> (raw)
In-Reply-To: <20151204170523.GA2791@yury-N73SV>
On Fri, Dec 04, 2015 at 08:05:23PM +0300, Yury Norov wrote:
> On Thu, Dec 03, 2015 at 12:13:03PM +0000, Catalin Marinas wrote:
> > On Wed, Nov 18, 2015 at 12:16:47AM +0300, Yury Norov wrote:
> > > diff --git a/arch/arm64/include/asm/compat.h b/arch/arm64/include/asm/compat.h
> > > index 7fbed69..9700e5e 100644
> > > --- a/arch/arm64/include/asm/compat.h
> > > +++ b/arch/arm64/include/asm/compat.h
> > > @@ -299,19 +299,44 @@ struct compat_shmid64_ds {
> > > compat_ulong_t __unused5;
> > > };
> > >
> > > -static inline int is_compat_task(void)
> > > +#ifdef CONFIG_AARCH32_EL0
> > > +
> > > +static inline int is_a32_compat_task(void)
> > > {
> > > return test_thread_flag(TIF_32BIT);
> > > }
> > >
> > > -static inline int is_compat_thread(struct thread_info *thread)
> > > +static inline int is_a32_compat_thread(struct thread_info *thread)
> > > {
> > > return test_ti_thread_flag(thread, TIF_32BIT);
> > > }
> > >
> > > +#else
> > > +
> > > +static inline int is_a32_compat_task(void)
> > > +{
> > > + return 0;
> > > +}
> > > +
> > > +static inline int is_a32_compat_thread(struct thread_info *thread)
> > > +{
> > > + return 0;
> > > +}
> > > +#endif
> > > +
> > > +static inline int is_compat_task(void)
> > > +{
> > > + return is_a32_compat_task();
> > > +}
> > > +
> > > #else /* !CONFIG_COMPAT */
> > >
> > > -static inline int is_compat_thread(struct thread_info *thread)
> > > +static inline int is_a32_compat_thread(struct thread_info *thread)
> > > +{
> > > + return 0;
> > > +}
> > > +
> > > +static inline int is_a32_compat_task(void)
> > > {
> > > return 0;
> > > }
> >
> > My main worry with this patch is a potential #include mess. I can see
> > that you already had to include asm/compat.h explicitly in
> > hw_breakpoint.c even though linux/compat.h was already included. In
> > subsequent files (asm/elf.h, asm/memory.h) you check is_compat_task()
> > without explicitly including asm/compat.h and hope that it won't break.
> >
> > A solution would be to add these functions in a separate header file
> > that gets included where needed (also by asm/compat.h).
>
> Thank you for pointing that. I don't see big advantage in moving that
> to new file, only if you insist. What about just fixing that mess?
As I said above, you use is_compat_task() in asm/elf.h for example
without including asm/compat.h. At some point, you may get a build error
in some unrelated C file. You could wait until it happens and then sort
it out (by either including asm/compat.h in asm/elf.h or creating a new
header file). My preference is to prevent such build errors early.
--
Catalin
next prev parent reply other threads:[~2015-12-05 11:00 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-17 21:16 [RFC2 PATCH v6 00/19] ILP32 for ARM64 Yury Norov
2015-11-17 21:16 ` [PATCH v6 01/19] arm64:ilp32: add documentation on the ILP32 ABI " Yury Norov
2015-11-18 8:09 ` Zhangjian (Bamvor)
2015-11-17 21:16 ` [PATCH v6 02/19] arm64: ensure the kernel is compiled for LP64 Yury Norov
2015-11-17 21:16 ` [PATCH v6 03/19] arm64: rename COMPAT to AARCH32_EL0 in Kconfig Yury Norov
2015-11-17 21:16 ` [PATCH v6 04/19] arm64: change some CONFIG_COMPAT over to use CONFIG_AARCH32_EL0 instead Yury Norov
2015-12-03 12:02 ` Catalin Marinas
2015-12-04 21:58 ` Yury Norov
2015-11-17 21:16 ` [PATCH v6 05/19] arm64:uapi: set __BITS_PER_LONG correctly for ILP32 and LP64 Yury Norov
2015-12-03 11:31 ` Catalin Marinas
2015-12-03 11:36 ` Dr. Philipp Tomsich
2015-11-17 21:16 ` [PATCH v6 06/19] arm64:ilp32: share signal structures between ILP32 and LP64 ABIs Yury Norov
2015-11-17 22:14 ` Arnd Bergmann
2015-11-17 21:16 ` [PATCH v6 07/19] arm64: introduce is_a32_task and is_a32_thread (for AArch32 compat) Yury Norov
2015-12-03 12:13 ` Catalin Marinas
2015-12-04 17:05 ` Yury Norov
2015-12-05 11:00 ` Catalin Marinas [this message]
2015-11-17 21:16 ` [PATCH v6 08/19] arm64:ilp32: add is_ilp32_compat_{task, thread} and TIF_32BIT_AARCH64 Yury Norov
2015-11-17 21:16 ` [PATCH v6 09/19] arm64:ilp32: share HWCAP between LP64 and ILP32 Yury Norov
2015-11-17 21:16 ` [PATCH v6 10/19] arm64:ilp32 use the native LP64 'start_thread' for ILP32 threads Yury Norov
2015-12-03 12:20 ` Catalin Marinas
2015-11-17 21:16 ` [PATCH v6 11/19] arm64:ilp32: support core dump generation for ILP32 Yury Norov
2015-12-03 16:39 ` Catalin Marinas
2015-11-17 21:16 ` [PATCH v6 12/19] ptrace: Allow compat to use the native siginfo Yury Norov
2015-11-17 21:16 ` [PATCH v6 13/19] arm64: ilp32: common 32-bit wrappers Yury Norov
2015-11-17 21:16 ` [PATCH v6 14/19] arm64:ilp32: add sys_ilp32.c and a separate table (in entry.S) to use it Yury Norov
2015-11-17 21:57 ` Arnd Bergmann
2015-11-18 8:14 ` Arnd Bergmann
2015-11-19 13:21 ` Andreas Schwab
2015-11-19 13:32 ` Arnd Bergmann
2015-11-30 15:34 ` Arnd Bergmann
2015-11-30 20:21 ` Yury Norov
2015-11-30 21:49 ` Arnd Bergmann
2015-12-01 0:20 ` Andrew Pinski
2015-12-01 0:40 ` Yury Norov
2015-12-01 10:26 ` Arnd Bergmann
2015-12-01 9:20 ` Andreas Schwab
2015-12-01 10:22 ` Arnd Bergmann
2015-12-01 11:01 ` Andreas Schwab
2015-12-01 11:30 ` Arnd Bergmann
2015-12-02 0:24 ` Yury Norov
2015-12-02 10:03 ` Arnd Bergmann
2015-12-03 17:17 ` Catalin Marinas
2015-12-01 21:29 ` Yury Norov
2015-12-01 22:39 ` Arnd Bergmann
2015-12-01 23:35 ` Yury Norov
2015-12-02 8:37 ` Arnd Bergmann
2015-12-02 9:15 ` Yury Norov
2015-12-02 10:35 ` Yury Norov
2015-12-02 13:46 ` Arnd Bergmann
2015-12-02 13:54 ` Arnd Bergmann
2015-12-02 13:57 ` Will Deacon
2015-12-03 17:47 ` Catalin Marinas
2015-12-03 18:14 ` Yury Norov
2015-12-03 20:42 ` Arnd Bergmann
2015-12-02 10:01 ` Yury Norov
2015-12-02 11:03 ` Arnd Bergmann
2015-11-17 21:16 ` [PATCH v6 15/19] arm64: ilp32: force IPC_64 in msgctl, shmctl, semctl Yury Norov
2015-11-17 22:07 ` Arnd Bergmann
2015-11-18 8:25 ` Andreas Schwab
2015-11-18 9:23 ` Arnd Bergmann
2015-11-18 10:07 ` Geert Uytterhoeven
2015-11-18 12:04 ` Arnd Bergmann
2015-11-17 21:16 ` [PATCH v6 16/19] aarch64: ilp32: use generic stat64 structure Yury Norov
2015-11-17 22:09 ` Arnd Bergmann
2015-11-18 20:36 ` Yury Norov
2015-11-18 20:45 ` Arnd Bergmann
2015-11-17 21:16 ` [PATCH v6 17/19] arm64:ilp32: use the native siginfo instead of the compat siginfo Yury Norov
2015-11-17 21:16 ` [PATCH v6 18/19] arm64:ilp32: change COMPAT_ELF_PLATFORM to report a a subplatform for ILP32 Yury Norov
2015-11-18 8:11 ` Zhangjian (Bamvor)
2015-11-18 11:21 ` pinskia at gmail.com
2015-11-18 20:25 ` Yury Norov
2015-11-18 21:47 ` Dr. Philipp Tomsich
2015-11-17 21:16 ` [PATCH v6 19/19] arm64:ilp32: add ARM64_ILP32 to Kconfig Yury Norov
2015-11-18 8:00 ` [RFC2 PATCH v6 00/19] ILP32 for ARM64 Zhangjian (Bamvor)
2015-11-23 16:49 ` Andreas Schwab
2015-12-03 17:59 ` Catalin Marinas
2015-12-04 15:35 ` Yury Norov
2015-12-04 17:18 ` Catalin Marinas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20151205110025.GA1978@MBP.local \
--to=catalin.marinas@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).