* [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h @ 2015-09-02 0:10 Palmer Dabbelt 2015-09-07 13:16 ` Arnd Bergmann 0 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-02 0:10 UTC (permalink / raw) To: Arnd Bergmann; +Cc: linux-arch, linux-api, linux-kernel, Palmer Dabbelt From: Palmer Dabbelt <palmer.dabbelt@eecs.berkeley.edu> When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. I went ahead and grep'd for any more of these (with headers_install_all), and this was the only one I found. Signed-off-by: Palmer Dabbelt <palmer.dabbelt@eecs.berkeley.edu> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063effe0cc1..14a5c8237d84 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* Re: [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-09-02 0:10 [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt @ 2015-09-07 13:16 ` Arnd Bergmann 2015-09-07 13:35 ` Palmer Dabbelt 0 siblings, 1 reply; 327+ messages in thread From: Arnd Bergmann @ 2015-09-07 13:16 UTC (permalink / raw) To: Palmer Dabbelt; +Cc: linux-arch, linux-kernel On Tuesday 01 September 2015 17:10:10 Palmer Dabbelt wrote: > From: Palmer Dabbelt <palmer.dabbelt@eecs.berkeley.edu> > > When working on the RISC-V port I noticed that F_SETLK64 was being > defined on our 64-bit platform, despite our port being so new that > we've only ever had the 64-bit file ops. Since there's not compat > layer for these, this causes fcntl to bail out. > > It turns out that one of the ways in with F_SETLK64 was being defined > (there's some more in glibc, but that's a whole different story... :)) > is the result of CONFIG_64BIT showing up in this user-visible header. > <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it > with a __BITS_PER_LONG check. > > I went ahead and grep'd for any more of these (with > headers_install_all), and this was the only one I found. > > Signed-off-by: Palmer Dabbelt <palmer.dabbelt@eecs.berkeley.edu> > Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> > Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> Looks good to me. Are you planning to submit the RISC-V port upstream any time soon? If so, just keep the patch in your tree and add my Acked-by: Arnd Bergmann <arnd@arndb.de> However, I did see a lot of similar bugs now that you point me to it: $ grep -r \\\<CONFIG obj-tmp/usr/include/ obj-tmp/usr/include/asm-generic/fcntl.h:#ifndef CONFIG_64BIT obj-tmp/usr/include/asm-generic/mman-common.h:#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED obj-tmp/usr/include/asm-generic/unistd.h:#ifdef CONFIG_MMU obj-tmp/usr/include/asm-generic/unistd.h:#endif /* CONFIG_MMU */ obj-tmp/usr/include/linux/atmdev.h:#ifdef CONFIG_COMPAT obj-tmp/usr/include/linux/elfcore.h:#ifdef CONFIG_BINFMT_ELF_FDPIC obj-tmp/usr/include/linux/eventpoll.h:#ifdef CONFIG_PM_SLEEP obj-tmp/usr/include/linux/fb.h:#ifdef CONFIG_FB_BACKLIGHT obj-tmp/usr/include/linux/flat.h:#ifdef CONFIG_BINFMT_SHARED_FLAT obj-tmp/usr/include/linux/hw_breakpoint.h:#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS obj-tmp/usr/include/linux/pktcdvd.h:#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) obj-tmp/usr/include/linux/raw.h:#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS obj-tmp/usr/include/asm/ptrace.h:#ifdef CONFIG_CPU_ENDIAN_BE8 These all have the same problem, and we should fix them, as well as (probably) adding an automated check to scripts/headers_install.sh. Arnd ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-09-07 13:16 ` Arnd Bergmann @ 2015-09-07 13:35 ` Palmer Dabbelt 2015-09-07 13:59 ` Arnd Bergmann 0 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-07 13:35 UTC (permalink / raw) To: arnd; +Cc: linux-arch, linux-kernel On Mon, 07 Sep 2015 06:16:37 PDT (-0700), arnd@arndb.de wrote: > On Tuesday 01 September 2015 17:10:10 Palmer Dabbelt wrote: >> From: Palmer Dabbelt <palmer.dabbelt@eecs.berkeley.edu> >> >> When working on the RISC-V port I noticed that F_SETLK64 was being >> defined on our 64-bit platform, despite our port being so new that >> we've only ever had the 64-bit file ops. Since there's not compat >> layer for these, this causes fcntl to bail out. >> >> It turns out that one of the ways in with F_SETLK64 was being defined >> (there's some more in glibc, but that's a whole different story... :)) >> is the result of CONFIG_64BIT showing up in this user-visible header. >> <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it >> with a __BITS_PER_LONG check. >> >> I went ahead and grep'd for any more of these (with >> headers_install_all), and this was the only one I found. >> >> Signed-off-by: Palmer Dabbelt <palmer.dabbelt@eecs.berkeley.edu> >> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> >> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> > > Looks good to me. Are you planning to submit the RISC-V port upstream > any time soon? If so, just keep the patch in your tree and add my > > Acked-by: Arnd Bergmann <arnd@arndb.de> The RISC-V stuff is still a few months off, that's why I submitted this upstream stand-alone. The supervisor specification isn't 100% set in stone yet, and we're waiting on that before upstreaming anything significant. > However, I did see a lot of similar bugs now that you point me to it: > > $ grep -r \\\<CONFIG obj-tmp/usr/include/ > obj-tmp/usr/include/asm-generic/fcntl.h:#ifndef CONFIG_64BIT > obj-tmp/usr/include/asm-generic/mman-common.h:#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED > obj-tmp/usr/include/asm-generic/unistd.h:#ifdef CONFIG_MMU > obj-tmp/usr/include/asm-generic/unistd.h:#endif /* CONFIG_MMU */ > obj-tmp/usr/include/linux/atmdev.h:#ifdef CONFIG_COMPAT > obj-tmp/usr/include/linux/elfcore.h:#ifdef CONFIG_BINFMT_ELF_FDPIC > obj-tmp/usr/include/linux/eventpoll.h:#ifdef CONFIG_PM_SLEEP > obj-tmp/usr/include/linux/fb.h:#ifdef CONFIG_FB_BACKLIGHT > obj-tmp/usr/include/linux/flat.h:#ifdef CONFIG_BINFMT_SHARED_FLAT > obj-tmp/usr/include/linux/hw_breakpoint.h:#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS > obj-tmp/usr/include/linux/pktcdvd.h:#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) > obj-tmp/usr/include/linux/raw.h:#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS > obj-tmp/usr/include/asm/ptrace.h:#ifdef CONFIG_CPU_ENDIAN_BE8 > > These all have the same problem, and we should fix them, as well as > (probably) adding an automated check to scripts/headers_install.sh. Well, I was going to go fix them all and ran a very similar grep, but I think I got a lot of false-positives. If I understand correctly, it's allowed to have CONFIG_* when guarded by __KERNEL__ in user-visible headers? Now that I've written that, I realize it'd be pretty easy to just use cpp to drop everything inside __KERNEL__ and then look for CONFIG_*. If you want, I can try to do that, fix what triggers the check, and re-submit everything together? ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-09-07 13:35 ` Palmer Dabbelt @ 2015-09-07 13:59 ` Arnd Bergmann 2015-09-09 21:08 ` Palmer Dabbelt [not found] ` <18147.1441883729-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org> 0 siblings, 2 replies; 327+ messages in thread From: Arnd Bergmann @ 2015-09-07 13:59 UTC (permalink / raw) To: Palmer Dabbelt, sw-dev; +Cc: linux-arch On Monday 07 September 2015 06:35:37 Palmer Dabbelt wrote: > On Mon, 07 Sep 2015 06:16:37 PDT (-0700), arnd@arndb.de wrote: > > On Tuesday 01 September 2015 17:10:10 Palmer Dabbelt wrote: > >> From: Palmer Dabbelt <palmer.dabbelt@eecs.berkeley.edu> > >> > >> When working on the RISC-V port I noticed that F_SETLK64 was being > >> defined on our 64-bit platform, despite our port being so new that > >> we've only ever had the 64-bit file ops. Since there's not compat > >> layer for these, this causes fcntl to bail out. > >> > >> It turns out that one of the ways in with F_SETLK64 was being defined > >> (there's some more in glibc, but that's a whole different story... :)) > >> is the result of CONFIG_64BIT showing up in this user-visible header. > >> <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it > >> with a __BITS_PER_LONG check. > >> > >> I went ahead and grep'd for any more of these (with > >> headers_install_all), and this was the only one I found. > >> > >> Signed-off-by: Palmer Dabbelt <palmer.dabbelt@eecs.berkeley.edu> > >> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> > >> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> > > > > Looks good to me. Are you planning to submit the RISC-V port upstream > > any time soon? If so, just keep the patch in your tree and add my > > > > Acked-by: Arnd Bergmann <arnd@arndb.de> > > The RISC-V stuff is still a few months off, that's why I submitted this > upstream stand-alone. The supervisor specification isn't 100% set in > stone yet, and we're waiting on that before upstreaming anything > significant. Ok, I see. [adding sw-dev@l.r.o] While this is a separate topic, I'd suggest you already start posting the patches for review anyway, for two reasons: - Almost all of your code won't change any more, so by having it reviewed early, the review can be done by the time that the spec is ready and we can just merge it all. It's very rare that a new architecture gets merged within a single review cycle, so this buys you some more time. - The people that do the review will also be the ones that are experienced on other architectures, so if there are some open questions for the architecture spec, we may be able to provide helpful suggestions. It's even possible that there is something that RISC-V currently does suboptimally and you only find out about it in the review. In any case, when posting patches, just let us know when a patch is in a preliminary state, or when you already have plans to change a patch further. > > However, I did see a lot of similar bugs now that you point me to it: > > > > $ grep -r \\\<CONFIG obj-tmp/usr/include/ > > obj-tmp/usr/include/asm-generic/fcntl.h:#ifndef CONFIG_64BIT > > obj-tmp/usr/include/asm-generic/mman-common.h:#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED > > obj-tmp/usr/include/asm-generic/unistd.h:#ifdef CONFIG_MMU > > obj-tmp/usr/include/asm-generic/unistd.h:#endif /* CONFIG_MMU */ > > obj-tmp/usr/include/linux/atmdev.h:#ifdef CONFIG_COMPAT > > obj-tmp/usr/include/linux/elfcore.h:#ifdef CONFIG_BINFMT_ELF_FDPIC > > obj-tmp/usr/include/linux/eventpoll.h:#ifdef CONFIG_PM_SLEEP > > obj-tmp/usr/include/linux/fb.h:#ifdef CONFIG_FB_BACKLIGHT > > obj-tmp/usr/include/linux/flat.h:#ifdef CONFIG_BINFMT_SHARED_FLAT > > obj-tmp/usr/include/linux/hw_breakpoint.h:#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS > > obj-tmp/usr/include/linux/pktcdvd.h:#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) > > obj-tmp/usr/include/linux/raw.h:#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS > > obj-tmp/usr/include/asm/ptrace.h:#ifdef CONFIG_CPU_ENDIAN_BE8 > > > > These all have the same problem, and we should fix them, as well as > > (probably) adding an automated check to scripts/headers_install.sh. > > Well, I was going to go fix them all and ran a very similar grep, but > I think I got a lot of false-positives. If I understand correctly, > it's allowed to have CONFIG_* when guarded by __KERNEL__ in > user-visible headers? That is right. > Now that I've written that, I realize it'd be pretty easy to just use > cpp to drop everything inside __KERNEL__ and then look for CONFIG_*. The lines quoted above are from the output of 'make headers_install', which already drops everything inside of __KERNEL__. A lot of them probably just need to add that #ifdef, or move the portion of the header file to the normal (non-uabi) file. > If you want, I can try to do that, fix what triggers the check, and > re-submit everything together? That would be great, yes. Arnd ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-09-07 13:59 ` Arnd Bergmann @ 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` [PATCH 01/13] " Palmer Dabbelt ` (14 more replies) [not found] ` <18147.1441883729-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org> 1 sibling, 15 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86 I cut the RISC-V stuff, but I intend to reply to it later. As you said, it's just a different topic. >>> However, I did see a lot of similar bugs now that you point me to it: >>> >>> $ grep -r \\\<CONFIG obj-tmp/usr/include/ >>> obj-tmp/usr/include/asm-generic/fcntl.h:#ifndef CONFIG_64BIT >>> obj-tmp/usr/include/asm-generic/mman-common.h:#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED >>> obj-tmp/usr/include/asm-generic/unistd.h:#ifdef CONFIG_MMU >>> obj-tmp/usr/include/asm-generic/unistd.h:#endif /* CONFIG_MMU */ >>> obj-tmp/usr/include/linux/atmdev.h:#ifdef CONFIG_COMPAT >>> obj-tmp/usr/include/linux/elfcore.h:#ifdef CONFIG_BINFMT_ELF_FDPIC >>> obj-tmp/usr/include/linux/eventpoll.h:#ifdef CONFIG_PM_SLEEP >>> obj-tmp/usr/include/linux/fb.h:#ifdef CONFIG_FB_BACKLIGHT >>> obj-tmp/usr/include/linux/flat.h:#ifdef CONFIG_BINFMT_SHARED_FLAT >>> obj-tmp/usr/include/linux/hw_breakpoint.h:#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS >>> obj-tmp/usr/include/linux/pktcdvd.h:#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) >>> obj-tmp/usr/include/linux/raw.h:#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS >>> obj-tmp/usr/include/asm/ptrace.h:#ifdef CONFIG_CPU_ENDIAN_BE8 >>> >>> These all have the same problem, and we should fix them, as well as >>> (probably) adding an automated check to scripts/headers_install.sh. >> >> Well, I was going to go fix them all and ran a very similar grep, but >> I think I got a lot of false-positives. If I understand correctly, >> it's allowed to have CONFIG_* when guarded by __KERNEL__ in >> user-visible headers? > > That is right. It turns out there was actually a header checking script (scripts/headers_check.pl), and it already had a check for this. The check was just disabled because there was "too much noise". Rather than putting it in headers_install I've just fixed that script. I'm definately lacking in perl powers, so I have no idea if what I've done is sane. Specifically: there's a global variable and a line over 80 characters, but since there's a bunch of other violations I figure it's fine. >> Now that I've written that, I realize it'd be pretty easy to just use >> cpp to drop everything inside __KERNEL__ and then look for CONFIG_*. > > The lines quoted above are from the output of 'make headers_install', > which already drops everything inside of __KERNEL__. A lot of them > probably just need to add that #ifdef, or move the portion of the > header file to the normal (non-uabi) file. > >> If you want, I can try to do that, fix what triggers the check, and >> re-submit everything together? > > That would be great, yes. OK. I think this has turned into more of a RFC than a PATCH, though... I've just #ifdef'd things for now to reduce the diff size, though I think it might be cleaner to move some of them to the non-user headers (ep_take_care_of_epollwakeup(), USE_WCACHING, MAX_RAW_MINORS). I'm pretty far out of my depth here, so these should all be carefully considered, but there's a few that scare me more ("struct elf_prstatus", "enum by_type_idx", AT_VECTOR_SIZE_ARCH). I think there's only one actual bug here (MAP_UNINITIALIZED), the rest just quiet the checking script. Each patch has my rationale for what I did. Since this touches a whole lot of stuff, I've added a whole bunch of CCs. ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-09-09 21:08 ` Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` [PATCH 03/13] Hide COMPAT_ATM_ADDPARTY behind #ifdef __KERNEL__ Palmer Dabbelt ` (13 subsequent siblings) 14 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063effe0cc1..14a5c8237d84 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-09-09 21:08 ` [PATCH 01/13] " Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063effe0cc1..14a5c8237d84 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 03/13] Hide COMPAT_ATM_ADDPARTY behind #ifdef __KERNEL__ 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` [PATCH 01/13] " Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt ` (12 subsequent siblings) 14 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt This used to just be behind an #ifdef COMPAT_COMPAT, so most of userspace wouldn't have seen the definition before. This change just makes the __KERNEL__ part explicit to quiet the header checker. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/atmdev.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h index 93e0ec008ca8..f8b6223165da 100644 --- a/include/uapi/linux/atmdev.h +++ b/include/uapi/linux/atmdev.h @@ -100,7 +100,7 @@ struct atm_dev_stats { /* use backend to make new if */ #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) /* add party to p2mp call */ -#ifdef CONFIG_COMPAT +#if defined(__KERNEL__) && defined(CONFIG_COMPAT) /* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ #define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) #endif -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` [PATCH 01/13] " Palmer Dabbelt 2015-09-09 21:08 ` [PATCH 03/13] Hide COMPAT_ATM_ADDPARTY behind #ifdef __KERNEL__ Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` [PATCH 05/13] Hide some of "struct elf_prstatus" behind #ifdef __KERNEL__ Palmer Dabbelt ` (11 subsequent siblings) 14 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it. While I could have kept hiding it, the man pages seem to indicate that MAP_UNINITIALIZED should be visible: mmap(2) MAP_UNINITIALIZED (since Linux 2.6.33) Don't clear anonymous pages. This flag is intended to improve performance on embedded devices. This flag is honored only if the kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED option. Because of the security implications, that option is normally enabled only on embedded devices (i.e., devices where one has complete control of the contents of user memory). and since the only time it shows up in my /usr/include is in this header I believe this should have been visible to userspace (as non-zero, which wouldn't do anything when or'd into the flags) all along. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/mman-common.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index ddc3b36f1046..e58d1911ecc6 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,7 +19,7 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED +#if !defined(__KERNEL__) || defined(CONFIG_MMAP_ALLOW_UNINITIALIZED) # define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ #else # define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-09 21:08 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it. While I could have kept hiding it, the man pages seem to indicate that MAP_UNINITIALIZED should be visible: mmap(2) MAP_UNINITIALIZED (since Linux 2.6.33) Don't clear anonymous pages. This flag is intended to improve performance on embedded devices. This flag is honored only if the kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED option. Because of the security implications, that option is normally enabled only on embedded devices (i.e., devices where one has complete control of the contents of user memory). and since the only time it shows up in my /usr/include is in this header I believe this should have been visible to userspace (as non-zero, which wouldn't do anything when or'd into the flags) all along. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/mman-common.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index ddc3b36f1046..e58d1911ecc6 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,7 +19,7 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED +#if !defined(__KERNEL__) || defined(CONFIG_MMAP_ALLOW_UNINITIALIZED) # define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ #else # define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 05/13] Hide some of "struct elf_prstatus" behind #ifdef __KERNEL__ 2015-09-09 21:08 ` Palmer Dabbelt ` (2 preceding siblings ...) 2015-09-09 21:08 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` [PATCH 06/13] Hide ep_take_care_of_epollwakeup() " Palmer Dabbelt ` (10 subsequent siblings) 14 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt This one scares me: while I can't find any system calls that directly take this as an argument, a comment in <linux/ptrace.h> " Generic ptrace interface that exports the architecture specific regsets using the corresponding NT_* types (which are also used in the core dump). Please note that the NT_PRSTATUS note type in a core dump contains a full 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the other user_regset flavors, the user_regset layout and the ELF core dump note payload are exactly the same layout. " seems to indicate that it's possible to see this sometimes. Since this would only be visible to userspace in a somewhat convoluted manner, I'm going to try and keep it as it was. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/elfcore.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h index 569737cfb557..f9320b588937 100644 --- a/include/uapi/linux/elfcore.h +++ b/include/uapi/linux/elfcore.h @@ -60,7 +60,7 @@ struct elf_prstatus long pr_instr; /* Current instruction */ #endif elf_gregset_t pr_reg; /* GP registers */ -#ifdef CONFIG_BINFMT_ELF_FDPIC +#if defined(__KERNEL__) && defined(CONFIG_BINFMT_ELF_FDPIC) /* When using FDPIC, the loadmap addresses need to be communicated * to GDB in order for GDB to do the necessary relocations. The * fields (below) used to communicate this information are placed -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 05/13] Hide some of "struct elf_prstatus" behind #ifdef __KERNEL__ 2015-09-09 21:08 ` [PATCH 05/13] Hide some of "struct elf_prstatus" behind #ifdef __KERNEL__ Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt This one scares me: while I can't find any system calls that directly take this as an argument, a comment in <linux/ptrace.h> " Generic ptrace interface that exports the architecture specific regsets using the corresponding NT_* types (which are also used in the core dump). Please note that the NT_PRSTATUS note type in a core dump contains a full 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the other user_regset flavors, the user_regset layout and the ELF core dump note payload are exactly the same layout. " seems to indicate that it's possible to see this sometimes. Since this would only be visible to userspace in a somewhat convoluted manner, I'm going to try and keep it as it was. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/elfcore.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h index 569737cfb557..f9320b588937 100644 --- a/include/uapi/linux/elfcore.h +++ b/include/uapi/linux/elfcore.h @@ -60,7 +60,7 @@ struct elf_prstatus long pr_instr; /* Current instruction */ #endif elf_gregset_t pr_reg; /* GP registers */ -#ifdef CONFIG_BINFMT_ELF_FDPIC +#if defined(__KERNEL__) && defined(CONFIG_BINFMT_ELF_FDPIC) /* When using FDPIC, the loadmap addresses need to be communicated * to GDB in order for GDB to do the necessary relocations. The * fields (below) used to communicate this information are placed -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 06/13] Hide ep_take_care_of_epollwakeup() behind #ifdef __KERNEL__ 2015-09-09 21:08 ` Palmer Dabbelt ` (3 preceding siblings ...) 2015-09-09 21:08 ` [PATCH 05/13] Hide some of "struct elf_prstatus" behind #ifdef __KERNEL__ Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt ` (9 subsequent siblings) 14 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt This doesn't make any sense to expose to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/eventpoll.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2e1f0e..290426bfb0aa 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,6 +61,7 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; +#ifdef __KERNEL__ #ifdef CONFIG_PM_SLEEP static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) { @@ -73,4 +74,6 @@ static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) epev->events &= ~EPOLLWAKEUP; } #endif +#endif /*__KERNEL__*/ + #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 06/13] Hide ep_take_care_of_epollwakeup() behind #ifdef __KERNEL__ 2015-09-09 21:08 ` [PATCH 06/13] Hide ep_take_care_of_epollwakeup() " Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt This doesn't make any sense to expose to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/eventpoll.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2e1f0e..290426bfb0aa 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,6 +61,7 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; +#ifdef __KERNEL__ #ifdef CONFIG_PM_SLEEP static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) { @@ -73,4 +74,6 @@ static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) epev->events &= ~EPOLLWAKEUP; } #endif +#endif /*__KERNEL__*/ + #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible 2015-09-09 21:08 ` Palmer Dabbelt ` (4 preceding siblings ...) 2015-09-09 21:08 ` [PATCH 06/13] Hide ep_take_care_of_epollwakeup() " Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` [PATCH 08/13] Hide MAX_SHARED_LIBS behind #ifdef __KERNEL__ Palmer Dabbelt ` (8 subsequent siblings) 14 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt Nothing else in the kernel defines this, and this header is visible to userspace. Rather than hiding it in an #ifdef, I think it's sane to just make this visible to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/fb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h index fb795c3b3c17..8926f13bc19f 100644 --- a/include/uapi/linux/fb.h +++ b/include/uapi/linux/fb.h @@ -392,11 +392,8 @@ struct fb_cursor { struct fb_image image; /* Cursor image */ }; -#ifdef CONFIG_FB_BACKLIGHT /* Settings for the generic backlight code */ #define FB_BACKLIGHT_LEVELS 128 #define FB_BACKLIGHT_MAX 0xFF -#endif - #endif /* _UAPI_LINUX_FB_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible 2015-09-09 21:08 ` [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt Nothing else in the kernel defines this, and this header is visible to userspace. Rather than hiding it in an #ifdef, I think it's sane to just make this visible to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/fb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h index fb795c3b3c17..8926f13bc19f 100644 --- a/include/uapi/linux/fb.h +++ b/include/uapi/linux/fb.h @@ -392,11 +392,8 @@ struct fb_cursor { struct fb_image image; /* Cursor image */ }; -#ifdef CONFIG_FB_BACKLIGHT /* Settings for the generic backlight code */ #define FB_BACKLIGHT_LEVELS 128 #define FB_BACKLIGHT_MAX 0xFF -#endif - #endif /* _UAPI_LINUX_FB_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/13] Hide MAX_SHARED_LIBS behind #ifdef __KERNEL__ 2015-09-09 21:08 ` Palmer Dabbelt ` (5 preceding siblings ...) 2015-09-09 21:08 ` [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` [PATCH 09/13] Hide bp_type_idx " Palmer Dabbelt ` (7 subsequent siblings) 14 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/flat.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6baba8f3..4ed679f3591e 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,11 +13,13 @@ #define FLAT_VERSION 0x00000004L +#ifdef __KERNEL__ #ifdef CONFIG_BINFMT_SHARED_FLAT #define MAX_SHARED_LIBS (4) #else #define MAX_SHARED_LIBS (1) #endif +#endif /*__KERNEL__*/ /* * To make everything easier to port and manage cross platform -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/13] Hide MAX_SHARED_LIBS behind #ifdef __KERNEL__ 2015-09-09 21:08 ` [PATCH 08/13] Hide MAX_SHARED_LIBS behind #ifdef __KERNEL__ Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/flat.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6baba8f3..4ed679f3591e 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,11 +13,13 @@ #define FLAT_VERSION 0x00000004L +#ifdef __KERNEL__ #ifdef CONFIG_BINFMT_SHARED_FLAT #define MAX_SHARED_LIBS (4) #else #define MAX_SHARED_LIBS (1) #endif +#endif /*__KERNEL__*/ /* * To make everything easier to port and manage cross platform -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 09/13] Hide bp_type_idx behind #ifdef __KERNEL__ 2015-09-09 21:08 ` Palmer Dabbelt ` (6 preceding siblings ...) 2015-09-09 21:08 ` [PATCH 08/13] Hide MAX_SHARED_LIBS behind #ifdef __KERNEL__ Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-10 11:11 ` David Howells 2015-09-09 21:08 ` [PATCH 10/13] Hide USE_WCACHING " Palmer Dabbelt ` (6 subsequent siblings) 14 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt I'm actually not sure what to do here: if this enum is meant to be used by userspace, then it has to be the same regardless of kernel configuration. One option would be to have the kernel expose all the values to userspace and then map them internally if CONFIG_HAVE_MIXED_BREAKPOINT_REGS isn't set, but that feels like it'd be more invasive. Here I took the simple and fail-fast route to hide all the definitions. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/hw_breakpoint.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h index b04000a2296a..2498bfbf56c4 100644 --- a/include/uapi/linux/hw_breakpoint.h +++ b/include/uapi/linux/hw_breakpoint.h @@ -17,14 +17,16 @@ enum { HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, }; +#ifdef __KERNEL__ enum bp_type_idx { TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) TYPE_DATA = 0, #else TYPE_DATA = 1, #endif TYPE_MAX }; +#endif /* __KERNEL__ */ #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* Re: [PATCH 09/13] Hide bp_type_idx behind #ifdef __KERNEL__ 2015-09-09 21:08 ` [PATCH 09/13] Hide bp_type_idx " Palmer Dabbelt @ 2015-09-10 11:11 ` David Howells 0 siblings, 0 replies; 327+ messages in thread From: David Howells @ 2015-09-10 11:11 UTC (permalink / raw) To: Palmer Dabbelt Cc: dhowells, arnd, 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86 Palmer Dabbelt <palmer@dabbelt.com> wrote: > +#ifdef __KERNEL__ > enum bp_type_idx { > TYPE_INST = 0, > -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS > +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) > TYPE_DATA = 0, > #else > TYPE_DATA = 1, > #endif > TYPE_MAX > }; > +#endif /* __KERNEL__ */ This should be in include/linux/hw_breakpoint.h without __KERNEL__ markings. David ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH 10/13] Hide USE_WCACHING behind #ifdef __KERNEL__ 2015-09-09 21:08 ` Palmer Dabbelt ` (7 preceding siblings ...) 2015-09-09 21:08 ` [PATCH 09/13] Hide bp_type_idx " Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-10 11:12 ` David Howells 2015-09-09 21:08 ` [PATCH 11/13] Hide MAX_RAW_MINORS " Palmer Dabbelt ` (5 subsequent siblings) 14 siblings, 2 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt I don't think this was ever intended to be exposed to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/pktcdvd.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/uapi/linux/pktcdvd.h b/include/uapi/linux/pktcdvd.h index 2640b9d4e243..e2a49bfee74e 100644 --- a/include/uapi/linux/pktcdvd.h +++ b/include/uapi/linux/pktcdvd.h @@ -33,11 +33,13 @@ * able to successfully recover with this option (drive will return good * status as soon as the cdb is validated). */ +#ifdef __KERNEL__ #if defined(CONFIG_CDROM_PKTCDVD_WCACHE) #define USE_WCACHING 1 #else #define USE_WCACHING 0 #endif +#endif /* __KERNEL__ */ /* * No user-servicable parts beyond this point -> -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 10/13] Hide USE_WCACHING behind #ifdef __KERNEL__ 2015-09-09 21:08 ` [PATCH 10/13] Hide USE_WCACHING " Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-10 11:12 ` David Howells 1 sibling, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt I don't think this was ever intended to be exposed to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/pktcdvd.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/uapi/linux/pktcdvd.h b/include/uapi/linux/pktcdvd.h index 2640b9d4e243..e2a49bfee74e 100644 --- a/include/uapi/linux/pktcdvd.h +++ b/include/uapi/linux/pktcdvd.h @@ -33,11 +33,13 @@ * able to successfully recover with this option (drive will return good * status as soon as the cdb is validated). */ +#ifdef __KERNEL__ #if defined(CONFIG_CDROM_PKTCDVD_WCACHE) #define USE_WCACHING 1 #else #define USE_WCACHING 0 #endif +#endif /* __KERNEL__ */ /* * No user-servicable parts beyond this point -> -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* Re: [PATCH 10/13] Hide USE_WCACHING behind #ifdef __KERNEL__ 2015-09-09 21:08 ` [PATCH 10/13] Hide USE_WCACHING " Palmer Dabbelt 2015-09-09 21:08 ` Palmer Dabbelt @ 2015-09-10 11:12 ` David Howells 1 sibling, 0 replies; 327+ messages in thread From: David Howells @ 2015-09-10 11:12 UTC (permalink / raw) To: Palmer Dabbelt Cc: dhowells, arnd, 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86 Palmer Dabbelt <palmer@dabbelt.com> wrote: > I don't think this was ever intended to be exposed to userspace. Then it should be in include/linux/pktcdvd.h David ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH 11/13] Hide MAX_RAW_MINORS behind #ifdef __KERNEL__ 2015-09-09 21:08 ` Palmer Dabbelt ` (8 preceding siblings ...) 2015-09-09 21:08 ` [PATCH 10/13] Hide USE_WCACHING " Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-10 11:13 ` David Howells 2015-09-09 21:08 ` [PATCH 12/13] Hide AT_VECTOR_SIZE_ARCH " Palmer Dabbelt ` (4 subsequent siblings) 14 siblings, 2 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt I don't think this was ever meant to be exposed to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/raw.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e70603..6d8d87524ff2 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,8 @@ struct raw_config_request __u64 block_minor; }; +#ifdef __KERNEL__ #define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#endif #endif /* __LINUX_RAW_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 11/13] Hide MAX_RAW_MINORS behind #ifdef __KERNEL__ 2015-09-09 21:08 ` [PATCH 11/13] Hide MAX_RAW_MINORS " Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-10 11:13 ` David Howells 1 sibling, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt I don't think this was ever meant to be exposed to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/raw.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e70603..6d8d87524ff2 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,8 @@ struct raw_config_request __u64 block_minor; }; +#ifdef __KERNEL__ #define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#endif #endif /* __LINUX_RAW_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* Re: [PATCH 11/13] Hide MAX_RAW_MINORS behind #ifdef __KERNEL__ 2015-09-09 21:08 ` [PATCH 11/13] Hide MAX_RAW_MINORS " Palmer Dabbelt 2015-09-09 21:08 ` Palmer Dabbelt @ 2015-09-10 11:13 ` David Howells 2015-09-10 11:13 ` David Howells 1 sibling, 1 reply; 327+ messages in thread From: David Howells @ 2015-09-10 11:13 UTC (permalink / raw) To: Palmer Dabbelt Cc: dhowells, arnd, 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86 Palmer Dabbelt <palmer@dabbelt.com> wrote: > I don't think this was ever meant to be exposed to userspace. Then it should be in include/linux/raw.h David ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 11/13] Hide MAX_RAW_MINORS behind #ifdef __KERNEL__ 2015-09-10 11:13 ` David Howells @ 2015-09-10 11:13 ` David Howells 0 siblings, 0 replies; 327+ messages in thread From: David Howells @ 2015-09-10 11:13 UTC (permalink / raw) To: Palmer Dabbelt Cc: dhowells, arnd, 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86 Palmer Dabbelt <palmer@dabbelt.com> wrote: > I don't think this was ever meant to be exposed to userspace. Then it should be in include/linux/raw.h David ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH 12/13] Hide AT_VECTOR_SIZE_ARCH behind #ifdef __KERNEL__ 2015-09-09 21:08 ` Palmer Dabbelt ` (9 preceding siblings ...) 2015-09-09 21:08 ` [PATCH 11/13] Hide MAX_RAW_MINORS " Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-10 11:14 ` David Howells 2015-09-14 22:50 ` [PATCH v3] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (3 subsequent siblings) 14 siblings, 2 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt I think this actually isn't a good idea, but I can't find anything outside of the kernel that's using this so I'm going to hide it. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- arch/x86/include/uapi/asm/auxvec.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm/auxvec.h index 77203ac352de..88e5fa6d97e7 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -9,11 +9,13 @@ #endif #define AT_SYSINFO_EHDR 33 +#ifdef __KERNEL__ /* entries in ARCH_DLINFO: */ #if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) # define AT_VECTOR_SIZE_ARCH 2 #else /* else it's non-compat x86-64 */ # define AT_VECTOR_SIZE_ARCH 1 #endif +#endif /* __KERNEL__ */ #endif /* _ASM_X86_AUXVEC_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 12/13] Hide AT_VECTOR_SIZE_ARCH behind #ifdef __KERNEL__ 2015-09-09 21:08 ` [PATCH 12/13] Hide AT_VECTOR_SIZE_ARCH " Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-10 11:14 ` David Howells 1 sibling, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt I think this actually isn't a good idea, but I can't find anything outside of the kernel that's using this so I'm going to hide it. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- arch/x86/include/uapi/asm/auxvec.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm/auxvec.h index 77203ac352de..88e5fa6d97e7 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -9,11 +9,13 @@ #endif #define AT_SYSINFO_EHDR 33 +#ifdef __KERNEL__ /* entries in ARCH_DLINFO: */ #if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) # define AT_VECTOR_SIZE_ARCH 2 #else /* else it's non-compat x86-64 */ # define AT_VECTOR_SIZE_ARCH 1 #endif +#endif /* __KERNEL__ */ #endif /* _ASM_X86_AUXVEC_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* Re: [PATCH 12/13] Hide AT_VECTOR_SIZE_ARCH behind #ifdef __KERNEL__ 2015-09-09 21:08 ` [PATCH 12/13] Hide AT_VECTOR_SIZE_ARCH " Palmer Dabbelt 2015-09-09 21:08 ` Palmer Dabbelt @ 2015-09-10 11:14 ` David Howells 2015-09-10 11:14 ` David Howells 1 sibling, 1 reply; 327+ messages in thread From: David Howells @ 2015-09-10 11:14 UTC (permalink / raw) To: Palmer Dabbelt Cc: dhowells, arnd, 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86 Palmer Dabbelt <palmer@dabbelt.com> wrote: > I think this actually isn't a good idea, but I can't find anything > outside of the kernel that's using this so I'm going to hide it. It should be in arch/x86/include/asm/auxvec.h then. ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 12/13] Hide AT_VECTOR_SIZE_ARCH behind #ifdef __KERNEL__ 2015-09-10 11:14 ` David Howells @ 2015-09-10 11:14 ` David Howells 0 siblings, 0 replies; 327+ messages in thread From: David Howells @ 2015-09-10 11:14 UTC (permalink / raw) To: Palmer Dabbelt Cc: dhowells, arnd, 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86 Palmer Dabbelt <palmer@dabbelt.com> wrote: > I think this actually isn't a good idea, but I can't find anything > outside of the kernel that's using this so I'm going to hide it. It should be in arch/x86/include/asm/auxvec.h then. ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH v3] Remove #ifdef CONFIG_* from all userspace headers 2015-09-09 21:08 ` Palmer Dabbelt ` (10 preceding siblings ...) 2015-09-09 21:08 ` [PATCH 12/13] Hide AT_VECTOR_SIZE_ARCH " Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (2 subsequent siblings) 14 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 This patch set used to be called "[PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h". This is version 3 of the patch set. I think things are kind of cleaning up, but there's still some questions I have: * #4 might be dangerous, but I think this is the best way to do it because otherwise arch maintainers will have to #define this to something. Since Xtensa already had exactly the same bug as the asm-generic header did, I think it'd be best to avoid those if possible. I'm OK changing this to define the value to 0 by default (though thinking now, I think it'd be better to not define it by default), since most kernels aren't going to have MAP_UNINITIALIZED do anything anyway. * #5 is big and I don't really understand what's going on, so it's probably broken somewhere. Also, there's some checkpatch warnings that I purposely haven't fixed: * In #5, there's a checkpatch.pl complaint about same-line struct braces. I've left that in to match the rest of the file, but I can also fix all of them if that would be better. * In #10, there's a checkpatch.pl complaint about a split printk format string, but that was there before and I don't see a way to make it a lot cleaner, so I'm leaving it alone. * In #13, there's two checkpatch.pl complains. One is about block comments that is bogus, and one is about long lines but there's more of those so I think it's OK. Thanks to everyone who looked at v2! Changes since v2 (<1441832902-28993-1-git-send-email-palmer@dabbelt.com>) * Patch set renamed. * #2 is rewritten to use sys_ni.c instead of an #ifdef * #3, #6, #8, #9, #10, and #11 no longer use "#ifdef __KERNEL__" but have instead moved the offending lines to the correct, kernel-only files. * #4 has been rewritten to always define MAP_UNINITIALIZED to non-zero, rather than defining it to zero when in userspace. * #5 got a whole lot longer -- rather than just always hiding these fields from userspace, there is now a second "struct elf_fdpic_prstatus" structure. This should allow userspace to parse core dumps correctly. * Rebased onto 9c488de24f7264f08d341024bffdd637b4d04c96. Changes since v1 (<1441152610-22566-1-git-send-email-palmer@dabbelt.com>) * All patches but #1 were added. ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH v3] Remove #ifdef CONFIG_* from all userspace headers 2015-09-09 21:08 ` Palmer Dabbelt ` (11 preceding siblings ...) 2015-09-14 22:50 ` [PATCH v3] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt [not found] ` <1441832902-28993-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> 14 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 This patch set used to be called "[PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h". This is version 3 of the patch set. I think things are kind of cleaning up, but there's still some questions I have: * #4 might be dangerous, but I think this is the best way to do it because otherwise arch maintainers will have to #define this to something. Since Xtensa already had exactly the same bug as the asm-generic header did, I think it'd be best to avoid those if possible. I'm OK changing this to define the value to 0 by default (though thinking now, I think it'd be better to not define it by default), since most kernels aren't going to have MAP_UNINITIALIZED do anything anyway. * #5 is big and I don't really understand what's going on, so it's probably broken somewhere. Also, there's some checkpatch warnings that I purposely haven't fixed: * In #5, there's a checkpatch.pl complaint about same-line struct braces. I've left that in to match the rest of the file, but I can also fix all of them if that would be better. * In #10, there's a checkpatch.pl complaint about a split printk format string, but that was there before and I don't see a way to make it a lot cleaner, so I'm leaving it alone. * In #13, there's two checkpatch.pl complains. One is about block comments that is bogus, and one is about long lines but there's more of those so I think it's OK. Thanks to everyone who looked at v2! Changes since v2 (<1441832902-28993-1-git-send-email-palmer@dabbelt.com>) * Patch set renamed. * #2 is rewritten to use sys_ni.c instead of an #ifdef * #3, #6, #8, #9, #10, and #11 no longer use "#ifdef __KERNEL__" but have instead moved the offending lines to the correct, kernel-only files. * #4 has been rewritten to always define MAP_UNINITIALIZED to non-zero, rather than defining it to zero when in userspace. * #5 got a whole lot longer -- rather than just always hiding these fields from userspace, there is now a second "struct elf_fdpic_prstatus" structure. This should allow userspace to parse core dumps correctly. * Rebased onto 9c488de24f7264f08d341024bffdd637b4d04c96. Changes since v1 (<1441152610-22566-1-git-send-email-palmer@dabbelt.com>) * All patches but #1 were added. ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH v3] Remove #ifdef CONFIG_* from all userspace headers 2015-09-09 21:08 ` Palmer Dabbelt ` (12 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt ` (42 more replies) [not found] ` <1441832902-28993-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> 14 siblings, 43 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 This patch set used to be called "[PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h". This is version 3 of the patch set. I think things are kind of cleaning up, but there's still some questions I have: * #4 might be dangerous, but I think this is the best way to do it because otherwise arch maintainers will have to #define this to something. Since Xtensa already had exactly the same bug as the asm-generic header did, I think it'd be best to avoid those if possible. I'm OK changing this to define the value to 0 by default (though thinking now, I think it'd be better to not define it by default), since most kernels aren't going to have MAP_UNINITIALIZED do anything anyway. * #5 is big and I don't really understand what's going on, so it's probably broken somewhere. Also, there's some checkpatch warnings that I purposely haven't fixed: * In #5, there's a checkpatch.pl complaint about same-line struct braces. I've left that in to match the rest of the file, but I can also fix all of them if that would be better. * In #10, there's a checkpatch.pl complaint about a split printk format string, but that was there before and I don't see a way to make it a lot cleaner, so I'm leaving it alone. * In #13, there's two checkpatch.pl complains. One is about block comments that is bogus, and one is about long lines but there's more of those so I think it's OK. Thanks to everyone who looked at v2! Changes since v2 (<1441832902-28993-1-git-send-email-palmer@dabbelt.com>) * Patch set renamed. * #2 is rewritten to use sys_ni.c instead of an #ifdef * #3, #6, #8, #9, #10, and #11 no longer use "#ifdef __KERNEL__" but have instead moved the offending lines to the correct, kernel-only files. * #4 has been rewritten to always define MAP_UNINITIALIZED to non-zero, rather than defining it to zero when in userspace. * #5 got a whole lot longer -- rather than just always hiding these fields from userspace, there is now a second "struct elf_fdpic_prstatus" structure. This should allow userspace to parse core dumps correctly. * Rebased onto 9c488de24f7264f08d341024bffdd637b4d04c96. Changes since v1 (<1441152610-22566-1-git-send-email-palmer@dabbelt.com>) * All patches but #1 were added. ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (41 subsequent siblings) 42 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063effe0cc1..14a5c8237d84 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-09-14 22:50 ` [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063effe0cc1..14a5c8237d84 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (40 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063effe0cc1..14a5c8237d84 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU Palmer Dabbelt ` (39 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063effe0cc1..14a5c8237d84 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU 2015-09-14 22:50 ` Palmer Dabbelt ` (2 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (38 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I think this change actually doesn't do anything: __NR_fork was still being defined either way, and on my machine fork() in <unistd.h> comes from libc. This just moves to the standard mechanism for defining syscalls that aren't implemented instead, which has the side-effect of no longer having an #ifdef CONFIG_* in a user-visible header. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/unistd.h | 4 ---- kernel/sys_ni.c | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index 8da542a2874d..21689284360b 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -867,11 +867,7 @@ __SYSCALL(__NR_uselib, sys_uselib) __SYSCALL(__NR__sysctl, sys_sysctl) #define __NR_fork 1079 -#ifdef CONFIG_MMU __SYSCALL(__NR_fork, sys_fork) -#else -__SYSCALL(__NR_fork, sys_ni_syscall) -#endif /* CONFIG_MMU */ #undef __NR_syscalls #define __NR_syscalls (__NR_fork+1) diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index a02decf15583..c830f7f9e36d 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -174,6 +174,7 @@ cond_syscall(sys_setfsuid); cond_syscall(sys_setfsgid); cond_syscall(sys_capget); cond_syscall(sys_capset); +cond_syscall(sys_fork); /* arch-specific weak syscall entries */ cond_syscall(sys_pciconfig_read); -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU 2015-09-14 22:50 ` Palmer Dabbelt ` (3 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (37 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I think this change actually doesn't do anything: __NR_fork was still being defined either way, and on my machine fork() in <unistd.h> comes from libc. This just moves to the standard mechanism for defining syscalls that aren't implemented instead, which has the side-effect of no longer having an #ifdef CONFIG_* in a user-visible header. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/unistd.h | 4 ---- kernel/sys_ni.c | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index 8da542a2874d..21689284360b 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -867,11 +867,7 @@ __SYSCALL(__NR_uselib, sys_uselib) __SYSCALL(__NR__sysctl, sys_sysctl) #define __NR_fork 1079 -#ifdef CONFIG_MMU __SYSCALL(__NR_fork, sys_fork) -#else -__SYSCALL(__NR_fork, sys_ni_syscall) -#endif /* CONFIG_MMU */ #undef __NR_syscalls #define __NR_syscalls (__NR_fork+1) diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index a02decf15583..c830f7f9e36d 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -174,6 +174,7 @@ cond_syscall(sys_setfsuid); cond_syscall(sys_setfsgid); cond_syscall(sys_capget); cond_syscall(sys_capset); +cond_syscall(sys_fork); /* arch-specific weak syscall entries */ cond_syscall(sys_pciconfig_read); -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU 2015-09-14 22:50 ` Palmer Dabbelt ` (4 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt ` (36 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I think this change actually doesn't do anything: __NR_fork was still being defined either way, and on my machine fork() in <unistd.h> comes from libc. This just moves to the standard mechanism for defining syscalls that aren't implemented instead, which has the side-effect of no longer having an #ifdef CONFIG_* in a user-visible header. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/unistd.h | 4 ---- kernel/sys_ni.c | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index 8da542a2874d..21689284360b 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -867,11 +867,7 @@ __SYSCALL(__NR_uselib, sys_uselib) __SYSCALL(__NR__sysctl, sys_sysctl) #define __NR_fork 1079 -#ifdef CONFIG_MMU __SYSCALL(__NR_fork, sys_fork) -#else -__SYSCALL(__NR_fork, sys_ni_syscall) -#endif /* CONFIG_MMU */ #undef __NR_syscalls #define __NR_syscalls (__NR_fork+1) diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index a02decf15583..c830f7f9e36d 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -174,6 +174,7 @@ cond_syscall(sys_setfsuid); cond_syscall(sys_setfsgid); cond_syscall(sys_capget); cond_syscall(sys_capset); +cond_syscall(sys_fork); /* arch-specific weak syscall entries */ cond_syscall(sys_pciconfig_read); -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2015-09-14 22:50 ` Palmer Dabbelt ` (5 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (35 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace wouldn't have seen the definition before. Unfortunately this header file became visible to userspace, so the definition has instead been moved to net/atm/svc.c (the only user). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/atmdev.h | 4 ---- net/atm/svc.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h index 93e0ec008ca8..3dcec701501c 100644 --- a/include/uapi/linux/atmdev.h +++ b/include/uapi/linux/atmdev.h @@ -100,10 +100,6 @@ struct atm_dev_stats { /* use backend to make new if */ #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) /* add party to p2mp call */ -#ifdef CONFIG_COMPAT -/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ -#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) -#endif #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) /* drop party from p2mp call */ diff --git a/net/atm/svc.c b/net/atm/svc.c index 3fa0a9ee98d1..9e2e6ef285e8 100644 --- a/net/atm/svc.c +++ b/net/atm/svc.c @@ -27,6 +27,11 @@ #include "signaling.h" #include "addr.h" +#ifdef CONFIG_COMPAT +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) +#endif + static int svc_create(struct net *net, struct socket *sock, int protocol, int kern); -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2015-09-14 22:50 ` Palmer Dabbelt ` (6 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (34 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace wouldn't have seen the definition before. Unfortunately this header file became visible to userspace, so the definition has instead been moved to net/atm/svc.c (the only user). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/atmdev.h | 4 ---- net/atm/svc.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h index 93e0ec008ca8..3dcec701501c 100644 --- a/include/uapi/linux/atmdev.h +++ b/include/uapi/linux/atmdev.h @@ -100,10 +100,6 @@ struct atm_dev_stats { /* use backend to make new if */ #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) /* add party to p2mp call */ -#ifdef CONFIG_COMPAT -/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ -#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) -#endif #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) /* drop party from p2mp call */ diff --git a/net/atm/svc.c b/net/atm/svc.c index 3fa0a9ee98d1..9e2e6ef285e8 100644 --- a/net/atm/svc.c +++ b/net/atm/svc.c @@ -27,6 +27,11 @@ #include "signaling.h" #include "addr.h" +#ifdef CONFIG_COMPAT +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) +#endif + static int svc_create(struct net *net, struct socket *sock, int protocol, int kern); -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2015-09-14 22:50 ` Palmer Dabbelt ` (7 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt ` (33 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace wouldn't have seen the definition before. Unfortunately this header file became visible to userspace, so the definition has instead been moved to net/atm/svc.c (the only user). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/atmdev.h | 4 ---- net/atm/svc.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h index 93e0ec008ca8..3dcec701501c 100644 --- a/include/uapi/linux/atmdev.h +++ b/include/uapi/linux/atmdev.h @@ -100,10 +100,6 @@ struct atm_dev_stats { /* use backend to make new if */ #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) /* add party to p2mp call */ -#ifdef CONFIG_COMPAT -/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ -#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) -#endif #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) /* drop party from p2mp call */ diff --git a/net/atm/svc.c b/net/atm/svc.c index 3fa0a9ee98d1..9e2e6ef285e8 100644 --- a/net/atm/svc.c +++ b/net/atm/svc.c @@ -27,6 +27,11 @@ #include "signaling.h" #include "addr.h" +#ifdef CONFIG_COMPAT +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) +#endif + static int svc_create(struct net *net, struct socket *sock, int protocol, int kern); -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-14 22:50 ` Palmer Dabbelt ` (8 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (32 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it be non-zero. While I could have kept hiding it, the man pages seem to indicate that MAP_UNINITIALIZED should be visible: mmap(2) MAP_UNINITIALIZED (since Linux 2.6.33) Don't clear anonymous pages. This flag is intended to improve performance on embedded devices. This flag is honored only if the kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED option. Because of the security implications, that option is normally enabled only on embedded devices (i.e., devices where one has complete control of the contents of user memory). and since the only time it shows up in my /usr/include is in this header I believe this should have been visible to userspace (as non-zero, which wouldn't do anything when or'd into the flags) all along. This change also applies to the xtensa version of this definition, whic is the same as the generic one. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- arch/xtensa/include/uapi/asm/mman.h | 4 +--- include/uapi/asm-generic/mman-common.h | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/arch/xtensa/include/uapi/asm/mman.h b/arch/xtensa/include/uapi/asm/mman.h index 201aec0e0446..2cbc1e717082 100644 --- a/arch/xtensa/include/uapi/asm/mman.h +++ b/arch/xtensa/include/uapi/asm/mman.h @@ -55,11 +55,9 @@ #define MAP_NONBLOCK 0x20000 /* do not block on IO */ #define MAP_STACK 0x40000 /* give out an address that is best suited for process/thread stacks */ #define MAP_HUGETLB 0x80000 /* create a huge page mapping */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be * uninitialized */ -#else -# define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif /* diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index ddc3b36f1046..7aeeb12db193 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,10 +19,8 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ -#else -# define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif #define MS_ASYNC 1 /* sync memory asynchronously */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-14 22:50 ` Palmer Dabbelt ` (9 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (31 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it be non-zero. While I could have kept hiding it, the man pages seem to indicate that MAP_UNINITIALIZED should be visible: mmap(2) MAP_UNINITIALIZED (since Linux 2.6.33) Don't clear anonymous pages. This flag is intended to improve performance on embedded devices. This flag is honored only if the kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED option. Because of the security implications, that option is normally enabled only on embedded devices (i.e., devices where one has complete control of the contents of user memory). and since the only time it shows up in my /usr/include is in this header I believe this should have been visible to userspace (as non-zero, which wouldn't do anything when or'd into the flags) all along. This change also applies to the xtensa version of this definition, whic is the same as the generic one. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- arch/xtensa/include/uapi/asm/mman.h | 4 +--- include/uapi/asm-generic/mman-common.h | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/arch/xtensa/include/uapi/asm/mman.h b/arch/xtensa/include/uapi/asm/mman.h index 201aec0e0446..2cbc1e717082 100644 --- a/arch/xtensa/include/uapi/asm/mman.h +++ b/arch/xtensa/include/uapi/asm/mman.h @@ -55,11 +55,9 @@ #define MAP_NONBLOCK 0x20000 /* do not block on IO */ #define MAP_STACK 0x40000 /* give out an address that is best suited for process/thread stacks */ #define MAP_HUGETLB 0x80000 /* create a huge page mapping */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be * uninitialized */ -#else -# define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif /* diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index ddc3b36f1046..7aeeb12db193 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,10 +19,8 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ -#else -# define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif #define MS_ASYNC 1 /* sync memory asynchronously */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
[parent not found: <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>]
* [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (26 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063effe0cc1..14a5c8237d84 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> 2015-09-14 22:50 ` [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU Palmer Dabbelt ` (25 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063effe0cc1..14a5c8237d84 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> 2015-09-14 22:50 ` [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (24 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q I think this change actually doesn't do anything: __NR_fork was still being defined either way, and on my machine fork() in <unistd.h> comes from libc. This just moves to the standard mechanism for defining syscalls that aren't implemented instead, which has the side-effect of no longer having an #ifdef CONFIG_* in a user-visible header. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/asm-generic/unistd.h | 4 ---- kernel/sys_ni.c | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index 8da542a2874d..21689284360b 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -867,11 +867,7 @@ __SYSCALL(__NR_uselib, sys_uselib) __SYSCALL(__NR__sysctl, sys_sysctl) #define __NR_fork 1079 -#ifdef CONFIG_MMU __SYSCALL(__NR_fork, sys_fork) -#else -__SYSCALL(__NR_fork, sys_ni_syscall) -#endif /* CONFIG_MMU */ #undef __NR_syscalls #define __NR_syscalls (__NR_fork+1) diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index a02decf15583..c830f7f9e36d 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -174,6 +174,7 @@ cond_syscall(sys_setfsuid); cond_syscall(sys_setfsgid); cond_syscall(sys_capget); cond_syscall(sys_capset); +cond_syscall(sys_fork); /* arch-specific weak syscall entries */ cond_syscall(sys_pciconfig_read); -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (2 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt ` (23 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt I think this change actually doesn't do anything: __NR_fork was still being defined either way, and on my machine fork() in <unistd.h> comes from libc. This just moves to the standard mechanism for defining syscalls that aren't implemented instead, which has the side-effect of no longer having an #ifdef CONFIG_* in a user-visible header. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/asm-generic/unistd.h | 4 ---- kernel/sys_ni.c | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index 8da542a2874d..21689284360b 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -867,11 +867,7 @@ __SYSCALL(__NR_uselib, sys_uselib) __SYSCALL(__NR__sysctl, sys_sysctl) #define __NR_fork 1079 -#ifdef CONFIG_MMU __SYSCALL(__NR_fork, sys_fork) -#else -__SYSCALL(__NR_fork, sys_ni_syscall) -#endif /* CONFIG_MMU */ #undef __NR_syscalls #define __NR_syscalls (__NR_fork+1) diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index a02decf15583..c830f7f9e36d 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -174,6 +174,7 @@ cond_syscall(sys_setfsuid); cond_syscall(sys_setfsgid); cond_syscall(sys_capget); cond_syscall(sys_capset); +cond_syscall(sys_fork); /* arch-specific weak syscall entries */ cond_syscall(sys_pciconfig_read); -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (3 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-17 9:57 ` David Howells 2015-09-14 22:50 ` Palmer Dabbelt ` (22 subsequent siblings) 27 siblings, 2 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace wouldn't have seen the definition before. Unfortunately this header file became visible to userspace, so the definition has instead been moved to net/atm/svc.c (the only user). Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/linux/atmdev.h | 4 ---- net/atm/svc.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h index 93e0ec008ca8..3dcec701501c 100644 --- a/include/uapi/linux/atmdev.h +++ b/include/uapi/linux/atmdev.h @@ -100,10 +100,6 @@ struct atm_dev_stats { /* use backend to make new if */ #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) /* add party to p2mp call */ -#ifdef CONFIG_COMPAT -/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ -#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) -#endif #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) /* drop party from p2mp call */ diff --git a/net/atm/svc.c b/net/atm/svc.c index 3fa0a9ee98d1..9e2e6ef285e8 100644 --- a/net/atm/svc.c +++ b/net/atm/svc.c @@ -27,6 +27,11 @@ #include "signaling.h" #include "addr.h" +#ifdef CONFIG_COMPAT +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) +#endif + static int svc_create(struct net *net, struct socket *sock, int protocol, int kern); -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2015-09-14 22:50 ` [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-17 9:57 ` David Howells 1 sibling, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace wouldn't have seen the definition before. Unfortunately this header file became visible to userspace, so the definition has instead been moved to net/atm/svc.c (the only user). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/atmdev.h | 4 ---- net/atm/svc.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h index 93e0ec008ca8..3dcec701501c 100644 --- a/include/uapi/linux/atmdev.h +++ b/include/uapi/linux/atmdev.h @@ -100,10 +100,6 @@ struct atm_dev_stats { /* use backend to make new if */ #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) /* add party to p2mp call */ -#ifdef CONFIG_COMPAT -/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ -#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) -#endif #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) /* drop party from p2mp call */ diff --git a/net/atm/svc.c b/net/atm/svc.c index 3fa0a9ee98d1..9e2e6ef285e8 100644 --- a/net/atm/svc.c +++ b/net/atm/svc.c @@ -27,6 +27,11 @@ #include "signaling.h" #include "addr.h" +#ifdef CONFIG_COMPAT +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) +#endif + static int svc_create(struct net *net, struct socket *sock, int protocol, int kern); -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* Re: [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2015-09-14 22:50 ` [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-17 9:57 ` David Howells 2015-09-17 9:57 ` David Howells 2015-09-17 20:53 ` Palmer Dabbelt 1 sibling, 2 replies; 327+ messages in thread From: David Howells @ 2015-09-17 9:57 UTC (permalink / raw) To: Palmer Dabbelt Cc: dhowells, arnd, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 Palmer Dabbelt <palmer@dabbelt.com> wrote: > +#ifdef CONFIG_COMPAT > +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ > +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) > +#endif I wonder if it would hurt to ditch the conditionals entirely. It only eats cpp namespace, not C namespace so it won't affect the output if it is not used because the code that uses it is compiled out. David ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2015-09-17 9:57 ` David Howells @ 2015-09-17 9:57 ` David Howells 2015-09-17 20:53 ` Palmer Dabbelt 1 sibling, 0 replies; 327+ messages in thread From: David Howells @ 2015-09-17 9:57 UTC (permalink / raw) To: Palmer Dabbelt Cc: dhowells, arnd, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 Palmer Dabbelt <palmer@dabbelt.com> wrote: > +#ifdef CONFIG_COMPAT > +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ > +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) > +#endif I wonder if it would hurt to ditch the conditionals entirely. It only eats cpp namespace, not C namespace so it won't affect the output if it is not used because the code that uses it is compiled out. David ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2015-09-17 9:57 ` David Howells 2015-09-17 9:57 ` David Howells @ 2015-09-17 20:53 ` Palmer Dabbelt 2015-09-17 20:53 ` Palmer Dabbelt 1 sibling, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-17 20:53 UTC (permalink / raw) Cc: dhowells, arnd, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 On Thu, 17 Sep 2015 02:57:12 PDT (-0700), dhowells@redhat.com wrote: > Palmer Dabbelt <palmer@dabbelt.com> wrote: > >> +#ifdef CONFIG_COMPAT >> +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ >> +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) >> +#endif > > I wonder if it would hurt to ditch the conditionals entirely. It only eats > cpp namespace, not C namespace so it won't affect the output if it is not used > because the code that uses it is compiled out. Makes sense to me. ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2015-09-17 20:53 ` Palmer Dabbelt @ 2015-09-17 20:53 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-17 20:53 UTC (permalink / raw) To: dhowells Cc: arnd, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 On Thu, 17 Sep 2015 02:57:12 PDT (-0700), dhowells@redhat.com wrote: > Palmer Dabbelt <palmer@dabbelt.com> wrote: > >> +#ifdef CONFIG_COMPAT >> +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ >> +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) >> +#endif > > I wonder if it would hurt to ditch the conditionals entirely. It only eats > cpp namespace, not C namespace so it won't affect the output if it is not used > because the code that uses it is compiled out. Makes sense to me. ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (4 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt ` (21 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace wouldn't have seen the definition before. Unfortunately this header file became visible to userspace, so the definition has instead been moved to net/atm/svc.c (the only user). Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/linux/atmdev.h | 4 ---- net/atm/svc.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h index 93e0ec008ca8..3dcec701501c 100644 --- a/include/uapi/linux/atmdev.h +++ b/include/uapi/linux/atmdev.h @@ -100,10 +100,6 @@ struct atm_dev_stats { /* use backend to make new if */ #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) /* add party to p2mp call */ -#ifdef CONFIG_COMPAT -/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ -#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) -#endif #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) /* drop party from p2mp call */ diff --git a/net/atm/svc.c b/net/atm/svc.c index 3fa0a9ee98d1..9e2e6ef285e8 100644 --- a/net/atm/svc.c +++ b/net/atm/svc.c @@ -27,6 +27,11 @@ #include "signaling.h" #include "addr.h" +#ifdef CONFIG_COMPAT +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) +#endif + static int svc_create(struct net *net, struct socket *sock, int protocol, int kern); -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (5 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (20 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it be non-zero. While I could have kept hiding it, the man pages seem to indicate that MAP_UNINITIALIZED should be visible: mmap(2) MAP_UNINITIALIZED (since Linux 2.6.33) Don't clear anonymous pages. This flag is intended to improve performance on embedded devices. This flag is honored only if the kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED option. Because of the security implications, that option is normally enabled only on embedded devices (i.e., devices where one has complete control of the contents of user memory). and since the only time it shows up in my /usr/include is in this header I believe this should have been visible to userspace (as non-zero, which wouldn't do anything when or'd into the flags) all along. This change also applies to the xtensa version of this definition, whic is the same as the generic one. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- arch/xtensa/include/uapi/asm/mman.h | 4 +--- include/uapi/asm-generic/mman-common.h | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/arch/xtensa/include/uapi/asm/mman.h b/arch/xtensa/include/uapi/asm/mman.h index 201aec0e0446..2cbc1e717082 100644 --- a/arch/xtensa/include/uapi/asm/mman.h +++ b/arch/xtensa/include/uapi/asm/mman.h @@ -55,11 +55,9 @@ #define MAP_NONBLOCK 0x20000 /* do not block on IO */ #define MAP_STACK 0x40000 /* give out an address that is best suited for process/thread stacks */ #define MAP_HUGETLB 0x80000 /* create a huge page mapping */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be * uninitialized */ -#else -# define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif /* diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index ddc3b36f1046..7aeeb12db193 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,10 +19,8 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ -#else -# define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif #define MS_ASYNC 1 /* sync memory asynchronously */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (6 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" Palmer Dabbelt ` (19 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it be non-zero. While I could have kept hiding it, the man pages seem to indicate that MAP_UNINITIALIZED should be visible: mmap(2) MAP_UNINITIALIZED (since Linux 2.6.33) Don't clear anonymous pages. This flag is intended to improve performance on embedded devices. This flag is honored only if the kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED option. Because of the security implications, that option is normally enabled only on embedded devices (i.e., devices where one has complete control of the contents of user memory). and since the only time it shows up in my /usr/include is in this header I believe this should have been visible to userspace (as non-zero, which wouldn't do anything when or'd into the flags) all along. This change also applies to the xtensa version of this definition, whic is the same as the generic one. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- arch/xtensa/include/uapi/asm/mman.h | 4 +--- include/uapi/asm-generic/mman-common.h | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/arch/xtensa/include/uapi/asm/mman.h b/arch/xtensa/include/uapi/asm/mman.h index 201aec0e0446..2cbc1e717082 100644 --- a/arch/xtensa/include/uapi/asm/mman.h +++ b/arch/xtensa/include/uapi/asm/mman.h @@ -55,11 +55,9 @@ #define MAP_NONBLOCK 0x20000 /* do not block on IO */ #define MAP_STACK 0x40000 /* give out an address that is best suited for process/thread stacks */ #define MAP_HUGETLB 0x80000 /* create a huge page mapping */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be * uninitialized */ -#else -# define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif /* diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index ddc3b36f1046..7aeeb12db193 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,10 +19,8 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ -#else -# define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif #define MS_ASYNC 1 /* sync memory asynchronously */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (7 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (18 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q This is a pretty big change that I haven't tested any, which worries me a lot. The general idea here is that "struct elf_prstatus" can be visible to userspace (from <linux/ptrace.h>) " Generic ptrace interface that exports the architecture specific regsets using the corresponding NT_* types (which are also used in the core dump). Please note that the NT_PRSTATUS note type in a core dump contains a full 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the other user_regset flavors, the user_regset layout and the ELF core dump note payload are exactly the same layout. " so it shouldn't have an "#ifdef CONFIG_" in there. This splits the structure into two different structures, one still named "struct elf_prstatus", and one for ELF FDPIC that is named "struct elf_fdpic_prstatus" -- the idea here is that most users are standard ELF, so that's the name that didn't change. I tried to fix all the users of "struct elf_prstatus" that should now be using "struct elf_fdpic_prstatus". The only testing I did here was to build a Blackfin defconfig with "struct elf_prstatus" not defined, and to build an x86 defconfig with "struct elf_fdpic_prstatus" not defined. Note that this fails checkpatch.pl with a complaint about wanting open braces on the same line as struct definitions. The existing struct definitions in this file have the brace a line afterwards, so I'm going to leave this alone. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- fs/binfmt_elf_fdpic.c | 6 +++--- fs/proc/kcore.c | 16 ++++++++++++++++ include/linux/kexec.h | 4 ++++ include/uapi/linux/elfcore.h | 37 +++++++++++++++++++++++++++++++++++-- kernel/kexec_core.c | 4 ++++ 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index d3634bfb7fe1..587bf0466d71 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c @@ -1323,7 +1323,7 @@ static inline void fill_note(struct memelfnote *note, const char *name, int type * fill up all the fields in prstatus from the given task struct, except * registers which need to be filled up separately. */ -static void fill_prstatus(struct elf_prstatus *prstatus, +static void fill_prstatus(struct elf_fdpic_prstatus *prstatus, struct task_struct *p, long signr) { prstatus->pr_info.si_signo = prstatus->pr_cursig = signr; @@ -1406,7 +1406,7 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p, struct elf_thread_status { struct list_head list; - struct elf_prstatus prstatus; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ elf_fpregset_t fpu; /* NT_PRFPREG */ struct task_struct *thread; #ifdef ELF_CORE_COPY_XFPREGS @@ -1539,7 +1539,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) loff_t offset = 0, dataoff; int numnote; struct memelfnote *notes = NULL; - struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus *prstatus = NULL; /* NT_PRSTATUS */ struct elf_prpsinfo *psinfo = NULL; /* NT_PRPSINFO */ LIST_HEAD(thread_list); struct list_head *t; diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c index 92e6726f6e37..b1edd77ec854 100644 --- a/fs/proc/kcore.c +++ b/fs/proc/kcore.c @@ -90,7 +90,11 @@ static size_t get_kcore_size(int *nphdr, size_t *elf_buflen) (*nphdr + 2)*sizeof(struct elf_phdr) + 3 * ((sizeof(struct elf_note)) + roundup(sizeof(CORE_STR), 4)) + +#ifdef CONFIG_BINFMT_ELF_FDPIC + roundup(sizeof(struct elf_fdpic_prstatus), 4) + +#else roundup(sizeof(struct elf_prstatus), 4) + +#endif roundup(sizeof(struct elf_prpsinfo), 4) + roundup(arch_task_struct_size, 4); *elf_buflen = PAGE_ALIGN(*elf_buflen); @@ -318,7 +322,11 @@ static char *storenote(struct memelfnote *men, char *bufp) */ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ +#else struct elf_prstatus prstatus; /* NT_PRSTATUS */ +#endif struct elf_prpsinfo prpsinfo; /* NT_PRPSINFO */ struct elf_phdr *nhdr, *phdr; struct elfhdr *elf; @@ -387,10 +395,18 @@ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) /* set up the process status */ notes[0].name = CORE_STR; notes[0].type = NT_PRSTATUS; +#ifdef CONFIG_BINFMT_ELF_FDPIC + notes[0].datasz = sizeof(struct elf_fdpic_prstatus); +#else notes[0].datasz = sizeof(struct elf_prstatus); +#endif notes[0].data = &prstatus; +#ifdef CONFIG_BINFMT_ELF_FDPIC + memset(&prstatus, 0, sizeof(struct elf_fdpic_prstatus)); +#else memset(&prstatus, 0, sizeof(struct elf_prstatus)); +#endif nhdr->p_filesz = notesize(¬es[0]); bufp = storenote(¬es[0], bufp); diff --git a/include/linux/kexec.h b/include/linux/kexec.h index d140b1e9faa7..d9196ccd3781 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -63,7 +63,11 @@ #define KEXEC_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4) #define KEXEC_CORE_NOTE_NAME "CORE" #define KEXEC_CORE_NOTE_NAME_BYTES ALIGN(sizeof(KEXEC_CORE_NOTE_NAME), 4) +#ifdef CONFIG_BINFMT_ELF_FDPIC +#define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_fdpic_prstatus), 4) +#else #define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_prstatus), 4) +#endif /* * The per-cpu notes area is a list of notes terminated by a "NULL" * note header. For kdump, the code in vmcore.c runs in the context diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h index 569737cfb557..697c52db0227 100644 --- a/include/uapi/linux/elfcore.h +++ b/include/uapi/linux/elfcore.h @@ -60,7 +60,40 @@ struct elf_prstatus long pr_instr; /* Current instruction */ #endif elf_gregset_t pr_reg; /* GP registers */ -#ifdef CONFIG_BINFMT_ELF_FDPIC + int pr_fpvalid; /* True if math co-processor being used. */ +}; + +/* Architectures that set CONFIG_BINFMT_ELF_FDPIC use this instead of + * "struct elf_prstatus". + */ +struct elf_fdpic_prstatus +{ +#if 0 + long pr_flags; /* XXX Process flags */ + short pr_why; /* XXX Reason for process halt */ + short pr_what; /* XXX More detailed reason */ +#endif + struct elf_siginfo pr_info; /* Info associated with signal */ + short pr_cursig; /* Current signal */ + unsigned long pr_sigpend; /* Set of pending signals */ + unsigned long pr_sighold; /* Set of held signals */ +#if 0 + struct sigaltstack pr_altstack; /* Alternate stack info */ + struct sigaction pr_action; /* Signal action for current sig */ +#endif + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct timeval pr_utime; /* User time */ + struct timeval pr_stime; /* System time */ + struct timeval pr_cutime; /* Cumulative user time */ + struct timeval pr_cstime; /* Cumulative system time */ +#if 0 + long pr_instr; /* Current instruction */ +#endif + elf_gregset_t pr_reg; /* GP registers */ + /* When using FDPIC, the loadmap addresses need to be communicated * to GDB in order for GDB to do the necessary relocations. The * fields (below) used to communicate this information are placed @@ -69,7 +102,7 @@ struct elf_prstatus */ unsigned long pr_exec_fdpic_loadmap; unsigned long pr_interp_fdpic_loadmap; -#endif + int pr_fpvalid; /* True if math co-processor being used. */ }; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 201b45327804..8d2fc707fecf 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -977,7 +977,11 @@ static void final_note(u32 *buf) void crash_save_cpu(struct pt_regs *regs, int cpu) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; +#else struct elf_prstatus prstatus; +#endif u32 *buf; if ((cpu < 0) || (cpu >= nr_cpu_ids)) -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (8 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c Palmer Dabbelt ` (17 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt This is a pretty big change that I haven't tested any, which worries me a lot. The general idea here is that "struct elf_prstatus" can be visible to userspace (from <linux/ptrace.h>) " Generic ptrace interface that exports the architecture specific regsets using the corresponding NT_* types (which are also used in the core dump). Please note that the NT_PRSTATUS note type in a core dump contains a full 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the other user_regset flavors, the user_regset layout and the ELF core dump note payload are exactly the same layout. " so it shouldn't have an "#ifdef CONFIG_" in there. This splits the structure into two different structures, one still named "struct elf_prstatus", and one for ELF FDPIC that is named "struct elf_fdpic_prstatus" -- the idea here is that most users are standard ELF, so that's the name that didn't change. I tried to fix all the users of "struct elf_prstatus" that should now be using "struct elf_fdpic_prstatus". The only testing I did here was to build a Blackfin defconfig with "struct elf_prstatus" not defined, and to build an x86 defconfig with "struct elf_fdpic_prstatus" not defined. Note that this fails checkpatch.pl with a complaint about wanting open braces on the same line as struct definitions. The existing struct definitions in this file have the brace a line afterwards, so I'm going to leave this alone. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- fs/binfmt_elf_fdpic.c | 6 +++--- fs/proc/kcore.c | 16 ++++++++++++++++ include/linux/kexec.h | 4 ++++ include/uapi/linux/elfcore.h | 37 +++++++++++++++++++++++++++++++++++-- kernel/kexec_core.c | 4 ++++ 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index d3634bfb7fe1..587bf0466d71 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c @@ -1323,7 +1323,7 @@ static inline void fill_note(struct memelfnote *note, const char *name, int type * fill up all the fields in prstatus from the given task struct, except * registers which need to be filled up separately. */ -static void fill_prstatus(struct elf_prstatus *prstatus, +static void fill_prstatus(struct elf_fdpic_prstatus *prstatus, struct task_struct *p, long signr) { prstatus->pr_info.si_signo = prstatus->pr_cursig = signr; @@ -1406,7 +1406,7 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p, struct elf_thread_status { struct list_head list; - struct elf_prstatus prstatus; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ elf_fpregset_t fpu; /* NT_PRFPREG */ struct task_struct *thread; #ifdef ELF_CORE_COPY_XFPREGS @@ -1539,7 +1539,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) loff_t offset = 0, dataoff; int numnote; struct memelfnote *notes = NULL; - struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus *prstatus = NULL; /* NT_PRSTATUS */ struct elf_prpsinfo *psinfo = NULL; /* NT_PRPSINFO */ LIST_HEAD(thread_list); struct list_head *t; diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c index 92e6726f6e37..b1edd77ec854 100644 --- a/fs/proc/kcore.c +++ b/fs/proc/kcore.c @@ -90,7 +90,11 @@ static size_t get_kcore_size(int *nphdr, size_t *elf_buflen) (*nphdr + 2)*sizeof(struct elf_phdr) + 3 * ((sizeof(struct elf_note)) + roundup(sizeof(CORE_STR), 4)) + +#ifdef CONFIG_BINFMT_ELF_FDPIC + roundup(sizeof(struct elf_fdpic_prstatus), 4) + +#else roundup(sizeof(struct elf_prstatus), 4) + +#endif roundup(sizeof(struct elf_prpsinfo), 4) + roundup(arch_task_struct_size, 4); *elf_buflen = PAGE_ALIGN(*elf_buflen); @@ -318,7 +322,11 @@ static char *storenote(struct memelfnote *men, char *bufp) */ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ +#else struct elf_prstatus prstatus; /* NT_PRSTATUS */ +#endif struct elf_prpsinfo prpsinfo; /* NT_PRPSINFO */ struct elf_phdr *nhdr, *phdr; struct elfhdr *elf; @@ -387,10 +395,18 @@ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) /* set up the process status */ notes[0].name = CORE_STR; notes[0].type = NT_PRSTATUS; +#ifdef CONFIG_BINFMT_ELF_FDPIC + notes[0].datasz = sizeof(struct elf_fdpic_prstatus); +#else notes[0].datasz = sizeof(struct elf_prstatus); +#endif notes[0].data = &prstatus; +#ifdef CONFIG_BINFMT_ELF_FDPIC + memset(&prstatus, 0, sizeof(struct elf_fdpic_prstatus)); +#else memset(&prstatus, 0, sizeof(struct elf_prstatus)); +#endif nhdr->p_filesz = notesize(¬es[0]); bufp = storenote(¬es[0], bufp); diff --git a/include/linux/kexec.h b/include/linux/kexec.h index d140b1e9faa7..d9196ccd3781 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -63,7 +63,11 @@ #define KEXEC_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4) #define KEXEC_CORE_NOTE_NAME "CORE" #define KEXEC_CORE_NOTE_NAME_BYTES ALIGN(sizeof(KEXEC_CORE_NOTE_NAME), 4) +#ifdef CONFIG_BINFMT_ELF_FDPIC +#define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_fdpic_prstatus), 4) +#else #define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_prstatus), 4) +#endif /* * The per-cpu notes area is a list of notes terminated by a "NULL" * note header. For kdump, the code in vmcore.c runs in the context diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h index 569737cfb557..697c52db0227 100644 --- a/include/uapi/linux/elfcore.h +++ b/include/uapi/linux/elfcore.h @@ -60,7 +60,40 @@ struct elf_prstatus long pr_instr; /* Current instruction */ #endif elf_gregset_t pr_reg; /* GP registers */ -#ifdef CONFIG_BINFMT_ELF_FDPIC + int pr_fpvalid; /* True if math co-processor being used. */ +}; + +/* Architectures that set CONFIG_BINFMT_ELF_FDPIC use this instead of + * "struct elf_prstatus". + */ +struct elf_fdpic_prstatus +{ +#if 0 + long pr_flags; /* XXX Process flags */ + short pr_why; /* XXX Reason for process halt */ + short pr_what; /* XXX More detailed reason */ +#endif + struct elf_siginfo pr_info; /* Info associated with signal */ + short pr_cursig; /* Current signal */ + unsigned long pr_sigpend; /* Set of pending signals */ + unsigned long pr_sighold; /* Set of held signals */ +#if 0 + struct sigaltstack pr_altstack; /* Alternate stack info */ + struct sigaction pr_action; /* Signal action for current sig */ +#endif + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct timeval pr_utime; /* User time */ + struct timeval pr_stime; /* System time */ + struct timeval pr_cutime; /* Cumulative user time */ + struct timeval pr_cstime; /* Cumulative system time */ +#if 0 + long pr_instr; /* Current instruction */ +#endif + elf_gregset_t pr_reg; /* GP registers */ + /* When using FDPIC, the loadmap addresses need to be communicated * to GDB in order for GDB to do the necessary relocations. The * fields (below) used to communicate this information are placed @@ -69,7 +102,7 @@ struct elf_prstatus */ unsigned long pr_exec_fdpic_loadmap; unsigned long pr_interp_fdpic_loadmap; -#endif + int pr_fpvalid; /* True if math co-processor being used. */ }; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 201b45327804..8d2fc707fecf 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -977,7 +977,11 @@ static void final_note(u32 *buf) void crash_save_cpu(struct pt_regs *regs, int cpu) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; +#else struct elf_prstatus prstatus; +#endif u32 *buf; if ((cpu < 0) || (cpu >= nr_cpu_ids)) -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (9 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (16 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q This doesn't make any sense to expose to userspace, so it's been moved to the one user. This was introduced by commit 95f19f658ce1 ("epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled"). Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- fs/eventpoll.c | 13 +++++++++++++ include/uapi/linux/eventpoll.h | 12 ------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 1e009cad8d5c..aadee3d1931a 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1812,6 +1812,19 @@ SYSCALL_DEFINE1(epoll_create, int, size) return sys_epoll_create1(0); } +#ifdef CONFIG_PM_SLEEP +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) + epev->events &= ~EPOLLWAKEUP; +} +#else +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + epev->events &= ~EPOLLWAKEUP; +} +#endif + /* * The following function implements the controller interface for * the eventpoll file that enables the insertion/removal/change of diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2e1f0e..7850373079ee 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,16 +61,4 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; -#ifdef CONFIG_PM_SLEEP -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) - epev->events &= ~EPOLLWAKEUP; -} -#else -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - epev->events &= ~EPOLLWAKEUP; -} -#endif #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (10 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt ` (15 subsequent siblings) 27 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt This doesn't make any sense to expose to userspace, so it's been moved to the one user. This was introduced by commit 95f19f658ce1 ("epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled"). Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- fs/eventpoll.c | 13 +++++++++++++ include/uapi/linux/eventpoll.h | 12 ------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 1e009cad8d5c..aadee3d1931a 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1812,6 +1812,19 @@ SYSCALL_DEFINE1(epoll_create, int, size) return sys_epoll_create1(0); } +#ifdef CONFIG_PM_SLEEP +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) + epev->events &= ~EPOLLWAKEUP; +} +#else +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + epev->events &= ~EPOLLWAKEUP; +} +#endif + /* * The following function implements the controller interface for * the eventpoll file that enables the insertion/removal/change of diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2e1f0e..7850373079ee 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,16 +61,4 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; -#ifdef CONFIG_PM_SLEEP -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) - epev->events &= ~EPOLLWAKEUP; -} -#else -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - epev->events &= ~EPOLLWAKEUP; -} -#endif #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This doesn't make any sense to expose to userspace, so it's been moved to the one user. This was introduced by commit 95f19f658ce1 ("epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled"). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/eventpoll.c | 13 +++++++++++++ include/uapi/linux/eventpoll.h | 12 ------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 1e009cad8d5c..aadee3d1931a 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1812,6 +1812,19 @@ SYSCALL_DEFINE1(epoll_create, int, size) return sys_epoll_create1(0); } +#ifdef CONFIG_PM_SLEEP +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) + epev->events &= ~EPOLLWAKEUP; +} +#else +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + epev->events &= ~EPOLLWAKEUP; +} +#endif + /* * The following function implements the controller interface for * the eventpoll file that enables the insertion/removal/change of diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2e1f0e..7850373079ee 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,16 +61,4 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; -#ifdef CONFIG_PM_SLEEP -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) - epev->events &= ~EPOLLWAKEUP; -} -#else -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - epev->events &= ~EPOLLWAKEUP; -} -#endif #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (11 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (14 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt Nothing else in the kernel defines this, and this header is visible to userspace. Rather than hiding it in an #ifdef, I think it's sane to just make this visible to userspace. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/linux/fb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h index fb795c3b3c17..8926f13bc19f 100644 --- a/include/uapi/linux/fb.h +++ b/include/uapi/linux/fb.h @@ -392,11 +392,8 @@ struct fb_cursor { struct fb_image image; /* Cursor image */ }; -#ifdef CONFIG_FB_BACKLIGHT /* Settings for the generic backlight code */ #define FB_BACKLIGHT_LEVELS 128 #define FB_BACKLIGHT_MAX 0xFF -#endif - #endif /* _UAPI_LINUX_FB_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (12 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt ` (13 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q Nothing else in the kernel defines this, and this header is visible to userspace. Rather than hiding it in an #ifdef, I think it's sane to just make this visible to userspace. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/linux/fb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h index fb795c3b3c17..8926f13bc19f 100644 --- a/include/uapi/linux/fb.h +++ b/include/uapi/linux/fb.h @@ -392,11 +392,8 @@ struct fb_cursor { struct fb_image image; /* Cursor image */ }; -#ifdef CONFIG_FB_BACKLIGHT /* Settings for the generic backlight code */ #define FB_BACKLIGHT_LEVELS 128 #define FB_BACKLIGHT_MAX 0xFF -#endif - #endif /* _UAPI_LINUX_FB_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (13 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (12 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- fs/binfmt_flat.c | 6 ++++++ include/uapi/linux/flat.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index f723cd3a455c..e89fb43c2a10 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -72,6 +72,12 @@ #define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */ #define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */ +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + struct lib_info { struct { unsigned long start_code; /* Start of text segment */ diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6baba8f3..1b177c7637c4 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,12 +13,6 @@ #define FLAT_VERSION 0x00000004L -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define MAX_SHARED_LIBS (4) -#else -#define MAX_SHARED_LIBS (1) -#endif - /* * To make everything easier to port and manage cross platform * development, all fields are in network byte order. -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (14 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c Palmer Dabbelt ` (11 subsequent siblings) 27 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- fs/binfmt_flat.c | 6 ++++++ include/uapi/linux/flat.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index f723cd3a455c..e89fb43c2a10 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -72,6 +72,12 @@ #define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */ #define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */ +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + struct lib_info { struct { unsigned long start_code; /* Start of text segment */ diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6baba8f3..1b177c7637c4 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,12 +13,6 @@ #define FLAT_VERSION 0x00000004L -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define MAX_SHARED_LIBS (4) -#else -#define MAX_SHARED_LIBS (1) -#endif - /* * To make everything easier to port and manage cross platform * development, all fields are in network byte order. -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_flat.c | 6 ++++++ include/uapi/linux/flat.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index f723cd3a455c..e89fb43c2a10 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -72,6 +72,12 @@ #define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */ #define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */ +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + struct lib_info { struct { unsigned long start_code; /* Start of text segment */ diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6baba8f3..1b177c7637c4 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,12 +13,6 @@ #define FLAT_VERSION 0x00000004L -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define MAX_SHARED_LIBS (4) -#else -#define MAX_SHARED_LIBS (1) -#endif - /* * To make everything easier to port and manage cross platform * development, all fields are in network byte order. -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (15 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (10 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q This has a "#ifdef CONFIG_*" that used to be exposed to userspace. The names in here are so generic that I don't think it's a good idea to expose them to userspace (or even the rest of the kernel). Since there's only one kernel user, it's been moved to that file. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/linux/hw_breakpoint.h | 10 ---------- kernel/events/hw_breakpoint.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h index b04000a2296a..7a6a5a7f9511 100644 --- a/include/uapi/linux/hw_breakpoint.h +++ b/include/uapi/linux/hw_breakpoint.h @@ -17,14 +17,4 @@ enum { HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, }; -enum bp_type_idx { - TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS - TYPE_DATA = 0, -#else - TYPE_DATA = 1, -#endif - TYPE_MAX -}; - #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c index 92ce5f4ccc26..5ad117e0f55b 100644 --- a/kernel/events/hw_breakpoint.c +++ b/kernel/events/hw_breakpoint.c @@ -58,6 +58,16 @@ struct bp_cpuinfo { unsigned int flexible; /* XXX: placeholder, see fetch_this_slot() */ }; +enum bp_type_idx { + TYPE_INST = 0, +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + static DEFINE_PER_CPU(struct bp_cpuinfo, bp_cpuinfo[TYPE_MAX]); static int nr_slots[TYPE_MAX]; -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (16 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt ` (9 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt This has a "#ifdef CONFIG_*" that used to be exposed to userspace. The names in here are so generic that I don't think it's a good idea to expose them to userspace (or even the rest of the kernel). Since there's only one kernel user, it's been moved to that file. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/linux/hw_breakpoint.h | 10 ---------- kernel/events/hw_breakpoint.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h index b04000a2296a..7a6a5a7f9511 100644 --- a/include/uapi/linux/hw_breakpoint.h +++ b/include/uapi/linux/hw_breakpoint.h @@ -17,14 +17,4 @@ enum { HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, }; -enum bp_type_idx { - TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS - TYPE_DATA = 0, -#else - TYPE_DATA = 1, -#endif - TYPE_MAX -}; - #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c index 92ce5f4ccc26..5ad117e0f55b 100644 --- a/kernel/events/hw_breakpoint.c +++ b/kernel/events/hw_breakpoint.c @@ -58,6 +58,16 @@ struct bp_cpuinfo { unsigned int flexible; /* XXX: placeholder, see fetch_this_slot() */ }; +enum bp_type_idx { + TYPE_INST = 0, +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + static DEFINE_PER_CPU(struct bp_cpuinfo, bp_cpuinfo[TYPE_MAX]); static int nr_slots[TYPE_MAX]; -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (17 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (8 subsequent siblings) 27 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt I don't think this was ever intended to be exposed to userspace, but it did require an "#ifdef CONFIG_*". Since the name is kind of generic and was only used in one place, I've moved the definition to the one user. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- drivers/block/pktcdvd.c | 11 +++++++++++ include/uapi/linux/pktcdvd.h | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 7be2375db7f2..18d2d05f5ac9 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -90,6 +90,17 @@ do { \ #define MAX_SPEED 0xffff +/* + * use drive write caching -- we need deferred error handling to be + * able to successfully recover with this option (drive will return good + * status as soon as the cdb is validated). + */ +#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) +#define USE_WCACHING 1 +#else +#define USE_WCACHING 0 +#endif + static DEFINE_MUTEX(pktcdvd_mutex); static struct pktcdvd_device *pkt_devs[MAX_WRITERS]; static struct proc_dir_entry *pkt_proc; diff --git a/include/uapi/linux/pktcdvd.h b/include/uapi/linux/pktcdvd.h index 2640b9d4e243..05c2bee70d6c 100644 --- a/include/uapi/linux/pktcdvd.h +++ b/include/uapi/linux/pktcdvd.h @@ -29,17 +29,6 @@ #define PACKET_WAIT_TIME (HZ * 5 / 1000) /* - * use drive write caching -- we need deferred error handling to be - * able to successfully recover with this option (drive will return good - * status as soon as the cdb is validated). - */ -#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) -#define USE_WCACHING 1 -#else -#define USE_WCACHING 0 -#endif - -/* * No user-servicable parts beyond this point -> */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c 2015-09-14 22:50 ` [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I don't think this was ever intended to be exposed to userspace, but it did require an "#ifdef CONFIG_*". Since the name is kind of generic and was only used in one place, I've moved the definition to the one user. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/block/pktcdvd.c | 11 +++++++++++ include/uapi/linux/pktcdvd.h | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 7be2375db7f2..18d2d05f5ac9 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -90,6 +90,17 @@ do { \ #define MAX_SPEED 0xffff +/* + * use drive write caching -- we need deferred error handling to be + * able to successfully recover with this option (drive will return good + * status as soon as the cdb is validated). + */ +#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) +#define USE_WCACHING 1 +#else +#define USE_WCACHING 0 +#endif + static DEFINE_MUTEX(pktcdvd_mutex); static struct pktcdvd_device *pkt_devs[MAX_WRITERS]; static struct proc_dir_entry *pkt_proc; diff --git a/include/uapi/linux/pktcdvd.h b/include/uapi/linux/pktcdvd.h index 2640b9d4e243..05c2bee70d6c 100644 --- a/include/uapi/linux/pktcdvd.h +++ b/include/uapi/linux/pktcdvd.h @@ -29,17 +29,6 @@ #define PACKET_WAIT_TIME (HZ * 5 / 1000) /* - * use drive write caching -- we need deferred error handling to be - * able to successfully recover with this option (drive will return good - * status as soon as the cdb is validated). - */ -#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) -#define USE_WCACHING 1 -#else -#define USE_WCACHING 0 -#endif - -/* * No user-servicable parts beyond this point -> */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (18 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 11/13] Always define MAX_RAW_MINORS as 65535 in userspace Palmer Dabbelt ` (7 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q I don't think this was ever intended to be exposed to userspace, but it did require an "#ifdef CONFIG_*". Since the name is kind of generic and was only used in one place, I've moved the definition to the one user. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- drivers/block/pktcdvd.c | 11 +++++++++++ include/uapi/linux/pktcdvd.h | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 7be2375db7f2..18d2d05f5ac9 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -90,6 +90,17 @@ do { \ #define MAX_SPEED 0xffff +/* + * use drive write caching -- we need deferred error handling to be + * able to successfully recover with this option (drive will return good + * status as soon as the cdb is validated). + */ +#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) +#define USE_WCACHING 1 +#else +#define USE_WCACHING 0 +#endif + static DEFINE_MUTEX(pktcdvd_mutex); static struct pktcdvd_device *pkt_devs[MAX_WRITERS]; static struct proc_dir_entry *pkt_proc; diff --git a/include/uapi/linux/pktcdvd.h b/include/uapi/linux/pktcdvd.h index 2640b9d4e243..05c2bee70d6c 100644 --- a/include/uapi/linux/pktcdvd.h +++ b/include/uapi/linux/pktcdvd.h @@ -29,17 +29,6 @@ #define PACKET_WAIT_TIME (HZ * 5 / 1000) /* - * use drive write caching -- we need deferred error handling to be - * able to successfully recover with this option (drive will return good - * status as soon as the cdb is validated). - */ -#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) -#define USE_WCACHING 1 -#else -#define USE_WCACHING 0 -#endif - -/* * No user-servicable parts beyond this point -> */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 11/13] Always define MAX_RAW_MINORS as 65535 in userspace [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (19 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (6 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q While I don't think this was ever meant to be exposed to userspace, if anyone is using it then this will at least provide a correct (if unlikely) definition. MAX_RAW_MINORS used to be used in the kernel, where it's been replaced with CONFIG_MAX_RAW_MINORS. Note that there's a checkpatch.pl warning about a split config string here, but I've left that alone. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- drivers/char/raw.c | 7 ++++--- include/uapi/linux/raw.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 60316fbaf295..362d7a6511b9 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -36,7 +36,7 @@ static struct raw_device_data *raw_devices; static DEFINE_MUTEX(raw_mutex); static const struct file_operations raw_ctl_fops; /* forward declaration */ -static int max_raw_minors = MAX_RAW_MINORS; +static int max_raw_minors = CONFIG_MAX_RAW_MINORS; module_param(max_raw_minors, int, 0); MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); @@ -317,8 +317,9 @@ static int __init raw_init(void) if (max_raw_minors < 1 || max_raw_minors > 65536) { printk(KERN_WARNING "raw: invalid max_raw_minors (must be" - " between 1 and 65536), using %d\n", MAX_RAW_MINORS); - max_raw_minors = MAX_RAW_MINORS; + " between 1 and 65536), using %d\n", + CONFIG_MAX_RAW_MINORS); + max_raw_minors = CONFIG_MAX_RAW_MINORS; } raw_devices = vzalloc(sizeof(struct raw_device_data) * max_raw_minors); diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e70603..f0390b3e8530 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,6 @@ struct raw_config_request __u64 block_minor; }; -#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#define MAX_RAW_MINORS 65535 #endif /* __LINUX_RAW_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 11/13] Always define MAX_RAW_MINORS as 65535 in userspace [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (20 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 11/13] Always define MAX_RAW_MINORS as 65535 in userspace Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 Palmer Dabbelt ` (5 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt While I don't think this was ever meant to be exposed to userspace, if anyone is using it then this will at least provide a correct (if unlikely) definition. MAX_RAW_MINORS used to be used in the kernel, where it's been replaced with CONFIG_MAX_RAW_MINORS. Note that there's a checkpatch.pl warning about a split config string here, but I've left that alone. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- drivers/char/raw.c | 7 ++++--- include/uapi/linux/raw.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 60316fbaf295..362d7a6511b9 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -36,7 +36,7 @@ static struct raw_device_data *raw_devices; static DEFINE_MUTEX(raw_mutex); static const struct file_operations raw_ctl_fops; /* forward declaration */ -static int max_raw_minors = MAX_RAW_MINORS; +static int max_raw_minors = CONFIG_MAX_RAW_MINORS; module_param(max_raw_minors, int, 0); MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); @@ -317,8 +317,9 @@ static int __init raw_init(void) if (max_raw_minors < 1 || max_raw_minors > 65536) { printk(KERN_WARNING "raw: invalid max_raw_minors (must be" - " between 1 and 65536), using %d\n", MAX_RAW_MINORS); - max_raw_minors = MAX_RAW_MINORS; + " between 1 and 65536), using %d\n", + CONFIG_MAX_RAW_MINORS); + max_raw_minors = CONFIG_MAX_RAW_MINORS; } raw_devices = vzalloc(sizeof(struct raw_device_data) * max_raw_minors); diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e70603..f0390b3e8530 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,6 @@ struct raw_config_request __u64 block_minor; }; -#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#define MAX_RAW_MINORS 65535 #endif /* __LINUX_RAW_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (21 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (4 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt It looks like there aren't actually users of this macro anywhere: * The kernel doesn't use it on x86 because we don't suppor ELF FDPIC. * The only Google results point to LMKL patches, both the one that wrote this (from 2010) and my patch to hide it behind __KERNEL__. * I grep'd through all the source tarballs on my machine, and the only packages that matched were the kernel and crui (which copied a PPC kernel header). Since I'm not sure how to actually provide the right answer (if I understand correctly, CONFIG_IA32_EMULATION is not __i386__), the only thing I can think of to do is to just remove the definition. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- arch/x86/include/uapi/asm/auxvec.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm/auxvec.h index 77203ac352de..1316b4c35425 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -9,11 +9,4 @@ #endif #define AT_SYSINFO_EHDR 33 -/* entries in ARCH_DLINFO: */ -#if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) -# define AT_VECTOR_SIZE_ARCH 2 -#else /* else it's non-compat x86-64 */ -# define AT_VECTOR_SIZE_ARCH 1 -#endif - #endif /* _ASM_X86_AUXVEC_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (22 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt ` (3 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q It looks like there aren't actually users of this macro anywhere: * The kernel doesn't use it on x86 because we don't suppor ELF FDPIC. * The only Google results point to LMKL patches, both the one that wrote this (from 2010) and my patch to hide it behind __KERNEL__. * I grep'd through all the source tarballs on my machine, and the only packages that matched were the kernel and crui (which copied a PPC kernel header). Since I'm not sure how to actually provide the right answer (if I understand correctly, CONFIG_IA32_EMULATION is not __i386__), the only thing I can think of to do is to just remove the definition. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- arch/x86/include/uapi/asm/auxvec.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm/auxvec.h index 77203ac352de..1316b4c35425 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -9,11 +9,4 @@ #endif #define AT_SYSINFO_EHDR 33 -/* entries in ARCH_DLINFO: */ -#if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) -# define AT_VECTOR_SIZE_ARCH 2 -#else /* else it's non-compat x86-64 */ -# define AT_VECTOR_SIZE_ARCH 1 -#endif - #endif /* _ASM_X86_AUXVEC_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (23 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (2 subsequent siblings) 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q I recently got bit by a CONFIG_ in userspace bug. This has apparently happened before, but the check got disabled for triggering too much. In order to reduce false positives, I added some hueristics to avoid detecting comments. Since these tests all pass, I've now re-enabled them. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- scripts/headers_check.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 62320f93e903..dd413ad9c850 100755 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl @@ -40,7 +40,7 @@ foreach my $file (@files) { &check_asm_types(); &check_sizetypes(); &check_declarations(); - # Dropped for now. Too much noise &check_config(); + &check_config(); } close $fh; } @@ -76,9 +76,24 @@ sub check_declarations } } +my $check_config_in_multiline_comment = 0; sub check_config { - if ($line =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { + my $nocomments = $line; + $nocomments =~ s/\/\*.*\*\///; # Remove ANSI-style comments (/* to */) + $nocomments =~ s/\/\/.*//; # Remove C99-style comments (// to EOL) + + # Check to see if we're within a multiline comment, and if so + # just remove the whole line. I tried matching on '^ * ', but + # there's one header that doesn't prepend multi-line comments + # with * so that won't work. + if ($nocomments =~ m/\/\*/) { $check_config_in_multiline_comment = 1; } + if ($nocomments =~ m/\*\//) { $check_config_in_multiline_comment = 0; } + if ($check_config_in_multiline_comment == 1) { $nocomments = "" } + + # Check to see if there is something that looks like CONFIG_ + # inside a userspace-accessible header file and if so, print that out. + if ($nocomments =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n"; } } -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (24 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt I recently got bit by a CONFIG_ in userspace bug. This has apparently happened before, but the check got disabled for triggering too much. In order to reduce false positives, I added some hueristics to avoid detecting comments. Since these tests all pass, I've now re-enabled them. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- scripts/headers_check.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 62320f93e903..dd413ad9c850 100755 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl @@ -40,7 +40,7 @@ foreach my $file (@files) { &check_asm_types(); &check_sizetypes(); &check_declarations(); - # Dropped for now. Too much noise &check_config(); + &check_config(); } close $fh; } @@ -76,9 +76,24 @@ sub check_declarations } } +my $check_config_in_multiline_comment = 0; sub check_config { - if ($line =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { + my $nocomments = $line; + $nocomments =~ s/\/\*.*\*\///; # Remove ANSI-style comments (/* to */) + $nocomments =~ s/\/\/.*//; # Remove C99-style comments (// to EOL) + + # Check to see if we're within a multiline comment, and if so + # just remove the whole line. I tried matching on '^ * ', but + # there's one header that doesn't prepend multi-line comments + # with * so that won't work. + if ($nocomments =~ m/\/\*/) { $check_config_in_multiline_comment = 1; } + if ($nocomments =~ m/\*\//) { $check_config_in_multiline_comment = 0; } + if ($check_config_in_multiline_comment == 1) { $nocomments = "" } + + # Check to see if there is something that looks like CONFIG_ + # inside a userspace-accessible header file and if so, print that out. + if ($nocomments =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n"; } } -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (25 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A I think this is good to go. There are two acks, but I wasn't sure if I was supposed to collect them in the patches or not. Arnd Bergman acked #1 and #7. Changes since v3 (<1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>) * #4 is very different: rather than defining a canonical value for MAP_UNINITIALIZED, it just punts on the problem and lets arch maintainers deal with it. There's still an #ifndef MAP_UNINITIALIZED in there, but that shouldn't get triggered by anything because the arch headers should set it to whatever they actually want. * #11 defines MAX_RAW_MINORS to 2^20 instead of 2^16. * #13 moves the variable around a bit so it gets initialized. I forgot I was in perl and not C :). Changes since v2 (<1441832902-28993-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>) * Patch set renamed. * #2 is rewritten to use sys_ni.c instead of an #ifdef * #3, #6, #8, #9, #10, and #11 no longer use "#ifdef __KERNEL__" but have instead moved the offending lines to the correct, kernel-only files. * #4 has been rewritten to always define MAP_UNINITIALIZED to non-zero, rather than defining it to zero when in userspace. * #5 got a whole lot longer -- rather than just always hiding these fields from userspace, there is now a second "struct elf_fdpic_prstatus" structure. This should allow userspace to parse core dumps correctly. * Rebased onto 9c488de24f7264f08d341024bffdd637b4d04c96. Changes since v1 (<1441152610-22566-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>) * All patches but #1 were added. ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (26 preceding siblings ...) 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 27 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q I think this is good to go. There are two acks, but I wasn't sure if I was supposed to collect them in the patches or not. Arnd Bergman acked #1 and #7. Changes since v3 (<1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>) * #4 is very different: rather than defining a canonical value for MAP_UNINITIALIZED, it just punts on the problem and lets arch maintainers deal with it. There's still an #ifndef MAP_UNINITIALIZED in there, but that shouldn't get triggered by anything because the arch headers should set it to whatever they actually want. * #11 defines MAX_RAW_MINORS to 2^20 instead of 2^16. * #13 moves the variable around a bit so it gets initialized. I forgot I was in perl and not C :). Changes since v2 (<1441832902-28993-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>) * Patch set renamed. * #2 is rewritten to use sys_ni.c instead of an #ifdef * #3, #6, #8, #9, #10, and #11 no longer use "#ifdef __KERNEL__" but have instead moved the offending lines to the correct, kernel-only files. * #4 has been rewritten to always define MAP_UNINITIALIZED to non-zero, rather than defining it to zero when in userspace. * #5 got a whole lot longer -- rather than just always hiding these fields from userspace, there is now a second "struct elf_fdpic_prstatus" structure. This should allow userspace to parse core dumps correctly. * Rebased onto 9c488de24f7264f08d341024bffdd637b4d04c96. Changes since v1 (<1441152610-22566-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>) * All patches but #1 were added. ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-14 22:50 ` Palmer Dabbelt ` (11 preceding siblings ...) [not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-15 0:23 ` Kirill A. Shutemov 2015-09-14 22:50 ` [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" Palmer Dabbelt ` (29 subsequent siblings) 42 siblings, 2 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it be non-zero. While I could have kept hiding it, the man pages seem to indicate that MAP_UNINITIALIZED should be visible: mmap(2) MAP_UNINITIALIZED (since Linux 2.6.33) Don't clear anonymous pages. This flag is intended to improve performance on embedded devices. This flag is honored only if the kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED option. Because of the security implications, that option is normally enabled only on embedded devices (i.e., devices where one has complete control of the contents of user memory). and since the only time it shows up in my /usr/include is in this header I believe this should have been visible to userspace (as non-zero, which wouldn't do anything when or'd into the flags) all along. This change also applies to the xtensa version of this definition, whic is the same as the generic one. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- arch/xtensa/include/uapi/asm/mman.h | 4 +--- include/uapi/asm-generic/mman-common.h | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/arch/xtensa/include/uapi/asm/mman.h b/arch/xtensa/include/uapi/asm/mman.h index 201aec0e0446..2cbc1e717082 100644 --- a/arch/xtensa/include/uapi/asm/mman.h +++ b/arch/xtensa/include/uapi/asm/mman.h @@ -55,11 +55,9 @@ #define MAP_NONBLOCK 0x20000 /* do not block on IO */ #define MAP_STACK 0x40000 /* give out an address that is best suited for process/thread stacks */ #define MAP_HUGETLB 0x80000 /* create a huge page mapping */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be * uninitialized */ -#else -# define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif /* diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index ddc3b36f1046..7aeeb12db193 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,10 +19,8 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ -#else -# define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif #define MS_ASYNC 1 /* sync memory asynchronously */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-14 22:50 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-15 0:23 ` Kirill A. Shutemov 1 sibling, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it be non-zero. While I could have kept hiding it, the man pages seem to indicate that MAP_UNINITIALIZED should be visible: mmap(2) MAP_UNINITIALIZED (since Linux 2.6.33) Don't clear anonymous pages. This flag is intended to improve performance on embedded devices. This flag is honored only if the kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED option. Because of the security implications, that option is normally enabled only on embedded devices (i.e., devices where one has complete control of the contents of user memory). and since the only time it shows up in my /usr/include is in this header I believe this should have been visible to userspace (as non-zero, which wouldn't do anything when or'd into the flags) all along. This change also applies to the xtensa version of this definition, whic is the same as the generic one. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- arch/xtensa/include/uapi/asm/mman.h | 4 +--- include/uapi/asm-generic/mman-common.h | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/arch/xtensa/include/uapi/asm/mman.h b/arch/xtensa/include/uapi/asm/mman.h index 201aec0e0446..2cbc1e717082 100644 --- a/arch/xtensa/include/uapi/asm/mman.h +++ b/arch/xtensa/include/uapi/asm/mman.h @@ -55,11 +55,9 @@ #define MAP_NONBLOCK 0x20000 /* do not block on IO */ #define MAP_STACK 0x40000 /* give out an address that is best suited for process/thread stacks */ #define MAP_HUGETLB 0x80000 /* create a huge page mapping */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be * uninitialized */ -#else -# define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif /* diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index ddc3b36f1046..7aeeb12db193 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,10 +19,8 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ -#else -# define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif #define MS_ASYNC 1 /* sync memory asynchronously */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* Re: [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-14 22:50 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-15 0:23 ` Kirill A. Shutemov 2015-09-15 0:23 ` Kirill A. Shutemov ` (4 more replies) 1 sibling, 5 replies; 327+ messages in thread From: Kirill A. Shutemov @ 2015-09-15 0:23 UTC (permalink / raw) To: Palmer Dabbelt Cc: arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 On Mon, Sep 14, 2015 at 03:50:38PM -0700, Palmer Dabbelt wrote: > This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so > userspace wouldn't actually ever see it be non-zero. While I could > have kept hiding it, the man pages seem to indicate that > MAP_UNINITIALIZED should be visible: > > mmap(2) > MAP_UNINITIALIZED (since Linux 2.6.33) > Don't clear anonymous pages. This flag is intended to improve > performance on embedded devices. This flag is honored only if the > kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED > option. Because of the security implications, that option is > normally enabled only on embedded devices (i.e., devices where one > has complete control of the contents of user memory). > > and since the only time it shows up in my /usr/include is in this > header I believe this should have been visible to userspace (as > non-zero, which wouldn't do anything when or'd into the flags) all > along. Are you sure about "wouldn't do anything"? Suspiciously, 0x4000000 is also (1 << MAP_HUGE_SHIFT). I'm not sure if any architecture has order-1 huge pages, but still looks like we have conflict here. I think it's harmful to expose non-zero MAP_UNINITIALIZED to system which potentially can handle multiple users. Or non-trivial user space in general. Should we leave it at least under '#ifndef CONFIG_MMU'? I don't think it's possible to have single ABI for MMU and MMU-less systems anyway. And we can avoid conflict with MAP_HUGE_SHIFT this way. P.S. MAP_UNINITIALIZED itself looks very broken to me. I probably need dig mailing list on why it was allowed. But that's other topic. -- Kirill A. Shutemov ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-15 0:23 ` Kirill A. Shutemov @ 2015-09-15 0:23 ` Kirill A. Shutemov 2015-09-15 0:52 ` Palmer Dabbelt ` (3 subsequent siblings) 4 siblings, 0 replies; 327+ messages in thread From: Kirill A. Shutemov @ 2015-09-15 0:23 UTC (permalink / raw) To: Palmer Dabbelt Cc: arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 On Mon, Sep 14, 2015 at 03:50:38PM -0700, Palmer Dabbelt wrote: > This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so > userspace wouldn't actually ever see it be non-zero. While I could > have kept hiding it, the man pages seem to indicate that > MAP_UNINITIALIZED should be visible: > > mmap(2) > MAP_UNINITIALIZED (since Linux 2.6.33) > Don't clear anonymous pages. This flag is intended to improve > performance on embedded devices. This flag is honored only if the > kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED > option. Because of the security implications, that option is > normally enabled only on embedded devices (i.e., devices where one > has complete control of the contents of user memory). > > and since the only time it shows up in my /usr/include is in this > header I believe this should have been visible to userspace (as > non-zero, which wouldn't do anything when or'd into the flags) all > along. Are you sure about "wouldn't do anything"? Suspiciously, 0x4000000 is also (1 << MAP_HUGE_SHIFT). I'm not sure if any architecture has order-1 huge pages, but still looks like we have conflict here. I think it's harmful to expose non-zero MAP_UNINITIALIZED to system which potentially can handle multiple users. Or non-trivial user space in general. Should we leave it at least under '#ifndef CONFIG_MMU'? I don't think it's possible to have single ABI for MMU and MMU-less systems anyway. And we can avoid conflict with MAP_HUGE_SHIFT this way. P.S. MAP_UNINITIALIZED itself looks very broken to me. I probably need dig mailing list on why it was allowed. But that's other topic. -- Kirill A. Shutemov ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-15 0:23 ` Kirill A. Shutemov 2015-09-15 0:23 ` Kirill A. Shutemov @ 2015-09-15 0:52 ` Palmer Dabbelt 2015-09-15 0:52 ` Palmer Dabbelt ` (2 subsequent siblings) 4 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-15 0:52 UTC (permalink / raw) To: kirill, arnd Cc: dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 On Mon, 14 Sep 2015 17:23:58 PDT (-0700), kirill@shutemov.name wrote: > On Mon, Sep 14, 2015 at 03:50:38PM -0700, Palmer Dabbelt wrote: >> This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so >> userspace wouldn't actually ever see it be non-zero. While I could >> have kept hiding it, the man pages seem to indicate that >> MAP_UNINITIALIZED should be visible: >> >> mmap(2) >> MAP_UNINITIALIZED (since Linux 2.6.33) >> Don't clear anonymous pages. This flag is intended to improve >> performance on embedded devices. This flag is honored only if the >> kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED >> option. Because of the security implications, that option is >> normally enabled only on embedded devices (i.e., devices where one >> has complete control of the contents of user memory). >> >> and since the only time it shows up in my /usr/include is in this >> header I believe this should have been visible to userspace (as >> non-zero, which wouldn't do anything when or'd into the flags) all >> along. > > Are you sure about "wouldn't do anything"? That was bad writing for me. I'd originally written something like "I believe this should have been visible to userspace all along", but then added the ()'s. I meant to say: * I think MAP_UNINITIALIZED should have been non-zero in userspace. * MAP_UNINITAILIZED was zero in userspace. * A zero MAP_UNINITIALIZED does nothing when OR'd in. > Suspiciously, 0x4000000 is also (1 << MAP_HUGE_SHIFT). I'm not sure if any > architecture has order-1 huge pages, but still looks like we have conflict > here. > > I think it's harmful to expose non-zero MAP_UNINITIALIZED to system which > potentially can handle multiple users. Or non-trivial user space in > general. This doesn't have MAP_UNINITIALIZED do anything by default, it just defines the flag the same way on all systems. I was under the impression that this just happened if I set MAP_UNINITIALIZED. Looking at MAP_HUGE_SHIFT it mmap.c, that's definitely why my mmap() test case ignored the set MAP_UNINITIALIZED on my PC. I'm going to make this #ifndef MAP_UNINITAILIZED #define MAP_UNINITAILIZED 0 #endif and then leave Xtensa's port alone. This is what Arnd suggested originally, sorry for the extra work! > Should we leave it at least under '#ifndef CONFIG_MMU'? I don't think it's > possible to have single ABI for MMU and MMU-less systems anyway. And we > can avoid conflict with MAP_HUGE_SHIFT this way. The whole goal here was to eliminate "#ifndef CONFIG_*" from the user-visible headers. This all started because I got bit by a very similar-looking bug (see patch #1), so I'd prefer not to go down that route. > P.S. MAP_UNINITIALIZED itself looks very broken to me. I probably need dig > mailing list on why it was allowed. > But that's other topic. ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-15 0:23 ` Kirill A. Shutemov 2015-09-15 0:23 ` Kirill A. Shutemov 2015-09-15 0:52 ` Palmer Dabbelt @ 2015-09-15 0:52 ` Palmer Dabbelt 2015-09-15 0:52 ` Palmer Dabbelt [not found] ` <20150915002358.GA12618-nhfs4B5ZimeFUdmeq17FyvUpdFzICT1y@public.gmane.org> 4 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-15 0:52 UTC (permalink / raw) To: kirill, arnd Cc: dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 On Mon, 14 Sep 2015 17:23:58 PDT (-0700), kirill@shutemov.name wrote: > On Mon, Sep 14, 2015 at 03:50:38PM -0700, Palmer Dabbelt wrote: >> This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so >> userspace wouldn't actually ever see it be non-zero. While I could >> have kept hiding it, the man pages seem to indicate that >> MAP_UNINITIALIZED should be visible: >> >> mmap(2) >> MAP_UNINITIALIZED (since Linux 2.6.33) >> Don't clear anonymous pages. This flag is intended to improve >> performance on embedded devices. This flag is honored only if the >> kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED >> option. Because of the security implications, that option is >> normally enabled only on embedded devices (i.e., devices where one >> has complete control of the contents of user memory). >> >> and since the only time it shows up in my /usr/include is in this >> header I believe this should have been visible to userspace (as >> non-zero, which wouldn't do anything when or'd into the flags) all >> along. > > Are you sure about "wouldn't do anything"? That was bad writing for me. I'd originally written something like "I believe this should have been visible to userspace all along", but then added the ()'s. I meant to say: * I think MAP_UNINITIALIZED should have been non-zero in userspace. * MAP_UNINITAILIZED was zero in userspace. * A zero MAP_UNINITIALIZED does nothing when OR'd in. > Suspiciously, 0x4000000 is also (1 << MAP_HUGE_SHIFT). I'm not sure if any > architecture has order-1 huge pages, but still looks like we have conflict > here. > > I think it's harmful to expose non-zero MAP_UNINITIALIZED to system which > potentially can handle multiple users. Or non-trivial user space in > general. This doesn't have MAP_UNINITIALIZED do anything by default, it just defines the flag the same way on all systems. I was under the impression that this just happened if I set MAP_UNINITIALIZED. Looking at MAP_HUGE_SHIFT it mmap.c, that's definitely why my mmap() test case ignored the set MAP_UNINITIALIZED on my PC. I'm going to make this #ifndef MAP_UNINITAILIZED #define MAP_UNINITAILIZED 0 #endif and then leave Xtensa's port alone. This is what Arnd suggested originally, sorry for the extra work! > Should we leave it at least under '#ifndef CONFIG_MMU'? I don't think it's > possible to have single ABI for MMU and MMU-less systems anyway. And we > can avoid conflict with MAP_HUGE_SHIFT this way. The whole goal here was to eliminate "#ifndef CONFIG_*" from the user-visible headers. This all started because I got bit by a very similar-looking bug (see patch #1), so I'd prefer not to go down that route. > P.S. MAP_UNINITIALIZED itself looks very broken to me. I probably need dig > mailing list on why it was allowed. > But that's other topic. ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-15 0:23 ` Kirill A. Shutemov ` (2 preceding siblings ...) 2015-09-15 0:52 ` Palmer Dabbelt @ 2015-09-15 0:52 ` Palmer Dabbelt 2015-09-15 0:52 ` Palmer Dabbelt [not found] ` <20150915002358.GA12618-nhfs4B5ZimeFUdmeq17FyvUpdFzICT1y@public.gmane.org> 4 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-15 0:52 UTC (permalink / raw) To: kirill, arnd Cc: dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 On Mon, 14 Sep 2015 17:23:58 PDT (-0700), kirill@shutemov.name wrote: > On Mon, Sep 14, 2015 at 03:50:38PM -0700, Palmer Dabbelt wrote: >> This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so >> userspace wouldn't actually ever see it be non-zero. While I could >> have kept hiding it, the man pages seem to indicate that >> MAP_UNINITIALIZED should be visible: >> >> mmap(2) >> MAP_UNINITIALIZED (since Linux 2.6.33) >> Don't clear anonymous pages. This flag is intended to improve >> performance on embedded devices. This flag is honored only if the >> kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED >> option. Because of the security implications, that option is >> normally enabled only on embedded devices (i.e., devices where one >> has complete control of the contents of user memory). >> >> and since the only time it shows up in my /usr/include is in this >> header I believe this should have been visible to userspace (as >> non-zero, which wouldn't do anything when or'd into the flags) all >> along. > > Are you sure about "wouldn't do anything"? That was bad writing for me. I'd originally written something like "I believe this should have been visible to userspace all along", but then added the ()'s. I meant to say: * I think MAP_UNINITIALIZED should have been non-zero in userspace. * MAP_UNINITAILIZED was zero in userspace. * A zero MAP_UNINITIALIZED does nothing when OR'd in. > Suspiciously, 0x4000000 is also (1 << MAP_HUGE_SHIFT). I'm not sure if any > architecture has order-1 huge pages, but still looks like we have conflict > here. > > I think it's harmful to expose non-zero MAP_UNINITIALIZED to system which > potentially can handle multiple users. Or non-trivial user space in > general. This doesn't have MAP_UNINITIALIZED do anything by default, it just defines the flag the same way on all systems. I was under the impression that this just happened if I set MAP_UNINITIALIZED. Looking at MAP_HUGE_SHIFT it mmap.c, that's definitely why my mmap() test case ignored the set MAP_UNINITIALIZED on my PC. I'm going to make this #ifndef MAP_UNINITAILIZED #define MAP_UNINITAILIZED 0 #endif and then leave Xtensa's port alone. This is what Arnd suggested originally, sorry for the extra work! > Should we leave it at least under '#ifndef CONFIG_MMU'? I don't think it's > possible to have single ABI for MMU and MMU-less systems anyway. And we > can avoid conflict with MAP_HUGE_SHIFT this way. The whole goal here was to eliminate "#ifndef CONFIG_*" from the user-visible headers. This all started because I got bit by a very similar-looking bug (see patch #1), so I'd prefer not to go down that route. > P.S. MAP_UNINITIALIZED itself looks very broken to me. I probably need dig > mailing list on why it was allowed. > But that's other topic. ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-15 0:52 ` Palmer Dabbelt @ 2015-09-15 0:52 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-15 0:52 UTC (permalink / raw) To: kirill, arnd Cc: dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 On Mon, 14 Sep 2015 17:23:58 PDT (-0700), kirill@shutemov.name wrote: > On Mon, Sep 14, 2015 at 03:50:38PM -0700, Palmer Dabbelt wrote: >> This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so >> userspace wouldn't actually ever see it be non-zero. While I could >> have kept hiding it, the man pages seem to indicate that >> MAP_UNINITIALIZED should be visible: >> >> mmap(2) >> MAP_UNINITIALIZED (since Linux 2.6.33) >> Don't clear anonymous pages. This flag is intended to improve >> performance on embedded devices. This flag is honored only if the >> kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED >> option. Because of the security implications, that option is >> normally enabled only on embedded devices (i.e., devices where one >> has complete control of the contents of user memory). >> >> and since the only time it shows up in my /usr/include is in this >> header I believe this should have been visible to userspace (as >> non-zero, which wouldn't do anything when or'd into the flags) all >> along. > > Are you sure about "wouldn't do anything"? That was bad writing for me. I'd originally written something like "I believe this should have been visible to userspace all along", but then added the ()'s. I meant to say: * I think MAP_UNINITIALIZED should have been non-zero in userspace. * MAP_UNINITAILIZED was zero in userspace. * A zero MAP_UNINITIALIZED does nothing when OR'd in. > Suspiciously, 0x4000000 is also (1 << MAP_HUGE_SHIFT). I'm not sure if any > architecture has order-1 huge pages, but still looks like we have conflict > here. > > I think it's harmful to expose non-zero MAP_UNINITIALIZED to system which > potentially can handle multiple users. Or non-trivial user space in > general. This doesn't have MAP_UNINITIALIZED do anything by default, it just defines the flag the same way on all systems. I was under the impression that this just happened if I set MAP_UNINITIALIZED. Looking at MAP_HUGE_SHIFT it mmap.c, that's definitely why my mmap() test case ignored the set MAP_UNINITIALIZED on my PC. I'm going to make this #ifndef MAP_UNINITAILIZED #define MAP_UNINITAILIZED 0 #endif and then leave Xtensa's port alone. This is what Arnd suggested originally, sorry for the extra work! > Should we leave it at least under '#ifndef CONFIG_MMU'? I don't think it's > possible to have single ABI for MMU and MMU-less systems anyway. And we > can avoid conflict with MAP_HUGE_SHIFT this way. The whole goal here was to eliminate "#ifndef CONFIG_*" from the user-visible headers. This all started because I got bit by a very similar-looking bug (see patch #1), so I'd prefer not to go down that route. > P.S. MAP_UNINITIALIZED itself looks very broken to me. I probably need dig > mailing list on why it was allowed. > But that's other topic. ^ permalink raw reply [flat|nested] 327+ messages in thread
[parent not found: <20150915002358.GA12618-nhfs4B5ZimeFUdmeq17FyvUpdFzICT1y@public.gmane.org>]
* Re: [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace [not found] ` <20150915002358.GA12618-nhfs4B5ZimeFUdmeq17FyvUpdFzICT1y@public.gmane.org> @ 2015-09-15 0:52 ` Palmer Dabbelt 2015-09-15 0:52 ` Palmer Dabbelt 2015-09-15 5:19 ` Josh Triplett 2 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-15 0:52 UTC (permalink / raw) To: kirill-oKw7cIdHH8eLwutG50LtGA, arnd-r2nGTMty4D4 Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A On Mon, 14 Sep 2015 17:23:58 PDT (-0700), kirill-oKw7cIdHH8eLwutG50LtGA@public.gmane.org wrote: > On Mon, Sep 14, 2015 at 03:50:38PM -0700, Palmer Dabbelt wrote: >> This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so >> userspace wouldn't actually ever see it be non-zero. While I could >> have kept hiding it, the man pages seem to indicate that >> MAP_UNINITIALIZED should be visible: >> >> mmap(2) >> MAP_UNINITIALIZED (since Linux 2.6.33) >> Don't clear anonymous pages. This flag is intended to improve >> performance on embedded devices. This flag is honored only if the >> kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED >> option. Because of the security implications, that option is >> normally enabled only on embedded devices (i.e., devices where one >> has complete control of the contents of user memory). >> >> and since the only time it shows up in my /usr/include is in this >> header I believe this should have been visible to userspace (as >> non-zero, which wouldn't do anything when or'd into the flags) all >> along. > > Are you sure about "wouldn't do anything"? That was bad writing for me. I'd originally written something like "I believe this should have been visible to userspace all along", but then added the ()'s. I meant to say: * I think MAP_UNINITIALIZED should have been non-zero in userspace. * MAP_UNINITAILIZED was zero in userspace. * A zero MAP_UNINITIALIZED does nothing when OR'd in. > Suspiciously, 0x4000000 is also (1 << MAP_HUGE_SHIFT). I'm not sure if any > architecture has order-1 huge pages, but still looks like we have conflict > here. > > I think it's harmful to expose non-zero MAP_UNINITIALIZED to system which > potentially can handle multiple users. Or non-trivial user space in > general. This doesn't have MAP_UNINITIALIZED do anything by default, it just defines the flag the same way on all systems. I was under the impression that this just happened if I set MAP_UNINITIALIZED. Looking at MAP_HUGE_SHIFT it mmap.c, that's definitely why my mmap() test case ignored the set MAP_UNINITIALIZED on my PC. I'm going to make this #ifndef MAP_UNINITAILIZED #define MAP_UNINITAILIZED 0 #endif and then leave Xtensa's port alone. This is what Arnd suggested originally, sorry for the extra work! > Should we leave it at least under '#ifndef CONFIG_MMU'? I don't think it's > possible to have single ABI for MMU and MMU-less systems anyway. And we > can avoid conflict with MAP_HUGE_SHIFT this way. The whole goal here was to eliminate "#ifndef CONFIG_*" from the user-visible headers. This all started because I got bit by a very similar-looking bug (see patch #1), so I'd prefer not to go down that route. > P.S. MAP_UNINITIALIZED itself looks very broken to me. I probably need dig > mailing list on why it was allowed. > But that's other topic. ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace [not found] ` <20150915002358.GA12618-nhfs4B5ZimeFUdmeq17FyvUpdFzICT1y@public.gmane.org> 2015-09-15 0:52 ` Palmer Dabbelt @ 2015-09-15 0:52 ` Palmer Dabbelt 2015-09-15 5:19 ` Josh Triplett 2 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-15 0:52 UTC (permalink / raw) To: kirill-oKw7cIdHH8eLwutG50LtGA, arnd-r2nGTMty4D4 Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, dhowells-H+wXaHxf7aLQT0dZR+AlfA, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q On Mon, 14 Sep 2015 17:23:58 PDT (-0700), kirill-oKw7cIdHH8eLwutG50LtGA@public.gmane.org wrote: > On Mon, Sep 14, 2015 at 03:50:38PM -0700, Palmer Dabbelt wrote: >> This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so >> userspace wouldn't actually ever see it be non-zero. While I could >> have kept hiding it, the man pages seem to indicate that >> MAP_UNINITIALIZED should be visible: >> >> mmap(2) >> MAP_UNINITIALIZED (since Linux 2.6.33) >> Don't clear anonymous pages. This flag is intended to improve >> performance on embedded devices. This flag is honored only if the >> kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED >> option. Because of the security implications, that option is >> normally enabled only on embedded devices (i.e., devices where one >> has complete control of the contents of user memory). >> >> and since the only time it shows up in my /usr/include is in this >> header I believe this should have been visible to userspace (as >> non-zero, which wouldn't do anything when or'd into the flags) all >> along. > > Are you sure about "wouldn't do anything"? That was bad writing for me. I'd originally written something like "I believe this should have been visible to userspace all along", but then added the ()'s. I meant to say: * I think MAP_UNINITIALIZED should have been non-zero in userspace. * MAP_UNINITAILIZED was zero in userspace. * A zero MAP_UNINITIALIZED does nothing when OR'd in. > Suspiciously, 0x4000000 is also (1 << MAP_HUGE_SHIFT). I'm not sure if any > architecture has order-1 huge pages, but still looks like we have conflict > here. > > I think it's harmful to expose non-zero MAP_UNINITIALIZED to system which > potentially can handle multiple users. Or non-trivial user space in > general. This doesn't have MAP_UNINITIALIZED do anything by default, it just defines the flag the same way on all systems. I was under the impression that this just happened if I set MAP_UNINITIALIZED. Looking at MAP_HUGE_SHIFT it mmap.c, that's definitely why my mmap() test case ignored the set MAP_UNINITIALIZED on my PC. I'm going to make this #ifndef MAP_UNINITAILIZED #define MAP_UNINITAILIZED 0 #endif and then leave Xtensa's port alone. This is what Arnd suggested originally, sorry for the extra work! > Should we leave it at least under '#ifndef CONFIG_MMU'? I don't think it's > possible to have single ABI for MMU and MMU-less systems anyway. And we > can avoid conflict with MAP_HUGE_SHIFT this way. The whole goal here was to eliminate "#ifndef CONFIG_*" from the user-visible headers. This all started because I got bit by a very similar-looking bug (see patch #1), so I'd prefer not to go down that route. > P.S. MAP_UNINITIALIZED itself looks very broken to me. I probably need dig > mailing list on why it was allowed. > But that's other topic. ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace [not found] ` <20150915002358.GA12618-nhfs4B5ZimeFUdmeq17FyvUpdFzICT1y@public.gmane.org> 2015-09-15 0:52 ` Palmer Dabbelt 2015-09-15 0:52 ` Palmer Dabbelt @ 2015-09-15 5:19 ` Josh Triplett 2015-09-15 5:19 ` Josh Triplett 2015-09-15 9:42 ` Kirill A. Shutemov 2 siblings, 2 replies; 327+ messages in thread From: Josh Triplett @ 2015-09-15 5:19 UTC (permalink / raw) To: Kirill A. Shutemov Cc: Palmer Dabbelt, arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A On Tue, Sep 15, 2015 at 03:23:58AM +0300, Kirill A. Shutemov wrote: > On Mon, Sep 14, 2015 at 03:50:38PM -0700, Palmer Dabbelt wrote: > > This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so > > userspace wouldn't actually ever see it be non-zero. While I could > > have kept hiding it, the man pages seem to indicate that > > MAP_UNINITIALIZED should be visible: > > > > mmap(2) > > MAP_UNINITIALIZED (since Linux 2.6.33) > > Don't clear anonymous pages. This flag is intended to improve > > performance on embedded devices. This flag is honored only if the > > kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED > > option. Because of the security implications, that option is > > normally enabled only on embedded devices (i.e., devices where one > > has complete control of the contents of user memory). > > > > and since the only time it shows up in my /usr/include is in this > > header I believe this should have been visible to userspace (as > > non-zero, which wouldn't do anything when or'd into the flags) all > > along. > > Are you sure about "wouldn't do anything"? > Suspiciously, 0x4000000 is also (1 << MAP_HUGE_SHIFT). I'm not sure if any > architecture has order-1 huge pages, but still looks like we have conflict > here. > > I think it's harmful to expose non-zero MAP_UNINITIALIZED to system which > potentially can handle multiple users. Or non-trivial user space in > general. The flag should always exist. If it was defined to conflict with something else, that's a serious ABI problem. But the flag should always exist, even if the kernel ends up ignoring it. > Should we leave it at least under '#ifndef CONFIG_MMU'? I don't think it's > possible to have single ABI for MMU and MMU-less systems anyway. And we > can avoid conflict with MAP_HUGE_SHIFT this way. No; even if you have an MMU (which is useful for things like fork()), a system without user separation (for instance, without CONFIG_MULTIUSER) can reasonably use MAP_UNINITIALIZED. > P.S. MAP_UNINITIALIZED itself looks very broken to me. I probably need dig > mailing list on why it was allowed. That's what the config option *and* explicit flag are for; there are more than enough warnings about the implications. - Josh Triplett ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-15 5:19 ` Josh Triplett @ 2015-09-15 5:19 ` Josh Triplett 2015-09-15 9:42 ` Kirill A. Shutemov 1 sibling, 0 replies; 327+ messages in thread From: Josh Triplett @ 2015-09-15 5:19 UTC (permalink / raw) To: Kirill A. Shutemov Cc: Palmer Dabbelt, arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 On Tue, Sep 15, 2015 at 03:23:58AM +0300, Kirill A. Shutemov wrote: > On Mon, Sep 14, 2015 at 03:50:38PM -0700, Palmer Dabbelt wrote: > > This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so > > userspace wouldn't actually ever see it be non-zero. While I could > > have kept hiding it, the man pages seem to indicate that > > MAP_UNINITIALIZED should be visible: > > > > mmap(2) > > MAP_UNINITIALIZED (since Linux 2.6.33) > > Don't clear anonymous pages. This flag is intended to improve > > performance on embedded devices. This flag is honored only if the > > kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED > > option. Because of the security implications, that option is > > normally enabled only on embedded devices (i.e., devices where one > > has complete control of the contents of user memory). > > > > and since the only time it shows up in my /usr/include is in this > > header I believe this should have been visible to userspace (as > > non-zero, which wouldn't do anything when or'd into the flags) all > > along. > > Are you sure about "wouldn't do anything"? > Suspiciously, 0x4000000 is also (1 << MAP_HUGE_SHIFT). I'm not sure if any > architecture has order-1 huge pages, but still looks like we have conflict > here. > > I think it's harmful to expose non-zero MAP_UNINITIALIZED to system which > potentially can handle multiple users. Or non-trivial user space in > general. The flag should always exist. If it was defined to conflict with something else, that's a serious ABI problem. But the flag should always exist, even if the kernel ends up ignoring it. > Should we leave it at least under '#ifndef CONFIG_MMU'? I don't think it's > possible to have single ABI for MMU and MMU-less systems anyway. And we > can avoid conflict with MAP_HUGE_SHIFT this way. No; even if you have an MMU (which is useful for things like fork()), a system without user separation (for instance, without CONFIG_MULTIUSER) can reasonably use MAP_UNINITIALIZED. > P.S. MAP_UNINITIALIZED itself looks very broken to me. I probably need dig > mailing list on why it was allowed. That's what the config option *and* explicit flag are for; there are more than enough warnings about the implications. - Josh Triplett ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-15 5:19 ` Josh Triplett 2015-09-15 5:19 ` Josh Triplett @ 2015-09-15 9:42 ` Kirill A. Shutemov 2015-09-15 9:42 ` Kirill A. Shutemov 2015-09-15 14:07 ` Josh Triplett 1 sibling, 2 replies; 327+ messages in thread From: Kirill A. Shutemov @ 2015-09-15 9:42 UTC (permalink / raw) To: Josh Triplett Cc: Palmer Dabbelt, arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A On Mon, Sep 14, 2015 at 10:19:19PM -0700, Josh Triplett wrote: > On Tue, Sep 15, 2015 at 03:23:58AM +0300, Kirill A. Shutemov wrote: > > On Mon, Sep 14, 2015 at 03:50:38PM -0700, Palmer Dabbelt wrote: > > > This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so > > > userspace wouldn't actually ever see it be non-zero. While I could > > > have kept hiding it, the man pages seem to indicate that > > > MAP_UNINITIALIZED should be visible: > > > > > > mmap(2) > > > MAP_UNINITIALIZED (since Linux 2.6.33) > > > Don't clear anonymous pages. This flag is intended to improve > > > performance on embedded devices. This flag is honored only if the > > > kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED > > > option. Because of the security implications, that option is > > > normally enabled only on embedded devices (i.e., devices where one > > > has complete control of the contents of user memory). > > > > > > and since the only time it shows up in my /usr/include is in this > > > header I believe this should have been visible to userspace (as > > > non-zero, which wouldn't do anything when or'd into the flags) all > > > along. > > > > Are you sure about "wouldn't do anything"? > > Suspiciously, 0x4000000 is also (1 << MAP_HUGE_SHIFT). I'm not sure if any > > architecture has order-1 huge pages, but still looks like we have conflict > > here. > > > > I think it's harmful to expose non-zero MAP_UNINITIALIZED to system which > > potentially can handle multiple users. Or non-trivial user space in > > general. > > The flag should always exist. Sure. And 0 is perfectly fine value for the flag. Like with MAP_FILE. > If it was defined to conflict with > something else, that's a serious ABI problem. But the flag > should always exist, even if the kernel ends up ignoring it. > > > Should we leave it at least under '#ifndef CONFIG_MMU'? I don't think it's > > possible to have single ABI for MMU and MMU-less systems anyway. And we > > can avoid conflict with MAP_HUGE_SHIFT this way. > > No; even if you have an MMU (which is useful for things like fork()), a > system without user separation (for instance, without CONFIG_MULTIUSER) > can reasonably use MAP_UNINITIALIZED. Can? Yes. Reasonably? I don't think so. > > P.S. MAP_UNINITIALIZED itself looks very broken to me. I probably need dig > > mailing list on why it was allowed. > > That's what the config option *and* explicit flag are for; there are > more than enough warnings about the implications. I think it's misdesigned. It doesn't require explicid opt-in from a process who owned the page allocated in MAP_UNINITIALIZED mapping before. #define MAP_LEAK_ME_SOME_DATA MAP_UNINITIALIZED -- Kirill A. Shutemov ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-15 9:42 ` Kirill A. Shutemov @ 2015-09-15 9:42 ` Kirill A. Shutemov 2015-09-15 14:07 ` Josh Triplett 1 sibling, 0 replies; 327+ messages in thread From: Kirill A. Shutemov @ 2015-09-15 9:42 UTC (permalink / raw) To: Josh Triplett Cc: Palmer Dabbelt, arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 On Mon, Sep 14, 2015 at 10:19:19PM -0700, Josh Triplett wrote: > On Tue, Sep 15, 2015 at 03:23:58AM +0300, Kirill A. Shutemov wrote: > > On Mon, Sep 14, 2015 at 03:50:38PM -0700, Palmer Dabbelt wrote: > > > This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so > > > userspace wouldn't actually ever see it be non-zero. While I could > > > have kept hiding it, the man pages seem to indicate that > > > MAP_UNINITIALIZED should be visible: > > > > > > mmap(2) > > > MAP_UNINITIALIZED (since Linux 2.6.33) > > > Don't clear anonymous pages. This flag is intended to improve > > > performance on embedded devices. This flag is honored only if the > > > kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED > > > option. Because of the security implications, that option is > > > normally enabled only on embedded devices (i.e., devices where one > > > has complete control of the contents of user memory). > > > > > > and since the only time it shows up in my /usr/include is in this > > > header I believe this should have been visible to userspace (as > > > non-zero, which wouldn't do anything when or'd into the flags) all > > > along. > > > > Are you sure about "wouldn't do anything"? > > Suspiciously, 0x4000000 is also (1 << MAP_HUGE_SHIFT). I'm not sure if any > > architecture has order-1 huge pages, but still looks like we have conflict > > here. > > > > I think it's harmful to expose non-zero MAP_UNINITIALIZED to system which > > potentially can handle multiple users. Or non-trivial user space in > > general. > > The flag should always exist. Sure. And 0 is perfectly fine value for the flag. Like with MAP_FILE. > If it was defined to conflict with > something else, that's a serious ABI problem. But the flag > should always exist, even if the kernel ends up ignoring it. > > > Should we leave it at least under '#ifndef CONFIG_MMU'? I don't think it's > > possible to have single ABI for MMU and MMU-less systems anyway. And we > > can avoid conflict with MAP_HUGE_SHIFT this way. > > No; even if you have an MMU (which is useful for things like fork()), a > system without user separation (for instance, without CONFIG_MULTIUSER) > can reasonably use MAP_UNINITIALIZED. Can? Yes. Reasonably? I don't think so. > > P.S. MAP_UNINITIALIZED itself looks very broken to me. I probably need dig > > mailing list on why it was allowed. > > That's what the config option *and* explicit flag are for; there are > more than enough warnings about the implications. I think it's misdesigned. It doesn't require explicid opt-in from a process who owned the page allocated in MAP_UNINITIALIZED mapping before. #define MAP_LEAK_ME_SOME_DATA MAP_UNINITIALIZED -- Kirill A. Shutemov ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-15 9:42 ` Kirill A. Shutemov 2015-09-15 9:42 ` Kirill A. Shutemov @ 2015-09-15 14:07 ` Josh Triplett 2015-09-15 14:07 ` Josh Triplett 2015-09-17 10:13 ` David Howells 1 sibling, 2 replies; 327+ messages in thread From: Josh Triplett @ 2015-09-15 14:07 UTC (permalink / raw) To: Kirill A. Shutemov Cc: Palmer Dabbelt, arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 On Tue, Sep 15, 2015 at 12:42:00PM +0300, Kirill A. Shutemov wrote: > On Mon, Sep 14, 2015 at 10:19:19PM -0700, Josh Triplett wrote: > > On Tue, Sep 15, 2015 at 03:23:58AM +0300, Kirill A. Shutemov wrote: > > > On Mon, Sep 14, 2015 at 03:50:38PM -0700, Palmer Dabbelt wrote: > > > > This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so > > > > userspace wouldn't actually ever see it be non-zero. While I could > > > > have kept hiding it, the man pages seem to indicate that > > > > MAP_UNINITIALIZED should be visible: > > > > > > > > mmap(2) > > > > MAP_UNINITIALIZED (since Linux 2.6.33) > > > > Don't clear anonymous pages. This flag is intended to improve > > > > performance on embedded devices. This flag is honored only if the > > > > kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED > > > > option. Because of the security implications, that option is > > > > normally enabled only on embedded devices (i.e., devices where one > > > > has complete control of the contents of user memory). > > > > > > > > and since the only time it shows up in my /usr/include is in this > > > > header I believe this should have been visible to userspace (as > > > > non-zero, which wouldn't do anything when or'd into the flags) all > > > > along. > > > > > > Are you sure about "wouldn't do anything"? > > > Suspiciously, 0x4000000 is also (1 << MAP_HUGE_SHIFT). I'm not sure if any > > > architecture has order-1 huge pages, but still looks like we have conflict > > > here. > > > > > > I think it's harmful to expose non-zero MAP_UNINITIALIZED to system which > > > potentially can handle multiple users. Or non-trivial user space in > > > general. > > > > The flag should always exist. > > Sure. And 0 is perfectly fine value for the flag. Like with MAP_FILE. Rephrasing: the flag should always exist with the correct value. Whether the kernel handles it or not, the kernel *headers* shouldn't change to match the kernel, not least of which because they don't necessarily match the running kernel. Just like we define the prototypes for syscalls that the running kernel may return ENOSYS for. > > If it was defined to conflict with > > something else, that's a serious ABI problem. But the flag > > should always exist, even if the kernel ends up ignoring it. > > > > > Should we leave it at least under '#ifndef CONFIG_MMU'? I don't think it's > > > possible to have single ABI for MMU and MMU-less systems anyway. And we > > > can avoid conflict with MAP_HUGE_SHIFT this way. > > > > No; even if you have an MMU (which is useful for things like fork()), a > > system without user separation (for instance, without CONFIG_MULTIUSER) > > can reasonably use MAP_UNINITIALIZED. > > Can? Yes. Reasonably? I don't think so. Not all systems care. Otherwise you should be complaining more bitterly about options like CONFIG_MMU=n, which (*gasp*) allow access to *arbitrary memory*. > > > P.S. MAP_UNINITIALIZED itself looks very broken to me. I probably need dig > > > mailing list on why it was allowed. > > > > That's what the config option *and* explicit flag are for; there are > > more than enough warnings about the implications. > > I think it's misdesigned. It doesn't require explicid opt-in from a > process who owned the page allocated in MAP_UNINITIALIZED mapping before. > > #define MAP_LEAK_ME_SOME_DATA MAP_UNINITIALIZED Hence why it has a config option. The userspace option exists primarily because otherwise userspace might get surprised by receiving a non-zeroed page. On a system with the config option turned on, processes have access to arbitrary freed memory, as long as they say they can handle not having their memory pre-zeroed. - Josh Triplett ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-15 14:07 ` Josh Triplett @ 2015-09-15 14:07 ` Josh Triplett 2015-09-17 10:13 ` David Howells 1 sibling, 0 replies; 327+ messages in thread From: Josh Triplett @ 2015-09-15 14:07 UTC (permalink / raw) To: Kirill A. Shutemov Cc: Palmer Dabbelt, arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 On Tue, Sep 15, 2015 at 12:42:00PM +0300, Kirill A. Shutemov wrote: > On Mon, Sep 14, 2015 at 10:19:19PM -0700, Josh Triplett wrote: > > On Tue, Sep 15, 2015 at 03:23:58AM +0300, Kirill A. Shutemov wrote: > > > On Mon, Sep 14, 2015 at 03:50:38PM -0700, Palmer Dabbelt wrote: > > > > This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so > > > > userspace wouldn't actually ever see it be non-zero. While I could > > > > have kept hiding it, the man pages seem to indicate that > > > > MAP_UNINITIALIZED should be visible: > > > > > > > > mmap(2) > > > > MAP_UNINITIALIZED (since Linux 2.6.33) > > > > Don't clear anonymous pages. This flag is intended to improve > > > > performance on embedded devices. This flag is honored only if the > > > > kernel was configured with the CONFIG_MMAP_ALLOW_UNINITIALIZED > > > > option. Because of the security implications, that option is > > > > normally enabled only on embedded devices (i.e., devices where one > > > > has complete control of the contents of user memory). > > > > > > > > and since the only time it shows up in my /usr/include is in this > > > > header I believe this should have been visible to userspace (as > > > > non-zero, which wouldn't do anything when or'd into the flags) all > > > > along. > > > > > > Are you sure about "wouldn't do anything"? > > > Suspiciously, 0x4000000 is also (1 << MAP_HUGE_SHIFT). I'm not sure if any > > > architecture has order-1 huge pages, but still looks like we have conflict > > > here. > > > > > > I think it's harmful to expose non-zero MAP_UNINITIALIZED to system which > > > potentially can handle multiple users. Or non-trivial user space in > > > general. > > > > The flag should always exist. > > Sure. And 0 is perfectly fine value for the flag. Like with MAP_FILE. Rephrasing: the flag should always exist with the correct value. Whether the kernel handles it or not, the kernel *headers* shouldn't change to match the kernel, not least of which because they don't necessarily match the running kernel. Just like we define the prototypes for syscalls that the running kernel may return ENOSYS for. > > If it was defined to conflict with > > something else, that's a serious ABI problem. But the flag > > should always exist, even if the kernel ends up ignoring it. > > > > > Should we leave it at least under '#ifndef CONFIG_MMU'? I don't think it's > > > possible to have single ABI for MMU and MMU-less systems anyway. And we > > > can avoid conflict with MAP_HUGE_SHIFT this way. > > > > No; even if you have an MMU (which is useful for things like fork()), a > > system without user separation (for instance, without CONFIG_MULTIUSER) > > can reasonably use MAP_UNINITIALIZED. > > Can? Yes. Reasonably? I don't think so. Not all systems care. Otherwise you should be complaining more bitterly about options like CONFIG_MMU=n, which (*gasp*) allow access to *arbitrary memory*. > > > P.S. MAP_UNINITIALIZED itself looks very broken to me. I probably need dig > > > mailing list on why it was allowed. > > > > That's what the config option *and* explicit flag are for; there are > > more than enough warnings about the implications. > > I think it's misdesigned. It doesn't require explicid opt-in from a > process who owned the page allocated in MAP_UNINITIALIZED mapping before. > > #define MAP_LEAK_ME_SOME_DATA MAP_UNINITIALIZED Hence why it has a config option. The userspace option exists primarily because otherwise userspace might get surprised by receiving a non-zeroed page. On a system with the config option turned on, processes have access to arbitrary freed memory, as long as they say they can handle not having their memory pre-zeroed. - Josh Triplett ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-15 14:07 ` Josh Triplett 2015-09-15 14:07 ` Josh Triplett @ 2015-09-17 10:13 ` David Howells 2015-09-17 10:13 ` David Howells 1 sibling, 1 reply; 327+ messages in thread From: David Howells @ 2015-09-17 10:13 UTC (permalink / raw) To: Josh Triplett Cc: dhowells, Kirill A. Shutemov, Palmer Dabbelt, arnd, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkein Josh Triplett <josh@joshtriplett.org> wrote: > > Sure. And 0 is perfectly fine value for the flag. Like with MAP_FILE. > > Rephrasing: the flag should always exist with the correct value. > Whether the kernel handles it or not, the kernel *headers* shouldn't > change to match the kernel, not least of which because they don't > necessarily match the running kernel. Just like we define the > prototypes for syscalls that the running kernel may return ENOSYS for. Josh is correct. CONFIG_xxx *should* *not* be seen in UAPI headers, except inside #ifdef __KERNEL__ guards under special circumstances - and #ifdef __KERNEL__ guards *should* *not* be seen in UAPI headers except under special circumstances. In terms of such special circumstances, take a peek in include/uapi/linux/acct.h at struct acct with this: /* m68k had no padding here. */ #if !defined(CONFIG_M68K) || !defined(__KERNEL__) __u16 ac_ahz; /* AHZ */ #endif in the middle of it... Or include/{,uapi/}linux/agpgart.h where it defines two different but same-named variants of several structs. Now, some of these - particularly things like the latter - can be fixed by someone who has the time. David ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-09-17 10:13 ` David Howells @ 2015-09-17 10:13 ` David Howells 0 siblings, 0 replies; 327+ messages in thread From: David Howells @ 2015-09-17 10:13 UTC (permalink / raw) To: Josh Triplett Cc: dhowells, Kirill A. Shutemov, Palmer Dabbelt, arnd, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 Josh Triplett <josh@joshtriplett.org> wrote: > > Sure. And 0 is perfectly fine value for the flag. Like with MAP_FILE. > > Rephrasing: the flag should always exist with the correct value. > Whether the kernel handles it or not, the kernel *headers* shouldn't > change to match the kernel, not least of which because they don't > necessarily match the running kernel. Just like we define the > prototypes for syscalls that the running kernel may return ENOSYS for. Josh is correct. CONFIG_xxx *should* *not* be seen in UAPI headers, except inside #ifdef __KERNEL__ guards under special circumstances - and #ifdef __KERNEL__ guards *should* *not* be seen in UAPI headers except under special circumstances. In terms of such special circumstances, take a peek in include/uapi/linux/acct.h at struct acct with this: /* m68k had no padding here. */ #if !defined(CONFIG_M68K) || !defined(__KERNEL__) __u16 ac_ahz; /* AHZ */ #endif in the middle of it... Or include/{,uapi/}linux/agpgart.h where it defines two different but same-named variants of several structs. Now, some of these - particularly things like the latter - can be fixed by someone who has the time. David ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" 2015-09-14 22:50 ` Palmer Dabbelt ` (12 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (28 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This is a pretty big change that I haven't tested any, which worries me a lot. The general idea here is that "struct elf_prstatus" can be visible to userspace (from <linux/ptrace.h>) " Generic ptrace interface that exports the architecture specific regsets using the corresponding NT_* types (which are also used in the core dump). Please note that the NT_PRSTATUS note type in a core dump contains a full 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the other user_regset flavors, the user_regset layout and the ELF core dump note payload are exactly the same layout. " so it shouldn't have an "#ifdef CONFIG_" in there. This splits the structure into two different structures, one still named "struct elf_prstatus", and one for ELF FDPIC that is named "struct elf_fdpic_prstatus" -- the idea here is that most users are standard ELF, so that's the name that didn't change. I tried to fix all the users of "struct elf_prstatus" that should now be using "struct elf_fdpic_prstatus". The only testing I did here was to build a Blackfin defconfig with "struct elf_prstatus" not defined, and to build an x86 defconfig with "struct elf_fdpic_prstatus" not defined. Note that this fails checkpatch.pl with a complaint about wanting open braces on the same line as struct definitions. The existing struct definitions in this file have the brace a line afterwards, so I'm going to leave this alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_elf_fdpic.c | 6 +++--- fs/proc/kcore.c | 16 ++++++++++++++++ include/linux/kexec.h | 4 ++++ include/uapi/linux/elfcore.h | 37 +++++++++++++++++++++++++++++++++++-- kernel/kexec_core.c | 4 ++++ 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index d3634bfb7fe1..587bf0466d71 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c @@ -1323,7 +1323,7 @@ static inline void fill_note(struct memelfnote *note, const char *name, int type * fill up all the fields in prstatus from the given task struct, except * registers which need to be filled up separately. */ -static void fill_prstatus(struct elf_prstatus *prstatus, +static void fill_prstatus(struct elf_fdpic_prstatus *prstatus, struct task_struct *p, long signr) { prstatus->pr_info.si_signo = prstatus->pr_cursig = signr; @@ -1406,7 +1406,7 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p, struct elf_thread_status { struct list_head list; - struct elf_prstatus prstatus; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ elf_fpregset_t fpu; /* NT_PRFPREG */ struct task_struct *thread; #ifdef ELF_CORE_COPY_XFPREGS @@ -1539,7 +1539,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) loff_t offset = 0, dataoff; int numnote; struct memelfnote *notes = NULL; - struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus *prstatus = NULL; /* NT_PRSTATUS */ struct elf_prpsinfo *psinfo = NULL; /* NT_PRPSINFO */ LIST_HEAD(thread_list); struct list_head *t; diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c index 92e6726f6e37..b1edd77ec854 100644 --- a/fs/proc/kcore.c +++ b/fs/proc/kcore.c @@ -90,7 +90,11 @@ static size_t get_kcore_size(int *nphdr, size_t *elf_buflen) (*nphdr + 2)*sizeof(struct elf_phdr) + 3 * ((sizeof(struct elf_note)) + roundup(sizeof(CORE_STR), 4)) + +#ifdef CONFIG_BINFMT_ELF_FDPIC + roundup(sizeof(struct elf_fdpic_prstatus), 4) + +#else roundup(sizeof(struct elf_prstatus), 4) + +#endif roundup(sizeof(struct elf_prpsinfo), 4) + roundup(arch_task_struct_size, 4); *elf_buflen = PAGE_ALIGN(*elf_buflen); @@ -318,7 +322,11 @@ static char *storenote(struct memelfnote *men, char *bufp) */ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ +#else struct elf_prstatus prstatus; /* NT_PRSTATUS */ +#endif struct elf_prpsinfo prpsinfo; /* NT_PRPSINFO */ struct elf_phdr *nhdr, *phdr; struct elfhdr *elf; @@ -387,10 +395,18 @@ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) /* set up the process status */ notes[0].name = CORE_STR; notes[0].type = NT_PRSTATUS; +#ifdef CONFIG_BINFMT_ELF_FDPIC + notes[0].datasz = sizeof(struct elf_fdpic_prstatus); +#else notes[0].datasz = sizeof(struct elf_prstatus); +#endif notes[0].data = &prstatus; +#ifdef CONFIG_BINFMT_ELF_FDPIC + memset(&prstatus, 0, sizeof(struct elf_fdpic_prstatus)); +#else memset(&prstatus, 0, sizeof(struct elf_prstatus)); +#endif nhdr->p_filesz = notesize(¬es[0]); bufp = storenote(¬es[0], bufp); diff --git a/include/linux/kexec.h b/include/linux/kexec.h index d140b1e9faa7..d9196ccd3781 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -63,7 +63,11 @@ #define KEXEC_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4) #define KEXEC_CORE_NOTE_NAME "CORE" #define KEXEC_CORE_NOTE_NAME_BYTES ALIGN(sizeof(KEXEC_CORE_NOTE_NAME), 4) +#ifdef CONFIG_BINFMT_ELF_FDPIC +#define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_fdpic_prstatus), 4) +#else #define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_prstatus), 4) +#endif /* * The per-cpu notes area is a list of notes terminated by a "NULL" * note header. For kdump, the code in vmcore.c runs in the context diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h index 569737cfb557..697c52db0227 100644 --- a/include/uapi/linux/elfcore.h +++ b/include/uapi/linux/elfcore.h @@ -60,7 +60,40 @@ struct elf_prstatus long pr_instr; /* Current instruction */ #endif elf_gregset_t pr_reg; /* GP registers */ -#ifdef CONFIG_BINFMT_ELF_FDPIC + int pr_fpvalid; /* True if math co-processor being used. */ +}; + +/* Architectures that set CONFIG_BINFMT_ELF_FDPIC use this instead of + * "struct elf_prstatus". + */ +struct elf_fdpic_prstatus +{ +#if 0 + long pr_flags; /* XXX Process flags */ + short pr_why; /* XXX Reason for process halt */ + short pr_what; /* XXX More detailed reason */ +#endif + struct elf_siginfo pr_info; /* Info associated with signal */ + short pr_cursig; /* Current signal */ + unsigned long pr_sigpend; /* Set of pending signals */ + unsigned long pr_sighold; /* Set of held signals */ +#if 0 + struct sigaltstack pr_altstack; /* Alternate stack info */ + struct sigaction pr_action; /* Signal action for current sig */ +#endif + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct timeval pr_utime; /* User time */ + struct timeval pr_stime; /* System time */ + struct timeval pr_cutime; /* Cumulative user time */ + struct timeval pr_cstime; /* Cumulative system time */ +#if 0 + long pr_instr; /* Current instruction */ +#endif + elf_gregset_t pr_reg; /* GP registers */ + /* When using FDPIC, the loadmap addresses need to be communicated * to GDB in order for GDB to do the necessary relocations. The * fields (below) used to communicate this information are placed @@ -69,7 +102,7 @@ struct elf_prstatus */ unsigned long pr_exec_fdpic_loadmap; unsigned long pr_interp_fdpic_loadmap; -#endif + int pr_fpvalid; /* True if math co-processor being used. */ }; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 201b45327804..8d2fc707fecf 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -977,7 +977,11 @@ static void final_note(u32 *buf) void crash_save_cpu(struct pt_regs *regs, int cpu) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; +#else struct elf_prstatus prstatus; +#endif u32 *buf; if ((cpu < 0) || (cpu >= nr_cpu_ids)) -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" 2015-09-14 22:50 ` Palmer Dabbelt ` (13 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (27 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This is a pretty big change that I haven't tested any, which worries me a lot. The general idea here is that "struct elf_prstatus" can be visible to userspace (from <linux/ptrace.h>) " Generic ptrace interface that exports the architecture specific regsets using the corresponding NT_* types (which are also used in the core dump). Please note that the NT_PRSTATUS note type in a core dump contains a full 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the other user_regset flavors, the user_regset layout and the ELF core dump note payload are exactly the same layout. " so it shouldn't have an "#ifdef CONFIG_" in there. This splits the structure into two different structures, one still named "struct elf_prstatus", and one for ELF FDPIC that is named "struct elf_fdpic_prstatus" -- the idea here is that most users are standard ELF, so that's the name that didn't change. I tried to fix all the users of "struct elf_prstatus" that should now be using "struct elf_fdpic_prstatus". The only testing I did here was to build a Blackfin defconfig with "struct elf_prstatus" not defined, and to build an x86 defconfig with "struct elf_fdpic_prstatus" not defined. Note that this fails checkpatch.pl with a complaint about wanting open braces on the same line as struct definitions. The existing struct definitions in this file have the brace a line afterwards, so I'm going to leave this alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_elf_fdpic.c | 6 +++--- fs/proc/kcore.c | 16 ++++++++++++++++ include/linux/kexec.h | 4 ++++ include/uapi/linux/elfcore.h | 37 +++++++++++++++++++++++++++++++++++-- kernel/kexec_core.c | 4 ++++ 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index d3634bfb7fe1..587bf0466d71 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c @@ -1323,7 +1323,7 @@ static inline void fill_note(struct memelfnote *note, const char *name, int type * fill up all the fields in prstatus from the given task struct, except * registers which need to be filled up separately. */ -static void fill_prstatus(struct elf_prstatus *prstatus, +static void fill_prstatus(struct elf_fdpic_prstatus *prstatus, struct task_struct *p, long signr) { prstatus->pr_info.si_signo = prstatus->pr_cursig = signr; @@ -1406,7 +1406,7 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p, struct elf_thread_status { struct list_head list; - struct elf_prstatus prstatus; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ elf_fpregset_t fpu; /* NT_PRFPREG */ struct task_struct *thread; #ifdef ELF_CORE_COPY_XFPREGS @@ -1539,7 +1539,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) loff_t offset = 0, dataoff; int numnote; struct memelfnote *notes = NULL; - struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus *prstatus = NULL; /* NT_PRSTATUS */ struct elf_prpsinfo *psinfo = NULL; /* NT_PRPSINFO */ LIST_HEAD(thread_list); struct list_head *t; diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c index 92e6726f6e37..b1edd77ec854 100644 --- a/fs/proc/kcore.c +++ b/fs/proc/kcore.c @@ -90,7 +90,11 @@ static size_t get_kcore_size(int *nphdr, size_t *elf_buflen) (*nphdr + 2)*sizeof(struct elf_phdr) + 3 * ((sizeof(struct elf_note)) + roundup(sizeof(CORE_STR), 4)) + +#ifdef CONFIG_BINFMT_ELF_FDPIC + roundup(sizeof(struct elf_fdpic_prstatus), 4) + +#else roundup(sizeof(struct elf_prstatus), 4) + +#endif roundup(sizeof(struct elf_prpsinfo), 4) + roundup(arch_task_struct_size, 4); *elf_buflen = PAGE_ALIGN(*elf_buflen); @@ -318,7 +322,11 @@ static char *storenote(struct memelfnote *men, char *bufp) */ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ +#else struct elf_prstatus prstatus; /* NT_PRSTATUS */ +#endif struct elf_prpsinfo prpsinfo; /* NT_PRPSINFO */ struct elf_phdr *nhdr, *phdr; struct elfhdr *elf; @@ -387,10 +395,18 @@ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) /* set up the process status */ notes[0].name = CORE_STR; notes[0].type = NT_PRSTATUS; +#ifdef CONFIG_BINFMT_ELF_FDPIC + notes[0].datasz = sizeof(struct elf_fdpic_prstatus); +#else notes[0].datasz = sizeof(struct elf_prstatus); +#endif notes[0].data = &prstatus; +#ifdef CONFIG_BINFMT_ELF_FDPIC + memset(&prstatus, 0, sizeof(struct elf_fdpic_prstatus)); +#else memset(&prstatus, 0, sizeof(struct elf_prstatus)); +#endif nhdr->p_filesz = notesize(¬es[0]); bufp = storenote(¬es[0], bufp); diff --git a/include/linux/kexec.h b/include/linux/kexec.h index d140b1e9faa7..d9196ccd3781 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -63,7 +63,11 @@ #define KEXEC_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4) #define KEXEC_CORE_NOTE_NAME "CORE" #define KEXEC_CORE_NOTE_NAME_BYTES ALIGN(sizeof(KEXEC_CORE_NOTE_NAME), 4) +#ifdef CONFIG_BINFMT_ELF_FDPIC +#define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_fdpic_prstatus), 4) +#else #define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_prstatus), 4) +#endif /* * The per-cpu notes area is a list of notes terminated by a "NULL" * note header. For kdump, the code in vmcore.c runs in the context diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h index 569737cfb557..697c52db0227 100644 --- a/include/uapi/linux/elfcore.h +++ b/include/uapi/linux/elfcore.h @@ -60,7 +60,40 @@ struct elf_prstatus long pr_instr; /* Current instruction */ #endif elf_gregset_t pr_reg; /* GP registers */ -#ifdef CONFIG_BINFMT_ELF_FDPIC + int pr_fpvalid; /* True if math co-processor being used. */ +}; + +/* Architectures that set CONFIG_BINFMT_ELF_FDPIC use this instead of + * "struct elf_prstatus". + */ +struct elf_fdpic_prstatus +{ +#if 0 + long pr_flags; /* XXX Process flags */ + short pr_why; /* XXX Reason for process halt */ + short pr_what; /* XXX More detailed reason */ +#endif + struct elf_siginfo pr_info; /* Info associated with signal */ + short pr_cursig; /* Current signal */ + unsigned long pr_sigpend; /* Set of pending signals */ + unsigned long pr_sighold; /* Set of held signals */ +#if 0 + struct sigaltstack pr_altstack; /* Alternate stack info */ + struct sigaction pr_action; /* Signal action for current sig */ +#endif + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct timeval pr_utime; /* User time */ + struct timeval pr_stime; /* System time */ + struct timeval pr_cutime; /* Cumulative user time */ + struct timeval pr_cstime; /* Cumulative system time */ +#if 0 + long pr_instr; /* Current instruction */ +#endif + elf_gregset_t pr_reg; /* GP registers */ + /* When using FDPIC, the loadmap addresses need to be communicated * to GDB in order for GDB to do the necessary relocations. The * fields (below) used to communicate this information are placed @@ -69,7 +102,7 @@ struct elf_prstatus */ unsigned long pr_exec_fdpic_loadmap; unsigned long pr_interp_fdpic_loadmap; -#endif + int pr_fpvalid; /* True if math co-processor being used. */ }; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 201b45327804..8d2fc707fecf 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -977,7 +977,11 @@ static void final_note(u32 *buf) void crash_save_cpu(struct pt_regs *regs, int cpu) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; +#else struct elf_prstatus prstatus; +#endif u32 *buf; if ((cpu < 0) || (cpu >= nr_cpu_ids)) -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" 2015-09-14 22:50 ` Palmer Dabbelt ` (14 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-17 10:17 ` David Howells 2015-09-14 22:50 ` [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c Palmer Dabbelt ` (26 subsequent siblings) 42 siblings, 2 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This is a pretty big change that I haven't tested any, which worries me a lot. The general idea here is that "struct elf_prstatus" can be visible to userspace (from <linux/ptrace.h>) " Generic ptrace interface that exports the architecture specific regsets using the corresponding NT_* types (which are also used in the core dump). Please note that the NT_PRSTATUS note type in a core dump contains a full 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the other user_regset flavors, the user_regset layout and the ELF core dump note payload are exactly the same layout. " so it shouldn't have an "#ifdef CONFIG_" in there. This splits the structure into two different structures, one still named "struct elf_prstatus", and one for ELF FDPIC that is named "struct elf_fdpic_prstatus" -- the idea here is that most users are standard ELF, so that's the name that didn't change. I tried to fix all the users of "struct elf_prstatus" that should now be using "struct elf_fdpic_prstatus". The only testing I did here was to build a Blackfin defconfig with "struct elf_prstatus" not defined, and to build an x86 defconfig with "struct elf_fdpic_prstatus" not defined. Note that this fails checkpatch.pl with a complaint about wanting open braces on the same line as struct definitions. The existing struct definitions in this file have the brace a line afterwards, so I'm going to leave this alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_elf_fdpic.c | 6 +++--- fs/proc/kcore.c | 16 ++++++++++++++++ include/linux/kexec.h | 4 ++++ include/uapi/linux/elfcore.h | 37 +++++++++++++++++++++++++++++++++++-- kernel/kexec_core.c | 4 ++++ 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index d3634bfb7fe1..587bf0466d71 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c @@ -1323,7 +1323,7 @@ static inline void fill_note(struct memelfnote *note, const char *name, int type * fill up all the fields in prstatus from the given task struct, except * registers which need to be filled up separately. */ -static void fill_prstatus(struct elf_prstatus *prstatus, +static void fill_prstatus(struct elf_fdpic_prstatus *prstatus, struct task_struct *p, long signr) { prstatus->pr_info.si_signo = prstatus->pr_cursig = signr; @@ -1406,7 +1406,7 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p, struct elf_thread_status { struct list_head list; - struct elf_prstatus prstatus; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ elf_fpregset_t fpu; /* NT_PRFPREG */ struct task_struct *thread; #ifdef ELF_CORE_COPY_XFPREGS @@ -1539,7 +1539,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) loff_t offset = 0, dataoff; int numnote; struct memelfnote *notes = NULL; - struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus *prstatus = NULL; /* NT_PRSTATUS */ struct elf_prpsinfo *psinfo = NULL; /* NT_PRPSINFO */ LIST_HEAD(thread_list); struct list_head *t; diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c index 92e6726f6e37..b1edd77ec854 100644 --- a/fs/proc/kcore.c +++ b/fs/proc/kcore.c @@ -90,7 +90,11 @@ static size_t get_kcore_size(int *nphdr, size_t *elf_buflen) (*nphdr + 2)*sizeof(struct elf_phdr) + 3 * ((sizeof(struct elf_note)) + roundup(sizeof(CORE_STR), 4)) + +#ifdef CONFIG_BINFMT_ELF_FDPIC + roundup(sizeof(struct elf_fdpic_prstatus), 4) + +#else roundup(sizeof(struct elf_prstatus), 4) + +#endif roundup(sizeof(struct elf_prpsinfo), 4) + roundup(arch_task_struct_size, 4); *elf_buflen = PAGE_ALIGN(*elf_buflen); @@ -318,7 +322,11 @@ static char *storenote(struct memelfnote *men, char *bufp) */ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ +#else struct elf_prstatus prstatus; /* NT_PRSTATUS */ +#endif struct elf_prpsinfo prpsinfo; /* NT_PRPSINFO */ struct elf_phdr *nhdr, *phdr; struct elfhdr *elf; @@ -387,10 +395,18 @@ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) /* set up the process status */ notes[0].name = CORE_STR; notes[0].type = NT_PRSTATUS; +#ifdef CONFIG_BINFMT_ELF_FDPIC + notes[0].datasz = sizeof(struct elf_fdpic_prstatus); +#else notes[0].datasz = sizeof(struct elf_prstatus); +#endif notes[0].data = &prstatus; +#ifdef CONFIG_BINFMT_ELF_FDPIC + memset(&prstatus, 0, sizeof(struct elf_fdpic_prstatus)); +#else memset(&prstatus, 0, sizeof(struct elf_prstatus)); +#endif nhdr->p_filesz = notesize(¬es[0]); bufp = storenote(¬es[0], bufp); diff --git a/include/linux/kexec.h b/include/linux/kexec.h index d140b1e9faa7..d9196ccd3781 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -63,7 +63,11 @@ #define KEXEC_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4) #define KEXEC_CORE_NOTE_NAME "CORE" #define KEXEC_CORE_NOTE_NAME_BYTES ALIGN(sizeof(KEXEC_CORE_NOTE_NAME), 4) +#ifdef CONFIG_BINFMT_ELF_FDPIC +#define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_fdpic_prstatus), 4) +#else #define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_prstatus), 4) +#endif /* * The per-cpu notes area is a list of notes terminated by a "NULL" * note header. For kdump, the code in vmcore.c runs in the context diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h index 569737cfb557..697c52db0227 100644 --- a/include/uapi/linux/elfcore.h +++ b/include/uapi/linux/elfcore.h @@ -60,7 +60,40 @@ struct elf_prstatus long pr_instr; /* Current instruction */ #endif elf_gregset_t pr_reg; /* GP registers */ -#ifdef CONFIG_BINFMT_ELF_FDPIC + int pr_fpvalid; /* True if math co-processor being used. */ +}; + +/* Architectures that set CONFIG_BINFMT_ELF_FDPIC use this instead of + * "struct elf_prstatus". + */ +struct elf_fdpic_prstatus +{ +#if 0 + long pr_flags; /* XXX Process flags */ + short pr_why; /* XXX Reason for process halt */ + short pr_what; /* XXX More detailed reason */ +#endif + struct elf_siginfo pr_info; /* Info associated with signal */ + short pr_cursig; /* Current signal */ + unsigned long pr_sigpend; /* Set of pending signals */ + unsigned long pr_sighold; /* Set of held signals */ +#if 0 + struct sigaltstack pr_altstack; /* Alternate stack info */ + struct sigaction pr_action; /* Signal action for current sig */ +#endif + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct timeval pr_utime; /* User time */ + struct timeval pr_stime; /* System time */ + struct timeval pr_cutime; /* Cumulative user time */ + struct timeval pr_cstime; /* Cumulative system time */ +#if 0 + long pr_instr; /* Current instruction */ +#endif + elf_gregset_t pr_reg; /* GP registers */ + /* When using FDPIC, the loadmap addresses need to be communicated * to GDB in order for GDB to do the necessary relocations. The * fields (below) used to communicate this information are placed @@ -69,7 +102,7 @@ struct elf_prstatus */ unsigned long pr_exec_fdpic_loadmap; unsigned long pr_interp_fdpic_loadmap; -#endif + int pr_fpvalid; /* True if math co-processor being used. */ }; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 201b45327804..8d2fc707fecf 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -977,7 +977,11 @@ static void final_note(u32 *buf) void crash_save_cpu(struct pt_regs *regs, int cpu) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; +#else struct elf_prstatus prstatus; +#endif u32 *buf; if ((cpu < 0) || (cpu >= nr_cpu_ids)) -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-17 10:17 ` David Howells 1 sibling, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This is a pretty big change that I haven't tested any, which worries me a lot. The general idea here is that "struct elf_prstatus" can be visible to userspace (from <linux/ptrace.h>) " Generic ptrace interface that exports the architecture specific regsets using the corresponding NT_* types (which are also used in the core dump). Please note that the NT_PRSTATUS note type in a core dump contains a full 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the other user_regset flavors, the user_regset layout and the ELF core dump note payload are exactly the same layout. " so it shouldn't have an "#ifdef CONFIG_" in there. This splits the structure into two different structures, one still named "struct elf_prstatus", and one for ELF FDPIC that is named "struct elf_fdpic_prstatus" -- the idea here is that most users are standard ELF, so that's the name that didn't change. I tried to fix all the users of "struct elf_prstatus" that should now be using "struct elf_fdpic_prstatus". The only testing I did here was to build a Blackfin defconfig with "struct elf_prstatus" not defined, and to build an x86 defconfig with "struct elf_fdpic_prstatus" not defined. Note that this fails checkpatch.pl with a complaint about wanting open braces on the same line as struct definitions. The existing struct definitions in this file have the brace a line afterwards, so I'm going to leave this alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_elf_fdpic.c | 6 +++--- fs/proc/kcore.c | 16 ++++++++++++++++ include/linux/kexec.h | 4 ++++ include/uapi/linux/elfcore.h | 37 +++++++++++++++++++++++++++++++++++-- kernel/kexec_core.c | 4 ++++ 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index d3634bfb7fe1..587bf0466d71 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c @@ -1323,7 +1323,7 @@ static inline void fill_note(struct memelfnote *note, const char *name, int type * fill up all the fields in prstatus from the given task struct, except * registers which need to be filled up separately. */ -static void fill_prstatus(struct elf_prstatus *prstatus, +static void fill_prstatus(struct elf_fdpic_prstatus *prstatus, struct task_struct *p, long signr) { prstatus->pr_info.si_signo = prstatus->pr_cursig = signr; @@ -1406,7 +1406,7 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p, struct elf_thread_status { struct list_head list; - struct elf_prstatus prstatus; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ elf_fpregset_t fpu; /* NT_PRFPREG */ struct task_struct *thread; #ifdef ELF_CORE_COPY_XFPREGS @@ -1539,7 +1539,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) loff_t offset = 0, dataoff; int numnote; struct memelfnote *notes = NULL; - struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus *prstatus = NULL; /* NT_PRSTATUS */ struct elf_prpsinfo *psinfo = NULL; /* NT_PRPSINFO */ LIST_HEAD(thread_list); struct list_head *t; diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c index 92e6726f6e37..b1edd77ec854 100644 --- a/fs/proc/kcore.c +++ b/fs/proc/kcore.c @@ -90,7 +90,11 @@ static size_t get_kcore_size(int *nphdr, size_t *elf_buflen) (*nphdr + 2)*sizeof(struct elf_phdr) + 3 * ((sizeof(struct elf_note)) + roundup(sizeof(CORE_STR), 4)) + +#ifdef CONFIG_BINFMT_ELF_FDPIC + roundup(sizeof(struct elf_fdpic_prstatus), 4) + +#else roundup(sizeof(struct elf_prstatus), 4) + +#endif roundup(sizeof(struct elf_prpsinfo), 4) + roundup(arch_task_struct_size, 4); *elf_buflen = PAGE_ALIGN(*elf_buflen); @@ -318,7 +322,11 @@ static char *storenote(struct memelfnote *men, char *bufp) */ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ +#else struct elf_prstatus prstatus; /* NT_PRSTATUS */ +#endif struct elf_prpsinfo prpsinfo; /* NT_PRPSINFO */ struct elf_phdr *nhdr, *phdr; struct elfhdr *elf; @@ -387,10 +395,18 @@ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) /* set up the process status */ notes[0].name = CORE_STR; notes[0].type = NT_PRSTATUS; +#ifdef CONFIG_BINFMT_ELF_FDPIC + notes[0].datasz = sizeof(struct elf_fdpic_prstatus); +#else notes[0].datasz = sizeof(struct elf_prstatus); +#endif notes[0].data = &prstatus; +#ifdef CONFIG_BINFMT_ELF_FDPIC + memset(&prstatus, 0, sizeof(struct elf_fdpic_prstatus)); +#else memset(&prstatus, 0, sizeof(struct elf_prstatus)); +#endif nhdr->p_filesz = notesize(¬es[0]); bufp = storenote(¬es[0], bufp); diff --git a/include/linux/kexec.h b/include/linux/kexec.h index d140b1e9faa7..d9196ccd3781 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -63,7 +63,11 @@ #define KEXEC_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4) #define KEXEC_CORE_NOTE_NAME "CORE" #define KEXEC_CORE_NOTE_NAME_BYTES ALIGN(sizeof(KEXEC_CORE_NOTE_NAME), 4) +#ifdef CONFIG_BINFMT_ELF_FDPIC +#define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_fdpic_prstatus), 4) +#else #define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_prstatus), 4) +#endif /* * The per-cpu notes area is a list of notes terminated by a "NULL" * note header. For kdump, the code in vmcore.c runs in the context diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h index 569737cfb557..697c52db0227 100644 --- a/include/uapi/linux/elfcore.h +++ b/include/uapi/linux/elfcore.h @@ -60,7 +60,40 @@ struct elf_prstatus long pr_instr; /* Current instruction */ #endif elf_gregset_t pr_reg; /* GP registers */ -#ifdef CONFIG_BINFMT_ELF_FDPIC + int pr_fpvalid; /* True if math co-processor being used. */ +}; + +/* Architectures that set CONFIG_BINFMT_ELF_FDPIC use this instead of + * "struct elf_prstatus". + */ +struct elf_fdpic_prstatus +{ +#if 0 + long pr_flags; /* XXX Process flags */ + short pr_why; /* XXX Reason for process halt */ + short pr_what; /* XXX More detailed reason */ +#endif + struct elf_siginfo pr_info; /* Info associated with signal */ + short pr_cursig; /* Current signal */ + unsigned long pr_sigpend; /* Set of pending signals */ + unsigned long pr_sighold; /* Set of held signals */ +#if 0 + struct sigaltstack pr_altstack; /* Alternate stack info */ + struct sigaction pr_action; /* Signal action for current sig */ +#endif + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct timeval pr_utime; /* User time */ + struct timeval pr_stime; /* System time */ + struct timeval pr_cutime; /* Cumulative user time */ + struct timeval pr_cstime; /* Cumulative system time */ +#if 0 + long pr_instr; /* Current instruction */ +#endif + elf_gregset_t pr_reg; /* GP registers */ + /* When using FDPIC, the loadmap addresses need to be communicated * to GDB in order for GDB to do the necessary relocations. The * fields (below) used to communicate this information are placed @@ -69,7 +102,7 @@ struct elf_prstatus */ unsigned long pr_exec_fdpic_loadmap; unsigned long pr_interp_fdpic_loadmap; -#endif + int pr_fpvalid; /* True if math co-processor being used. */ }; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 201b45327804..8d2fc707fecf 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -977,7 +977,11 @@ static void final_note(u32 *buf) void crash_save_cpu(struct pt_regs *regs, int cpu) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; +#else struct elf_prstatus prstatus; +#endif u32 *buf; if ((cpu < 0) || (cpu >= nr_cpu_ids)) -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* Re: [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-17 10:17 ` David Howells 1 sibling, 0 replies; 327+ messages in thread From: David Howells @ 2015-09-17 10:17 UTC (permalink / raw) To: Palmer Dabbelt Cc: dhowells, arnd, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 Palmer Dabbelt <palmer@dabbelt.com> wrote: > I tried to fix all the users of "struct elf_prstatus" that should now > be using "struct elf_fdpic_prstatus". The only testing I did here was > to build a Blackfin defconfig with "struct elf_prstatus" not defined, > and to build an x86 defconfig with "struct elf_fdpic_prstatus" not > defined. You probably also need to try loading a core into a debugger. David ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c 2015-09-14 22:50 ` Palmer Dabbelt ` (15 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (25 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This doesn't make any sense to expose to userspace, so it's been moved to the one user. This was introduced by commit 95f19f658ce1 ("epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled"). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/eventpoll.c | 13 +++++++++++++ include/uapi/linux/eventpoll.h | 12 ------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 1e009cad8d5c..aadee3d1931a 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1812,6 +1812,19 @@ SYSCALL_DEFINE1(epoll_create, int, size) return sys_epoll_create1(0); } +#ifdef CONFIG_PM_SLEEP +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) + epev->events &= ~EPOLLWAKEUP; +} +#else +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + epev->events &= ~EPOLLWAKEUP; +} +#endif + /* * The following function implements the controller interface for * the eventpoll file that enables the insertion/removal/change of diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2e1f0e..7850373079ee 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,16 +61,4 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; -#ifdef CONFIG_PM_SLEEP -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) - epev->events &= ~EPOLLWAKEUP; -} -#else -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - epev->events &= ~EPOLLWAKEUP; -} -#endif #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c 2015-09-14 22:50 ` Palmer Dabbelt ` (16 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (24 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This doesn't make any sense to expose to userspace, so it's been moved to the one user. This was introduced by commit 95f19f658ce1 ("epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled"). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/eventpoll.c | 13 +++++++++++++ include/uapi/linux/eventpoll.h | 12 ------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 1e009cad8d5c..aadee3d1931a 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1812,6 +1812,19 @@ SYSCALL_DEFINE1(epoll_create, int, size) return sys_epoll_create1(0); } +#ifdef CONFIG_PM_SLEEP +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) + epev->events &= ~EPOLLWAKEUP; +} +#else +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + epev->events &= ~EPOLLWAKEUP; +} +#endif + /* * The following function implements the controller interface for * the eventpoll file that enables the insertion/removal/change of diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2e1f0e..7850373079ee 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,16 +61,4 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; -#ifdef CONFIG_PM_SLEEP -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) - epev->events &= ~EPOLLWAKEUP; -} -#else -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - epev->events &= ~EPOLLWAKEUP; -} -#endif #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c 2015-09-14 22:50 ` Palmer Dabbelt ` (17 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt ` (23 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This doesn't make any sense to expose to userspace, so it's been moved to the one user. This was introduced by commit 95f19f658ce1 ("epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled"). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/eventpoll.c | 13 +++++++++++++ include/uapi/linux/eventpoll.h | 12 ------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 1e009cad8d5c..aadee3d1931a 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1812,6 +1812,19 @@ SYSCALL_DEFINE1(epoll_create, int, size) return sys_epoll_create1(0); } +#ifdef CONFIG_PM_SLEEP +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) + epev->events &= ~EPOLLWAKEUP; +} +#else +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + epev->events &= ~EPOLLWAKEUP; +} +#endif + /* * The following function implements the controller interface for * the eventpoll file that enables the insertion/removal/change of diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2e1f0e..7850373079ee 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,16 +61,4 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; -#ifdef CONFIG_PM_SLEEP -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) - epev->events &= ~EPOLLWAKEUP; -} -#else -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - epev->events &= ~EPOLLWAKEUP; -} -#endif #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible 2015-09-14 22:50 ` Palmer Dabbelt ` (18 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (22 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt Nothing else in the kernel defines this, and this header is visible to userspace. Rather than hiding it in an #ifdef, I think it's sane to just make this visible to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/fb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h index fb795c3b3c17..8926f13bc19f 100644 --- a/include/uapi/linux/fb.h +++ b/include/uapi/linux/fb.h @@ -392,11 +392,8 @@ struct fb_cursor { struct fb_image image; /* Cursor image */ }; -#ifdef CONFIG_FB_BACKLIGHT /* Settings for the generic backlight code */ #define FB_BACKLIGHT_LEVELS 128 #define FB_BACKLIGHT_MAX 0xFF -#endif - #endif /* _UAPI_LINUX_FB_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible 2015-09-14 22:50 ` Palmer Dabbelt ` (19 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (21 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt Nothing else in the kernel defines this, and this header is visible to userspace. Rather than hiding it in an #ifdef, I think it's sane to just make this visible to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/fb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h index fb795c3b3c17..8926f13bc19f 100644 --- a/include/uapi/linux/fb.h +++ b/include/uapi/linux/fb.h @@ -392,11 +392,8 @@ struct fb_cursor { struct fb_image image; /* Cursor image */ }; -#ifdef CONFIG_FB_BACKLIGHT /* Settings for the generic backlight code */ #define FB_BACKLIGHT_LEVELS 128 #define FB_BACKLIGHT_MAX 0xFF -#endif - #endif /* _UAPI_LINUX_FB_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible 2015-09-14 22:50 ` Palmer Dabbelt ` (20 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt ` (20 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt Nothing else in the kernel defines this, and this header is visible to userspace. Rather than hiding it in an #ifdef, I think it's sane to just make this visible to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/fb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h index fb795c3b3c17..8926f13bc19f 100644 --- a/include/uapi/linux/fb.h +++ b/include/uapi/linux/fb.h @@ -392,11 +392,8 @@ struct fb_cursor { struct fb_image image; /* Cursor image */ }; -#ifdef CONFIG_FB_BACKLIGHT /* Settings for the generic backlight code */ #define FB_BACKLIGHT_LEVELS 128 #define FB_BACKLIGHT_MAX 0xFF -#endif - #endif /* _UAPI_LINUX_FB_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c 2015-09-14 22:50 ` Palmer Dabbelt ` (21 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (19 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_flat.c | 6 ++++++ include/uapi/linux/flat.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index f723cd3a455c..e89fb43c2a10 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -72,6 +72,12 @@ #define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */ #define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */ +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + struct lib_info { struct { unsigned long start_code; /* Start of text segment */ diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6baba8f3..1b177c7637c4 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,12 +13,6 @@ #define FLAT_VERSION 0x00000004L -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define MAX_SHARED_LIBS (4) -#else -#define MAX_SHARED_LIBS (1) -#endif - /* * To make everything easier to port and manage cross platform * development, all fields are in network byte order. -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c 2015-09-14 22:50 ` Palmer Dabbelt ` (22 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (18 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_flat.c | 6 ++++++ include/uapi/linux/flat.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index f723cd3a455c..e89fb43c2a10 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -72,6 +72,12 @@ #define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */ #define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */ +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + struct lib_info { struct { unsigned long start_code; /* Start of text segment */ diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6baba8f3..1b177c7637c4 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,12 +13,6 @@ #define FLAT_VERSION 0x00000004L -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define MAX_SHARED_LIBS (4) -#else -#define MAX_SHARED_LIBS (1) -#endif - /* * To make everything easier to port and manage cross platform * development, all fields are in network byte order. -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c 2015-09-14 22:50 ` Palmer Dabbelt ` (23 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c Palmer Dabbelt ` (17 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_flat.c | 6 ++++++ include/uapi/linux/flat.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index f723cd3a455c..e89fb43c2a10 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -72,6 +72,12 @@ #define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */ #define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */ +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + struct lib_info { struct { unsigned long start_code; /* Start of text segment */ diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6baba8f3..1b177c7637c4 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,12 +13,6 @@ #define FLAT_VERSION 0x00000004L -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define MAX_SHARED_LIBS (4) -#else -#define MAX_SHARED_LIBS (1) -#endif - /* * To make everything easier to port and manage cross platform * development, all fields are in network byte order. -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-09-14 22:50 ` Palmer Dabbelt ` (24 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-15 8:06 ` Peter Zijlstra 2015-09-14 22:50 ` Palmer Dabbelt ` (16 subsequent siblings) 42 siblings, 2 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This has a "#ifdef CONFIG_*" that used to be exposed to userspace. The names in here are so generic that I don't think it's a good idea to expose them to userspace (or even the rest of the kernel). Since there's only one kernel user, it's been moved to that file. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/hw_breakpoint.h | 10 ---------- kernel/events/hw_breakpoint.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h index b04000a2296a..7a6a5a7f9511 100644 --- a/include/uapi/linux/hw_breakpoint.h +++ b/include/uapi/linux/hw_breakpoint.h @@ -17,14 +17,4 @@ enum { HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, }; -enum bp_type_idx { - TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS - TYPE_DATA = 0, -#else - TYPE_DATA = 1, -#endif - TYPE_MAX -}; - #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c index 92ce5f4ccc26..5ad117e0f55b 100644 --- a/kernel/events/hw_breakpoint.c +++ b/kernel/events/hw_breakpoint.c @@ -58,6 +58,16 @@ struct bp_cpuinfo { unsigned int flexible; /* XXX: placeholder, see fetch_this_slot() */ }; +enum bp_type_idx { + TYPE_INST = 0, +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + static DEFINE_PER_CPU(struct bp_cpuinfo, bp_cpuinfo[TYPE_MAX]); static int nr_slots[TYPE_MAX]; -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-09-14 22:50 ` [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-15 8:06 ` Peter Zijlstra 1 sibling, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This has a "#ifdef CONFIG_*" that used to be exposed to userspace. The names in here are so generic that I don't think it's a good idea to expose them to userspace (or even the rest of the kernel). Since there's only one kernel user, it's been moved to that file. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/hw_breakpoint.h | 10 ---------- kernel/events/hw_breakpoint.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h index b04000a2296a..7a6a5a7f9511 100644 --- a/include/uapi/linux/hw_breakpoint.h +++ b/include/uapi/linux/hw_breakpoint.h @@ -17,14 +17,4 @@ enum { HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, }; -enum bp_type_idx { - TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS - TYPE_DATA = 0, -#else - TYPE_DATA = 1, -#endif - TYPE_MAX -}; - #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c index 92ce5f4ccc26..5ad117e0f55b 100644 --- a/kernel/events/hw_breakpoint.c +++ b/kernel/events/hw_breakpoint.c @@ -58,6 +58,16 @@ struct bp_cpuinfo { unsigned int flexible; /* XXX: placeholder, see fetch_this_slot() */ }; +enum bp_type_idx { + TYPE_INST = 0, +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + static DEFINE_PER_CPU(struct bp_cpuinfo, bp_cpuinfo[TYPE_MAX]); static int nr_slots[TYPE_MAX]; -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-09-14 22:50 ` [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-15 8:06 ` Peter Zijlstra 2015-09-15 8:06 ` Peter Zijlstra ` (2 more replies) 1 sibling, 3 replies; 327+ messages in thread From: Peter Zijlstra @ 2015-09-15 8:06 UTC (permalink / raw) To: Palmer Dabbelt Cc: arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, tglx, tomi.valkeinen, vgoyal, x86, Frederic Weisbecker On Mon, Sep 14, 2015 at 03:50:43PM -0700, Palmer Dabbelt wrote: > This has a "#ifdef CONFIG_*" that used to be exposed to userspace. > > The names in here are so generic that I don't think it's a good idea > to expose them to userspace (or even the rest of the kernel). Since > there's only one kernel user, it's been moved to that file. > > Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> > Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> > Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> > --- > include/uapi/linux/hw_breakpoint.h | 10 ---------- > kernel/events/hw_breakpoint.c | 10 ++++++++++ > 2 files changed, 10 insertions(+), 10 deletions(-) > > diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h > index b04000a2296a..7a6a5a7f9511 100644 > --- a/include/uapi/linux/hw_breakpoint.h > +++ b/include/uapi/linux/hw_breakpoint.h > @@ -17,14 +17,4 @@ enum { > HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, > }; > > -enum bp_type_idx { > - TYPE_INST = 0, > -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS > - TYPE_DATA = 0, > -#else > - TYPE_DATA = 1, > -#endif > - TYPE_MAX > -}; This is rather unfortunate; you are correct that the naming is too generic (and I tend to agree), but I think these values are required by userspace to fill out: perf_event_attr::bp_type So removing them will break things. Frederic? ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-09-15 8:06 ` Peter Zijlstra @ 2015-09-15 8:06 ` Peter Zijlstra 2015-09-15 18:40 ` Palmer Dabbelt 2015-09-15 21:15 ` Arnd Bergmann 2 siblings, 0 replies; 327+ messages in thread From: Peter Zijlstra @ 2015-09-15 8:06 UTC (permalink / raw) To: Palmer Dabbelt Cc: arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, tglx, tomi.valkeinen, vgoyal, x86, Frederic Weisbecker On Mon, Sep 14, 2015 at 03:50:43PM -0700, Palmer Dabbelt wrote: > This has a "#ifdef CONFIG_*" that used to be exposed to userspace. > > The names in here are so generic that I don't think it's a good idea > to expose them to userspace (or even the rest of the kernel). Since > there's only one kernel user, it's been moved to that file. > > Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> > Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> > Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> > --- > include/uapi/linux/hw_breakpoint.h | 10 ---------- > kernel/events/hw_breakpoint.c | 10 ++++++++++ > 2 files changed, 10 insertions(+), 10 deletions(-) > > diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h > index b04000a2296a..7a6a5a7f9511 100644 > --- a/include/uapi/linux/hw_breakpoint.h > +++ b/include/uapi/linux/hw_breakpoint.h > @@ -17,14 +17,4 @@ enum { > HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, > }; > > -enum bp_type_idx { > - TYPE_INST = 0, > -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS > - TYPE_DATA = 0, > -#else > - TYPE_DATA = 1, > -#endif > - TYPE_MAX > -}; This is rather unfortunate; you are correct that the naming is too generic (and I tend to agree), but I think these values are required by userspace to fill out: perf_event_attr::bp_type So removing them will break things. Frederic? ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-09-15 8:06 ` Peter Zijlstra 2015-09-15 8:06 ` Peter Zijlstra @ 2015-09-15 18:40 ` Palmer Dabbelt 2015-09-15 18:40 ` Palmer Dabbelt 2015-09-15 19:39 ` Peter Zijlstra 2015-09-15 21:15 ` Arnd Bergmann 2 siblings, 2 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-15 18:40 UTC (permalink / raw) To: peterz Cc: arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, tglx, tomi.valkeinen, vgoyal, x86, fweisbec On Tue, 15 Sep 2015 01:06:07 PDT (-0700), peterz@infradead.org wrote: > On Mon, Sep 14, 2015 at 03:50:43PM -0700, Palmer Dabbelt wrote: >> This has a "#ifdef CONFIG_*" that used to be exposed to userspace. >> >> The names in here are so generic that I don't think it's a good idea >> to expose them to userspace (or even the rest of the kernel). Since >> there's only one kernel user, it's been moved to that file. >> >> Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> >> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> >> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> >> --- >> include/uapi/linux/hw_breakpoint.h | 10 ---------- >> kernel/events/hw_breakpoint.c | 10 ++++++++++ >> 2 files changed, 10 insertions(+), 10 deletions(-) >> >> diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h >> index b04000a2296a..7a6a5a7f9511 100644 >> --- a/include/uapi/linux/hw_breakpoint.h >> +++ b/include/uapi/linux/hw_breakpoint.h >> @@ -17,14 +17,4 @@ enum { >> HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, >> }; >> >> -enum bp_type_idx { >> - TYPE_INST = 0, >> -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS >> - TYPE_DATA = 0, >> -#else >> - TYPE_DATA = 1, >> -#endif >> - TYPE_MAX >> -}; > > This is rather unfortunate; you are correct that the naming is too > generic (and I tend to agree), but I think these values are required by > userspace to fill out: > > perf_event_attr::bp_type > > So removing them will break things. > > Frederic? perf_event_open(2) says bp_type (since Linux 2.6.33) This chooses the breakpoint type. It is one of: HW_BREAKPOINT_EMPTY No breakpoint. HW_BREAKPOINT_R Count when we read the memory location. HW_BREAKPOINT_W Count when we write the memory location. HW_BREAKPOINT_RW Count when we read or write the memory location. HW_BREAKPOINT_X Count when we execute code at the memory location. The values can be combined via a bitwise or, but the combination of HW_BREAKPOINT_R or HW_BREAKPOINT_W with HW_BREAKPOINT_X is not allowed. so I think removing this enum from userspace is OK. Did I miss something? ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-09-15 18:40 ` Palmer Dabbelt @ 2015-09-15 18:40 ` Palmer Dabbelt 2015-09-15 19:39 ` Peter Zijlstra 1 sibling, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-15 18:40 UTC (permalink / raw) To: peterz Cc: arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, tglx, tomi.valkeinen, vgoyal, x86, fweisbec On Tue, 15 Sep 2015 01:06:07 PDT (-0700), peterz@infradead.org wrote: > On Mon, Sep 14, 2015 at 03:50:43PM -0700, Palmer Dabbelt wrote: >> This has a "#ifdef CONFIG_*" that used to be exposed to userspace. >> >> The names in here are so generic that I don't think it's a good idea >> to expose them to userspace (or even the rest of the kernel). Since >> there's only one kernel user, it's been moved to that file. >> >> Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> >> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> >> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> >> --- >> include/uapi/linux/hw_breakpoint.h | 10 ---------- >> kernel/events/hw_breakpoint.c | 10 ++++++++++ >> 2 files changed, 10 insertions(+), 10 deletions(-) >> >> diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h >> index b04000a2296a..7a6a5a7f9511 100644 >> --- a/include/uapi/linux/hw_breakpoint.h >> +++ b/include/uapi/linux/hw_breakpoint.h >> @@ -17,14 +17,4 @@ enum { >> HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, >> }; >> >> -enum bp_type_idx { >> - TYPE_INST = 0, >> -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS >> - TYPE_DATA = 0, >> -#else >> - TYPE_DATA = 1, >> -#endif >> - TYPE_MAX >> -}; > > This is rather unfortunate; you are correct that the naming is too > generic (and I tend to agree), but I think these values are required by > userspace to fill out: > > perf_event_attr::bp_type > > So removing them will break things. > > Frederic? perf_event_open(2) says bp_type (since Linux 2.6.33) This chooses the breakpoint type. It is one of: HW_BREAKPOINT_EMPTY No breakpoint. HW_BREAKPOINT_R Count when we read the memory location. HW_BREAKPOINT_W Count when we write the memory location. HW_BREAKPOINT_RW Count when we read or write the memory location. HW_BREAKPOINT_X Count when we execute code at the memory location. The values can be combined via a bitwise or, but the combination of HW_BREAKPOINT_R or HW_BREAKPOINT_W with HW_BREAKPOINT_X is not allowed. so I think removing this enum from userspace is OK. Did I miss something? ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-09-15 18:40 ` Palmer Dabbelt 2015-09-15 18:40 ` Palmer Dabbelt @ 2015-09-15 19:39 ` Peter Zijlstra [not found] ` <20150915193910.GH16853-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org> 1 sibling, 1 reply; 327+ messages in thread From: Peter Zijlstra @ 2015-09-15 19:39 UTC (permalink / raw) To: Palmer Dabbelt Cc: arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, tglx, tomi.valkeinen, vgoyal, x86, fweisbec On Tue, Sep 15, 2015 at 11:40:11AM -0700, Palmer Dabbelt wrote: > On Tue, 15 Sep 2015 01:06:07 PDT (-0700), peterz@infradead.org wrote: > > On Mon, Sep 14, 2015 at 03:50:43PM -0700, Palmer Dabbelt wrote: > >> This has a "#ifdef CONFIG_*" that used to be exposed to userspace. > >> > >> The names in here are so generic that I don't think it's a good idea > >> to expose them to userspace (or even the rest of the kernel). Since > >> there's only one kernel user, it's been moved to that file. > >> > >> Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> > >> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> > >> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> > >> --- > >> include/uapi/linux/hw_breakpoint.h | 10 ---------- > >> kernel/events/hw_breakpoint.c | 10 ++++++++++ > >> 2 files changed, 10 insertions(+), 10 deletions(-) > >> > >> diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h > >> index b04000a2296a..7a6a5a7f9511 100644 > >> --- a/include/uapi/linux/hw_breakpoint.h > >> +++ b/include/uapi/linux/hw_breakpoint.h > >> @@ -17,14 +17,4 @@ enum { > >> HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, > >> }; > >> > >> -enum bp_type_idx { > >> - TYPE_INST = 0, > >> -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS > >> - TYPE_DATA = 0, > >> -#else > >> - TYPE_DATA = 1, > >> -#endif > >> - TYPE_MAX > >> -}; > > > > This is rather unfortunate; you are correct that the naming is too > > generic (and I tend to agree), but I think these values are required by > > userspace to fill out: > > > > perf_event_attr::bp_type > > > > So removing them will break things. > > > > Frederic? > > perf_event_open(2) says > > bp_type (since Linux 2.6.33) > This chooses the breakpoint type. It is one of: > > HW_BREAKPOINT_EMPTY > No breakpoint. > > HW_BREAKPOINT_R > Count when we read the memory location. > > HW_BREAKPOINT_W > Count when we write the memory location. > > HW_BREAKPOINT_RW > Count when we read or write the memory location. > > HW_BREAKPOINT_X > Count when we execute code at the memory location. > > The values can be combined via a bitwise or, but the combination > of HW_BREAKPOINT_R or HW_BREAKPOINT_W with HW_BREAKPOINT_X is > not allowed. > > so I think removing this enum from userspace is OK. Did I miss > something? Nah, could've just been me not being awake. Unless Frederic says otherwise I'll chalk it up to not having drank enough morning juice. ^ permalink raw reply [flat|nested] 327+ messages in thread
[parent not found: <20150915193910.GH16853-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>]
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c [not found] ` <20150915193910.GH16853-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org> @ 2015-09-17 3:56 ` Palmer Dabbelt 2015-09-17 3:56 ` Palmer Dabbelt 0 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-17 3:56 UTC (permalink / raw) To: peterz-wEGCiKHe2LqWVfeAwA7xHQ Cc: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, fweisbec-Re5JQEeQqe8AvxtiuMwx3w On Tue, 15 Sep 2015 12:39:10 PDT (-0700), peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org wrote: > On Tue, Sep 15, 2015 at 11:40:11AM -0700, Palmer Dabbelt wrote: >> On Tue, 15 Sep 2015 01:06:07 PDT (-0700), peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org wrote: >> > On Mon, Sep 14, 2015 at 03:50:43PM -0700, Palmer Dabbelt wrote: >> >> This has a "#ifdef CONFIG_*" that used to be exposed to userspace. >> >> >> >> The names in here are so generic that I don't think it's a good idea >> >> to expose them to userspace (or even the rest of the kernel). Since >> >> there's only one kernel user, it's been moved to that file. >> >> >> >> Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> >> >> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> >> >> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> >> >> --- >> >> include/uapi/linux/hw_breakpoint.h | 10 ---------- >> >> kernel/events/hw_breakpoint.c | 10 ++++++++++ >> >> 2 files changed, 10 insertions(+), 10 deletions(-) >> >> >> >> diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h >> >> index b04000a2296a..7a6a5a7f9511 100644 >> >> --- a/include/uapi/linux/hw_breakpoint.h >> >> +++ b/include/uapi/linux/hw_breakpoint.h >> >> @@ -17,14 +17,4 @@ enum { >> >> HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, >> >> }; >> >> >> >> -enum bp_type_idx { >> >> - TYPE_INST = 0, >> >> -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS >> >> - TYPE_DATA = 0, >> >> -#else >> >> - TYPE_DATA = 1, >> >> -#endif >> >> - TYPE_MAX >> >> -}; >> > >> > This is rather unfortunate; you are correct that the naming is too >> > generic (and I tend to agree), but I think these values are required by >> > userspace to fill out: >> > >> > perf_event_attr::bp_type >> > >> > So removing them will break things. >> > >> > Frederic? >> >> perf_event_open(2) says >> >> bp_type (since Linux 2.6.33) >> This chooses the breakpoint type. It is one of: >> >> HW_BREAKPOINT_EMPTY >> No breakpoint. >> >> HW_BREAKPOINT_R >> Count when we read the memory location. >> >> HW_BREAKPOINT_W >> Count when we write the memory location. >> >> HW_BREAKPOINT_RW >> Count when we read or write the memory location. >> >> HW_BREAKPOINT_X >> Count when we execute code at the memory location. >> >> The values can be combined via a bitwise or, but the combination >> of HW_BREAKPOINT_R or HW_BREAKPOINT_W with HW_BREAKPOINT_X is >> not allowed. >> >> so I think removing this enum from userspace is OK. Did I miss >> something? > > Nah, could've just been me not being awake. Unless Frederic says > otherwise I'll chalk it up to not having drank enough morning juice. Well, I'm going to leave this alone, then -- as Arnd pointed out in a later email that got mis-threaded, this would be super tricky to fix if userspace actually relied on it (which is why I was scared I was wrong). v4 (which is hopefully the final version of the patch set) will leave this as it is. ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-09-17 3:56 ` Palmer Dabbelt @ 2015-09-17 3:56 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-17 3:56 UTC (permalink / raw) To: peterz Cc: arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, tglx, tomi.valkeinen, vgoyal, x86, fweisbec On Tue, 15 Sep 2015 12:39:10 PDT (-0700), peterz@infradead.org wrote: > On Tue, Sep 15, 2015 at 11:40:11AM -0700, Palmer Dabbelt wrote: >> On Tue, 15 Sep 2015 01:06:07 PDT (-0700), peterz@infradead.org wrote: >> > On Mon, Sep 14, 2015 at 03:50:43PM -0700, Palmer Dabbelt wrote: >> >> This has a "#ifdef CONFIG_*" that used to be exposed to userspace. >> >> >> >> The names in here are so generic that I don't think it's a good idea >> >> to expose them to userspace (or even the rest of the kernel). Since >> >> there's only one kernel user, it's been moved to that file. >> >> >> >> Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> >> >> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> >> >> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> >> >> --- >> >> include/uapi/linux/hw_breakpoint.h | 10 ---------- >> >> kernel/events/hw_breakpoint.c | 10 ++++++++++ >> >> 2 files changed, 10 insertions(+), 10 deletions(-) >> >> >> >> diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h >> >> index b04000a2296a..7a6a5a7f9511 100644 >> >> --- a/include/uapi/linux/hw_breakpoint.h >> >> +++ b/include/uapi/linux/hw_breakpoint.h >> >> @@ -17,14 +17,4 @@ enum { >> >> HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, >> >> }; >> >> >> >> -enum bp_type_idx { >> >> - TYPE_INST = 0, >> >> -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS >> >> - TYPE_DATA = 0, >> >> -#else >> >> - TYPE_DATA = 1, >> >> -#endif >> >> - TYPE_MAX >> >> -}; >> > >> > This is rather unfortunate; you are correct that the naming is too >> > generic (and I tend to agree), but I think these values are required by >> > userspace to fill out: >> > >> > perf_event_attr::bp_type >> > >> > So removing them will break things. >> > >> > Frederic? >> >> perf_event_open(2) says >> >> bp_type (since Linux 2.6.33) >> This chooses the breakpoint type. It is one of: >> >> HW_BREAKPOINT_EMPTY >> No breakpoint. >> >> HW_BREAKPOINT_R >> Count when we read the memory location. >> >> HW_BREAKPOINT_W >> Count when we write the memory location. >> >> HW_BREAKPOINT_RW >> Count when we read or write the memory location. >> >> HW_BREAKPOINT_X >> Count when we execute code at the memory location. >> >> The values can be combined via a bitwise or, but the combination >> of HW_BREAKPOINT_R or HW_BREAKPOINT_W with HW_BREAKPOINT_X is >> not allowed. >> >> so I think removing this enum from userspace is OK. Did I miss >> something? > > Nah, could've just been me not being awake. Unless Frederic says > otherwise I'll chalk it up to not having drank enough morning juice. Well, I'm going to leave this alone, then -- as Arnd pointed out in a later email that got mis-threaded, this would be super tricky to fix if userspace actually relied on it (which is why I was scared I was wrong). v4 (which is hopefully the final version of the patch set) will leave this as it is. ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-09-15 8:06 ` Peter Zijlstra 2015-09-15 8:06 ` Peter Zijlstra 2015-09-15 18:40 ` Palmer Dabbelt @ 2015-09-15 21:15 ` Arnd Bergmann 2015-09-17 10:28 ` David Howells 2015-09-24 12:15 ` Frederic Weisbecker 2 siblings, 2 replies; 327+ messages in thread From: Arnd Bergmann @ 2015-09-15 21:15 UTC (permalink / raw) To: Peter Zijlstra, mathieu.desnoyers Cc: Palmer Dabbelt, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, jcmvbkbc, paulmck, tglx, tomi.valkeinen, vgoyal, x86, Frederic Weisbecker On Tuesday 15 September 2015 10:06:07 Peter Zijlstra wrote: > > diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h > > index b04000a2296a..7a6a5a7f9511 100644 > > --- a/include/uapi/linux/hw_breakpoint.h > > +++ b/include/uapi/linux/hw_breakpoint.h > > @@ -17,14 +17,4 @@ enum { > > HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, > > }; > > > > -enum bp_type_idx { > > - TYPE_INST = 0, > > -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS > > - TYPE_DATA = 0, > > -#else > > - TYPE_DATA = 1, > > -#endif > > - TYPE_MAX > > -}; > > This is rather unfortunate; you are correct that the naming is too > generic (and I tend to agree), but I think these values are required by > userspace to fill out: > > perf_event_attr::bp_type > > So removing them will break things. > > Frederic? If user space actually relies on the definition from this header file, then it will use the wrong one on x86 and get 'TYPE_DATA = 1', while the kernel uses 'TYPE_DATA = 0'. That seems unlikely to work, so I suspect it gets a different definition. If it uses this definition and it does work, we can probably use #if defined(__KERNEL__) && defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) but that requires a comment explaining exactly why that works. Arnd ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-09-15 21:15 ` Arnd Bergmann @ 2015-09-17 10:28 ` David Howells 2015-09-17 10:28 ` David Howells 2015-09-24 12:15 ` Frederic Weisbecker 1 sibling, 1 reply; 327+ messages in thread From: David Howells @ 2015-09-17 10:28 UTC (permalink / raw) To: Arnd Bergmann Cc: dhowells, Peter Zijlstra, mathieu.desnoyers, Palmer Dabbelt, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, jcmvbkbc, paulmck, tglx, tomi.valkeinen, vgoyal, x86, Frederi Arnd Bergmann <arnd@arndb.de> wrote: > That seems unlikely to work, so I suspect it gets a different definition. > If it uses this definition and it does work, we can probably use > > #if defined(__KERNEL__) && defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) > > but that requires a comment explaining exactly why that works. Are you suggesting wrapping the entire construct in this within the UAPI header? David ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-09-17 10:28 ` David Howells @ 2015-09-17 10:28 ` David Howells 0 siblings, 0 replies; 327+ messages in thread From: David Howells @ 2015-09-17 10:28 UTC (permalink / raw) To: Arnd Bergmann Cc: dhowells, Peter Zijlstra, mathieu.desnoyers, Palmer Dabbelt, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, jcmvbkbc, paulmck, tglx, tomi.valkeinen, vgoyal, x86, Frederic Weisbecker Arnd Bergmann <arnd@arndb.de> wrote: > That seems unlikely to work, so I suspect it gets a different definition. > If it uses this definition and it does work, we can probably use > > #if defined(__KERNEL__) && defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) > > but that requires a comment explaining exactly why that works. Are you suggesting wrapping the entire construct in this within the UAPI header? David ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-09-15 21:15 ` Arnd Bergmann 2015-09-17 10:28 ` David Howells @ 2015-09-24 12:15 ` Frederic Weisbecker 2015-09-24 12:15 ` Frederic Weisbecker 1 sibling, 1 reply; 327+ messages in thread From: Frederic Weisbecker @ 2015-09-24 12:15 UTC (permalink / raw) To: Arnd Bergmann Cc: Peter Zijlstra, mathieu.desnoyers, Palmer Dabbelt, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, jcmvbkbc, paulmck, tglx, tomi.valkeinen, vgoyal, x86 On Tue, Sep 15, 2015 at 11:15:29PM +0200, Arnd Bergmann wrote: > On Tuesday 15 September 2015 10:06:07 Peter Zijlstra wrote: > > > diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h > > > index b04000a2296a..7a6a5a7f9511 100644 > > > --- a/include/uapi/linux/hw_breakpoint.h > > > +++ b/include/uapi/linux/hw_breakpoint.h > > > @@ -17,14 +17,4 @@ enum { > > > HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, > > > }; > > > > > > -enum bp_type_idx { > > > - TYPE_INST = 0, > > > -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS > > > - TYPE_DATA = 0, > > > -#else > > > - TYPE_DATA = 1, > > > -#endif > > > - TYPE_MAX > > > -}; > > > > This is rather unfortunate; you are correct that the naming is too > > generic (and I tend to agree), but I think these values are required by > > userspace to fill out: > > > > perf_event_attr::bp_type > > > > So removing them will break things. > > > > Frederic? > > If user space actually relies on the definition from this header file, > then it will use the wrong one on x86 and get 'TYPE_DATA = 1', while the > kernel uses 'TYPE_DATA = 0'. > > That seems unlikely to work, so I suspect it gets a different definition. > If it uses this definition and it does work, we can probably use > > #if defined(__KERNEL__) && defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) > > but that requires a comment explaining exactly why that works. I think this TYPE_DATA/TYPE_INST can be safely removed from uapi. This is only about internal kernel code. Userspace only relies on HW_BREAKPOINT_[R/W/X] to tell about the nature of the breakpoint. If userspace ever relies on it, which I have no idea why, it even needs to define CONFIG_HAVE_MIXED_BREAKPOINTS_REGS. No really there shouldn't be any user of that outside the kernel. Thanks. > > Arnd ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-09-24 12:15 ` Frederic Weisbecker @ 2015-09-24 12:15 ` Frederic Weisbecker 0 siblings, 0 replies; 327+ messages in thread From: Frederic Weisbecker @ 2015-09-24 12:15 UTC (permalink / raw) To: Arnd Bergmann Cc: Peter Zijlstra, mathieu.desnoyers, Palmer Dabbelt, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, jcmvbkbc, paulmck, tglx, tomi.valkeinen, vgoyal, x86 On Tue, Sep 15, 2015 at 11:15:29PM +0200, Arnd Bergmann wrote: > On Tuesday 15 September 2015 10:06:07 Peter Zijlstra wrote: > > > diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h > > > index b04000a2296a..7a6a5a7f9511 100644 > > > --- a/include/uapi/linux/hw_breakpoint.h > > > +++ b/include/uapi/linux/hw_breakpoint.h > > > @@ -17,14 +17,4 @@ enum { > > > HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, > > > }; > > > > > > -enum bp_type_idx { > > > - TYPE_INST = 0, > > > -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS > > > - TYPE_DATA = 0, > > > -#else > > > - TYPE_DATA = 1, > > > -#endif > > > - TYPE_MAX > > > -}; > > > > This is rather unfortunate; you are correct that the naming is too > > generic (and I tend to agree), but I think these values are required by > > userspace to fill out: > > > > perf_event_attr::bp_type > > > > So removing them will break things. > > > > Frederic? > > If user space actually relies on the definition from this header file, > then it will use the wrong one on x86 and get 'TYPE_DATA = 1', while the > kernel uses 'TYPE_DATA = 0'. > > That seems unlikely to work, so I suspect it gets a different definition. > If it uses this definition and it does work, we can probably use > > #if defined(__KERNEL__) && defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) > > but that requires a comment explaining exactly why that works. I think this TYPE_DATA/TYPE_INST can be safely removed from uapi. This is only about internal kernel code. Userspace only relies on HW_BREAKPOINT_[R/W/X] to tell about the nature of the breakpoint. If userspace ever relies on it, which I have no idea why, it even needs to define CONFIG_HAVE_MIXED_BREAKPOINTS_REGS. No really there shouldn't be any user of that outside the kernel. Thanks. > > Arnd ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-09-14 22:50 ` Palmer Dabbelt ` (25 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (15 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This has a "#ifdef CONFIG_*" that used to be exposed to userspace. The names in here are so generic that I don't think it's a good idea to expose them to userspace (or even the rest of the kernel). Since there's only one kernel user, it's been moved to that file. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/hw_breakpoint.h | 10 ---------- kernel/events/hw_breakpoint.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h index b04000a2296a..7a6a5a7f9511 100644 --- a/include/uapi/linux/hw_breakpoint.h +++ b/include/uapi/linux/hw_breakpoint.h @@ -17,14 +17,4 @@ enum { HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, }; -enum bp_type_idx { - TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS - TYPE_DATA = 0, -#else - TYPE_DATA = 1, -#endif - TYPE_MAX -}; - #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c index 92ce5f4ccc26..5ad117e0f55b 100644 --- a/kernel/events/hw_breakpoint.c +++ b/kernel/events/hw_breakpoint.c @@ -58,6 +58,16 @@ struct bp_cpuinfo { unsigned int flexible; /* XXX: placeholder, see fetch_this_slot() */ }; +enum bp_type_idx { + TYPE_INST = 0, +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + static DEFINE_PER_CPU(struct bp_cpuinfo, bp_cpuinfo[TYPE_MAX]); static int nr_slots[TYPE_MAX]; -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-09-14 22:50 ` Palmer Dabbelt ` (26 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt ` (14 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This has a "#ifdef CONFIG_*" that used to be exposed to userspace. The names in here are so generic that I don't think it's a good idea to expose them to userspace (or even the rest of the kernel). Since there's only one kernel user, it's been moved to that file. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/hw_breakpoint.h | 10 ---------- kernel/events/hw_breakpoint.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h index b04000a2296a..7a6a5a7f9511 100644 --- a/include/uapi/linux/hw_breakpoint.h +++ b/include/uapi/linux/hw_breakpoint.h @@ -17,14 +17,4 @@ enum { HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, }; -enum bp_type_idx { - TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS - TYPE_DATA = 0, -#else - TYPE_DATA = 1, -#endif - TYPE_MAX -}; - #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c index 92ce5f4ccc26..5ad117e0f55b 100644 --- a/kernel/events/hw_breakpoint.c +++ b/kernel/events/hw_breakpoint.c @@ -58,6 +58,16 @@ struct bp_cpuinfo { unsigned int flexible; /* XXX: placeholder, see fetch_this_slot() */ }; +enum bp_type_idx { + TYPE_INST = 0, +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + static DEFINE_PER_CPU(struct bp_cpuinfo, bp_cpuinfo[TYPE_MAX]); static int nr_slots[TYPE_MAX]; -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c 2015-09-14 22:50 ` Palmer Dabbelt ` (27 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (13 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I don't think this was ever intended to be exposed to userspace, but it did require an "#ifdef CONFIG_*". Since the name is kind of generic and was only used in one place, I've moved the definition to the one user. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/block/pktcdvd.c | 11 +++++++++++ include/uapi/linux/pktcdvd.h | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 7be2375db7f2..18d2d05f5ac9 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -90,6 +90,17 @@ do { \ #define MAX_SPEED 0xffff +/* + * use drive write caching -- we need deferred error handling to be + * able to successfully recover with this option (drive will return good + * status as soon as the cdb is validated). + */ +#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) +#define USE_WCACHING 1 +#else +#define USE_WCACHING 0 +#endif + static DEFINE_MUTEX(pktcdvd_mutex); static struct pktcdvd_device *pkt_devs[MAX_WRITERS]; static struct proc_dir_entry *pkt_proc; diff --git a/include/uapi/linux/pktcdvd.h b/include/uapi/linux/pktcdvd.h index 2640b9d4e243..05c2bee70d6c 100644 --- a/include/uapi/linux/pktcdvd.h +++ b/include/uapi/linux/pktcdvd.h @@ -29,17 +29,6 @@ #define PACKET_WAIT_TIME (HZ * 5 / 1000) /* - * use drive write caching -- we need deferred error handling to be - * able to successfully recover with this option (drive will return good - * status as soon as the cdb is validated). - */ -#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) -#define USE_WCACHING 1 -#else -#define USE_WCACHING 0 -#endif - -/* * No user-servicable parts beyond this point -> */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c 2015-09-14 22:50 ` Palmer Dabbelt ` (28 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (12 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I don't think this was ever intended to be exposed to userspace, but it did require an "#ifdef CONFIG_*". Since the name is kind of generic and was only used in one place, I've moved the definition to the one user. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/block/pktcdvd.c | 11 +++++++++++ include/uapi/linux/pktcdvd.h | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 7be2375db7f2..18d2d05f5ac9 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -90,6 +90,17 @@ do { \ #define MAX_SPEED 0xffff +/* + * use drive write caching -- we need deferred error handling to be + * able to successfully recover with this option (drive will return good + * status as soon as the cdb is validated). + */ +#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) +#define USE_WCACHING 1 +#else +#define USE_WCACHING 0 +#endif + static DEFINE_MUTEX(pktcdvd_mutex); static struct pktcdvd_device *pkt_devs[MAX_WRITERS]; static struct proc_dir_entry *pkt_proc; diff --git a/include/uapi/linux/pktcdvd.h b/include/uapi/linux/pktcdvd.h index 2640b9d4e243..05c2bee70d6c 100644 --- a/include/uapi/linux/pktcdvd.h +++ b/include/uapi/linux/pktcdvd.h @@ -29,17 +29,6 @@ #define PACKET_WAIT_TIME (HZ * 5 / 1000) /* - * use drive write caching -- we need deferred error handling to be - * able to successfully recover with this option (drive will return good - * status as soon as the cdb is validated). - */ -#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) -#define USE_WCACHING 1 -#else -#define USE_WCACHING 0 -#endif - -/* * No user-servicable parts beyond this point -> */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c 2015-09-14 22:50 ` Palmer Dabbelt ` (29 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 11/13] Always define MAX_RAW_MINORS as 65535 in userspace Palmer Dabbelt ` (11 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I don't think this was ever intended to be exposed to userspace, but it did require an "#ifdef CONFIG_*". Since the name is kind of generic and was only used in one place, I've moved the definition to the one user. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/block/pktcdvd.c | 11 +++++++++++ include/uapi/linux/pktcdvd.h | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 7be2375db7f2..18d2d05f5ac9 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -90,6 +90,17 @@ do { \ #define MAX_SPEED 0xffff +/* + * use drive write caching -- we need deferred error handling to be + * able to successfully recover with this option (drive will return good + * status as soon as the cdb is validated). + */ +#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) +#define USE_WCACHING 1 +#else +#define USE_WCACHING 0 +#endif + static DEFINE_MUTEX(pktcdvd_mutex); static struct pktcdvd_device *pkt_devs[MAX_WRITERS]; static struct proc_dir_entry *pkt_proc; diff --git a/include/uapi/linux/pktcdvd.h b/include/uapi/linux/pktcdvd.h index 2640b9d4e243..05c2bee70d6c 100644 --- a/include/uapi/linux/pktcdvd.h +++ b/include/uapi/linux/pktcdvd.h @@ -29,17 +29,6 @@ #define PACKET_WAIT_TIME (HZ * 5 / 1000) /* - * use drive write caching -- we need deferred error handling to be - * able to successfully recover with this option (drive will return good - * status as soon as the cdb is validated). - */ -#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) -#define USE_WCACHING 1 -#else -#define USE_WCACHING 0 -#endif - -/* * No user-servicable parts beyond this point -> */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 11/13] Always define MAX_RAW_MINORS as 65535 in userspace 2015-09-14 22:50 ` Palmer Dabbelt ` (30 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt [not found] ` <1442271047-4908-12-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> 2015-09-14 22:50 ` Palmer Dabbelt ` (10 subsequent siblings) 42 siblings, 2 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt While I don't think this was ever meant to be exposed to userspace, if anyone is using it then this will at least provide a correct (if unlikely) definition. MAX_RAW_MINORS used to be used in the kernel, where it's been replaced with CONFIG_MAX_RAW_MINORS. Note that there's a checkpatch.pl warning about a split config string here, but I've left that alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/char/raw.c | 7 ++++--- include/uapi/linux/raw.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 60316fbaf295..362d7a6511b9 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -36,7 +36,7 @@ static struct raw_device_data *raw_devices; static DEFINE_MUTEX(raw_mutex); static const struct file_operations raw_ctl_fops; /* forward declaration */ -static int max_raw_minors = MAX_RAW_MINORS; +static int max_raw_minors = CONFIG_MAX_RAW_MINORS; module_param(max_raw_minors, int, 0); MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); @@ -317,8 +317,9 @@ static int __init raw_init(void) if (max_raw_minors < 1 || max_raw_minors > 65536) { printk(KERN_WARNING "raw: invalid max_raw_minors (must be" - " between 1 and 65536), using %d\n", MAX_RAW_MINORS); - max_raw_minors = MAX_RAW_MINORS; + " between 1 and 65536), using %d\n", + CONFIG_MAX_RAW_MINORS); + max_raw_minors = CONFIG_MAX_RAW_MINORS; } raw_devices = vzalloc(sizeof(struct raw_device_data) * max_raw_minors); diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e70603..f0390b3e8530 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,6 @@ struct raw_config_request __u64 block_minor; }; -#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#define MAX_RAW_MINORS 65535 #endif /* __LINUX_RAW_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 11/13] Always define MAX_RAW_MINORS as 65535 in userspace 2015-09-14 22:50 ` [PATCH 11/13] Always define MAX_RAW_MINORS as 65535 in userspace Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt [not found] ` <1442271047-4908-12-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> 1 sibling, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt While I don't think this was ever meant to be exposed to userspace, if anyone is using it then this will at least provide a correct (if unlikely) definition. MAX_RAW_MINORS used to be used in the kernel, where it's been replaced with CONFIG_MAX_RAW_MINORS. Note that there's a checkpatch.pl warning about a split config string here, but I've left that alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/char/raw.c | 7 ++++--- include/uapi/linux/raw.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 60316fbaf295..362d7a6511b9 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -36,7 +36,7 @@ static struct raw_device_data *raw_devices; static DEFINE_MUTEX(raw_mutex); static const struct file_operations raw_ctl_fops; /* forward declaration */ -static int max_raw_minors = MAX_RAW_MINORS; +static int max_raw_minors = CONFIG_MAX_RAW_MINORS; module_param(max_raw_minors, int, 0); MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); @@ -317,8 +317,9 @@ static int __init raw_init(void) if (max_raw_minors < 1 || max_raw_minors > 65536) { printk(KERN_WARNING "raw: invalid max_raw_minors (must be" - " between 1 and 65536), using %d\n", MAX_RAW_MINORS); - max_raw_minors = MAX_RAW_MINORS; + " between 1 and 65536), using %d\n", + CONFIG_MAX_RAW_MINORS); + max_raw_minors = CONFIG_MAX_RAW_MINORS; } raw_devices = vzalloc(sizeof(struct raw_device_data) * max_raw_minors); diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e70603..f0390b3e8530 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,6 @@ struct raw_config_request __u64 block_minor; }; -#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#define MAX_RAW_MINORS 65535 #endif /* __LINUX_RAW_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
[parent not found: <1442271047-4908-12-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>]
* Re: [PATCH 11/13] Always define MAX_RAW_MINORS as 65535 in userspace [not found] ` <1442271047-4908-12-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> @ 2015-09-15 20:42 ` H. Peter Anvin 2015-09-15 20:42 ` H. Peter Anvin 2015-09-17 3:08 ` Palmer Dabbelt 0 siblings, 2 replies; 327+ messages in thread From: H. Peter Anvin @ 2015-09-15 20:42 UTC (permalink / raw) To: Palmer Dabbelt, arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A On 09/14/2015 03:50 PM, Palmer Dabbelt wrote: > While I don't think this was ever meant to be exposed to userspace, if > anyone is using it then this will at least provide a correct (if > unlikely) definition. > > MAX_RAW_MINORS used to be used in the kernel, where it's been replaced > with CONFIG_MAX_RAW_MINORS. > > Note that there's a checkpatch.pl warning about a split config string > here, but I've left that alone. From a UAPI perspective I would think the right value would be 2^20. -hpa ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 11/13] Always define MAX_RAW_MINORS as 65535 in userspace 2015-09-15 20:42 ` H. Peter Anvin @ 2015-09-15 20:42 ` H. Peter Anvin 2015-09-17 3:08 ` Palmer Dabbelt 1 sibling, 0 replies; 327+ messages in thread From: H. Peter Anvin @ 2015-09-15 20:42 UTC (permalink / raw) To: Palmer Dabbelt, arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 On 09/14/2015 03:50 PM, Palmer Dabbelt wrote: > While I don't think this was ever meant to be exposed to userspace, if > anyone is using it then this will at least provide a correct (if > unlikely) definition. > > MAX_RAW_MINORS used to be used in the kernel, where it's been replaced > with CONFIG_MAX_RAW_MINORS. > > Note that there's a checkpatch.pl warning about a split config string > here, but I've left that alone. ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 11/13] Always define MAX_RAW_MINORS as 65535 in userspace 2015-09-15 20:42 ` H. Peter Anvin 2015-09-15 20:42 ` H. Peter Anvin @ 2015-09-17 3:08 ` Palmer Dabbelt 1 sibling, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-17 3:08 UTC (permalink / raw) To: hpa Cc: arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 On Tue, 15 Sep 2015 13:42:47 PDT (-0700), hpa@zytor.com wrote: > On 09/14/2015 03:50 PM, Palmer Dabbelt wrote: >> While I don't think this was ever meant to be exposed to userspace, if >> anyone is using it then this will at least provide a correct (if >> unlikely) definition. >> >> MAX_RAW_MINORS used to be used in the kernel, where it's been replaced >> with CONFIG_MAX_RAW_MINORS. >> >> Note that there's a checkpatch.pl warning about a split config string >> here, but I've left that alone. > > From a UAPI perspective I would think the right value would be 2^20. Wow, I'm super surprised. For some reason I thought major/minor numbers were 16 bits, but according to glibc I just have no idea what I'm doing :). Thanks for catching this! ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH 11/13] Always define MAX_RAW_MINORS as 65535 in userspace 2015-09-14 22:50 ` Palmer Dabbelt ` (31 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 11/13] Always define MAX_RAW_MINORS as 65535 in userspace Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (9 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt While I don't think this was ever meant to be exposed to userspace, if anyone is using it then this will at least provide a correct (if unlikely) definition. MAX_RAW_MINORS used to be used in the kernel, where it's been replaced with CONFIG_MAX_RAW_MINORS. Note that there's a checkpatch.pl warning about a split config string here, but I've left that alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/char/raw.c | 7 ++++--- include/uapi/linux/raw.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 60316fbaf295..362d7a6511b9 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -36,7 +36,7 @@ static struct raw_device_data *raw_devices; static DEFINE_MUTEX(raw_mutex); static const struct file_operations raw_ctl_fops; /* forward declaration */ -static int max_raw_minors = MAX_RAW_MINORS; +static int max_raw_minors = CONFIG_MAX_RAW_MINORS; module_param(max_raw_minors, int, 0); MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); @@ -317,8 +317,9 @@ static int __init raw_init(void) if (max_raw_minors < 1 || max_raw_minors > 65536) { printk(KERN_WARNING "raw: invalid max_raw_minors (must be" - " between 1 and 65536), using %d\n", MAX_RAW_MINORS); - max_raw_minors = MAX_RAW_MINORS; + " between 1 and 65536), using %d\n", + CONFIG_MAX_RAW_MINORS); + max_raw_minors = CONFIG_MAX_RAW_MINORS; } raw_devices = vzalloc(sizeof(struct raw_device_data) * max_raw_minors); diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e70603..f0390b3e8530 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,6 @@ struct raw_config_request __u64 block_minor; }; -#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#define MAX_RAW_MINORS 65535 #endif /* __LINUX_RAW_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 11/13] Always define MAX_RAW_MINORS as 65535 in userspace 2015-09-14 22:50 ` Palmer Dabbelt ` (32 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 Palmer Dabbelt ` (8 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt While I don't think this was ever meant to be exposed to userspace, if anyone is using it then this will at least provide a correct (if unlikely) definition. MAX_RAW_MINORS used to be used in the kernel, where it's been replaced with CONFIG_MAX_RAW_MINORS. Note that there's a checkpatch.pl warning about a split config string here, but I've left that alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/char/raw.c | 7 ++++--- include/uapi/linux/raw.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 60316fbaf295..362d7a6511b9 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -36,7 +36,7 @@ static struct raw_device_data *raw_devices; static DEFINE_MUTEX(raw_mutex); static const struct file_operations raw_ctl_fops; /* forward declaration */ -static int max_raw_minors = MAX_RAW_MINORS; +static int max_raw_minors = CONFIG_MAX_RAW_MINORS; module_param(max_raw_minors, int, 0); MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); @@ -317,8 +317,9 @@ static int __init raw_init(void) if (max_raw_minors < 1 || max_raw_minors > 65536) { printk(KERN_WARNING "raw: invalid max_raw_minors (must be" - " between 1 and 65536), using %d\n", MAX_RAW_MINORS); - max_raw_minors = MAX_RAW_MINORS; + " between 1 and 65536), using %d\n", + CONFIG_MAX_RAW_MINORS); + max_raw_minors = CONFIG_MAX_RAW_MINORS; } raw_devices = vzalloc(sizeof(struct raw_device_data) * max_raw_minors); diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e70603..f0390b3e8530 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,6 @@ struct raw_config_request __u64 block_minor; }; -#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#define MAX_RAW_MINORS 65535 #endif /* __LINUX_RAW_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 2015-09-14 22:50 ` Palmer Dabbelt ` (33 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (7 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt It looks like there aren't actually users of this macro anywhere: * The kernel doesn't use it on x86 because we don't suppor ELF FDPIC. * The only Google results point to LMKL patches, both the one that wrote this (from 2010) and my patch to hide it behind __KERNEL__. * I grep'd through all the source tarballs on my machine, and the only packages that matched were the kernel and crui (which copied a PPC kernel header). Since I'm not sure how to actually provide the right answer (if I understand correctly, CONFIG_IA32_EMULATION is not __i386__), the only thing I can think of to do is to just remove the definition. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- arch/x86/include/uapi/asm/auxvec.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm/auxvec.h index 77203ac352de..1316b4c35425 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -9,11 +9,4 @@ #endif #define AT_SYSINFO_EHDR 33 -/* entries in ARCH_DLINFO: */ -#if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) -# define AT_VECTOR_SIZE_ARCH 2 -#else /* else it's non-compat x86-64 */ -# define AT_VECTOR_SIZE_ARCH 1 -#endif - #endif /* _ASM_X86_AUXVEC_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 2015-09-14 22:50 ` Palmer Dabbelt ` (34 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (6 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt It looks like there aren't actually users of this macro anywhere: * The kernel doesn't use it on x86 because we don't suppor ELF FDPIC. * The only Google results point to LMKL patches, both the one that wrote this (from 2010) and my patch to hide it behind __KERNEL__. * I grep'd through all the source tarballs on my machine, and the only packages that matched were the kernel and crui (which copied a PPC kernel header). Since I'm not sure how to actually provide the right answer (if I understand correctly, CONFIG_IA32_EMULATION is not __i386__), the only thing I can think of to do is to just remove the definition. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- arch/x86/include/uapi/asm/auxvec.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm/auxvec.h index 77203ac352de..1316b4c35425 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -9,11 +9,4 @@ #endif #define AT_SYSINFO_EHDR 33 -/* entries in ARCH_DLINFO: */ -#if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) -# define AT_VECTOR_SIZE_ARCH 2 -#else /* else it's non-compat x86-64 */ -# define AT_VECTOR_SIZE_ARCH 1 -#endif - #endif /* _ASM_X86_AUXVEC_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 2015-09-14 22:50 ` Palmer Dabbelt ` (35 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt ` (5 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt It looks like there aren't actually users of this macro anywhere: * The kernel doesn't use it on x86 because we don't suppor ELF FDPIC. * The only Google results point to LMKL patches, both the one that wrote this (from 2010) and my patch to hide it behind __KERNEL__. * I grep'd through all the source tarballs on my machine, and the only packages that matched were the kernel and crui (which copied a PPC kernel header). Since I'm not sure how to actually provide the right answer (if I understand correctly, CONFIG_IA32_EMULATION is not __i386__), the only thing I can think of to do is to just remove the definition. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- arch/x86/include/uapi/asm/auxvec.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm/auxvec.h index 77203ac352de..1316b4c35425 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -9,11 +9,4 @@ #endif #define AT_SYSINFO_EHDR 33 -/* entries in ARCH_DLINFO: */ -#if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) -# define AT_VECTOR_SIZE_ARCH 2 -#else /* else it's non-compat x86-64 */ -# define AT_VECTOR_SIZE_ARCH 1 -#endif - #endif /* _ASM_X86_AUXVEC_H */ -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl 2015-09-14 22:50 ` Palmer Dabbelt ` (36 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (4 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I recently got bit by a CONFIG_ in userspace bug. This has apparently happened before, but the check got disabled for triggering too much. In order to reduce false positives, I added some hueristics to avoid detecting comments. Since these tests all pass, I've now re-enabled them. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- scripts/headers_check.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 62320f93e903..dd413ad9c850 100755 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl @@ -40,7 +40,7 @@ foreach my $file (@files) { &check_asm_types(); &check_sizetypes(); &check_declarations(); - # Dropped for now. Too much noise &check_config(); + &check_config(); } close $fh; } @@ -76,9 +76,24 @@ sub check_declarations } } +my $check_config_in_multiline_comment = 0; sub check_config { - if ($line =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { + my $nocomments = $line; + $nocomments =~ s/\/\*.*\*\///; # Remove ANSI-style comments (/* to */) + $nocomments =~ s/\/\/.*//; # Remove C99-style comments (// to EOL) + + # Check to see if we're within a multiline comment, and if so + # just remove the whole line. I tried matching on '^ * ', but + # there's one header that doesn't prepend multi-line comments + # with * so that won't work. + if ($nocomments =~ m/\/\*/) { $check_config_in_multiline_comment = 1; } + if ($nocomments =~ m/\*\//) { $check_config_in_multiline_comment = 0; } + if ($check_config_in_multiline_comment == 1) { $nocomments = "" } + + # Check to see if there is something that looks like CONFIG_ + # inside a userspace-accessible header file and if so, print that out. + if ($nocomments =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n"; } } -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl 2015-09-14 22:50 ` Palmer Dabbelt ` (37 preceding siblings ...) 2015-09-14 22:50 ` [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt ` (3 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I recently got bit by a CONFIG_ in userspace bug. This has apparently happened before, but the check got disabled for triggering too much. In order to reduce false positives, I added some hueristics to avoid detecting comments. Since these tests all pass, I've now re-enabled them. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- scripts/headers_check.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 62320f93e903..dd413ad9c850 100755 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl @@ -40,7 +40,7 @@ foreach my $file (@files) { &check_asm_types(); &check_sizetypes(); &check_declarations(); - # Dropped for now. Too much noise &check_config(); + &check_config(); } close $fh; } @@ -76,9 +76,24 @@ sub check_declarations } } +my $check_config_in_multiline_comment = 0; sub check_config { - if ($line =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { + my $nocomments = $line; + $nocomments =~ s/\/\*.*\*\///; # Remove ANSI-style comments (/* to */) + $nocomments =~ s/\/\/.*//; # Remove C99-style comments (// to EOL) + + # Check to see if we're within a multiline comment, and if so + # just remove the whole line. I tried matching on '^ * ', but + # there's one header that doesn't prepend multi-line comments + # with * so that won't work. + if ($nocomments =~ m/\/\*/) { $check_config_in_multiline_comment = 1; } + if ($nocomments =~ m/\*\//) { $check_config_in_multiline_comment = 0; } + if ($check_config_in_multiline_comment == 1) { $nocomments = "" } + + # Check to see if there is something that looks like CONFIG_ + # inside a userspace-accessible header file and if so, print that out. + if ($nocomments =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n"; } } -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl 2015-09-14 22:50 ` Palmer Dabbelt ` (38 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (2 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I recently got bit by a CONFIG_ in userspace bug. This has apparently happened before, but the check got disabled for triggering too much. In order to reduce false positives, I added some hueristics to avoid detecting comments. Since these tests all pass, I've now re-enabled them. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- scripts/headers_check.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 62320f93e903..dd413ad9c850 100755 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl @@ -40,7 +40,7 @@ foreach my $file (@files) { &check_asm_types(); &check_sizetypes(); &check_declarations(); - # Dropped for now. Too much noise &check_config(); + &check_config(); } close $fh; } @@ -76,9 +76,24 @@ sub check_declarations } } +my $check_config_in_multiline_comment = 0; sub check_config { - if ($line =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { + my $nocomments = $line; + $nocomments =~ s/\/\*.*\*\///; # Remove ANSI-style comments (/* to */) + $nocomments =~ s/\/\/.*//; # Remove C99-style comments (// to EOL) + + # Check to see if we're within a multiline comment, and if so + # just remove the whole line. I tried matching on '^ * ', but + # there's one header that doesn't prepend multi-line comments + # with * so that won't work. + if ($nocomments =~ m/\/\*/) { $check_config_in_multiline_comment = 1; } + if ($nocomments =~ m/\*\//) { $check_config_in_multiline_comment = 0; } + if ($check_config_in_multiline_comment == 1) { $nocomments = "" } + + # Check to see if there is something that looks like CONFIG_ + # inside a userspace-accessible header file and if so, print that out. + if ($nocomments =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n"; } } -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers 2015-09-14 22:50 ` Palmer Dabbelt ` (39 preceding siblings ...) 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt ` (42 more replies) 2015-11-03 19:46 ` [PATCH v4] " Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt 42 siblings, 43 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 I think this is good to go. There are two acks, but I wasn't sure if I was supposed to collect them in the patches or not. Arnd Bergman acked #1 and #7. Changes since v3 (<1442271047-4908-1-git-send-email-palmer@dabbelt.com>) * #4 is very different: rather than defining a canonical value for MAP_UNINITIALIZED, it just punts on the problem and lets arch maintainers deal with it. There's still an #ifndef MAP_UNINITIALIZED in there, but that shouldn't get triggered by anything because the arch headers should set it to whatever they actually want. * #11 defines MAX_RAW_MINORS to 2^20 instead of 2^16. * #13 moves the variable around a bit so it gets initialized. I forgot I was in perl and not C :). Changes since v2 (<1441832902-28993-1-git-send-email-palmer@dabbelt.com>) * Patch set renamed. * #2 is rewritten to use sys_ni.c instead of an #ifdef * #3, #6, #8, #9, #10, and #11 no longer use "#ifdef __KERNEL__" but have instead moved the offending lines to the correct, kernel-only files. * #4 has been rewritten to always define MAP_UNINITIALIZED to non-zero, rather than defining it to zero when in userspace. * #5 got a whole lot longer -- rather than just always hiding these fields from userspace, there is now a second "struct elf_fdpic_prstatus" structure. This should allow userspace to parse core dumps correctly. * Rebased onto 9c488de24f7264f08d341024bffdd637b4d04c96. Changes since v1 (<1441152610-22566-1-git-send-email-palmer@dabbelt.com>) * All patches but #1 were added. ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (41 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063eff..14a5c82 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (40 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063eff..14a5c82 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU Palmer Dabbelt ` (39 subsequent siblings) 42 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063eff..14a5c82 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063eff..14a5c82 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (2 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (38 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I think this change actually doesn't do anything: __NR_fork was still being defined either way, and on my machine fork() in <unistd.h> comes from libc. This just moves to the standard mechanism for defining syscalls that aren't implemented instead, which has the side-effect of no longer having an #ifdef CONFIG_* in a user-visible header. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/unistd.h | 4 ---- kernel/sys_ni.c | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index ee12400..ffd2957 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -869,11 +869,7 @@ __SYSCALL(__NR_uselib, sys_uselib) __SYSCALL(__NR__sysctl, sys_sysctl) #define __NR_fork 1079 -#ifdef CONFIG_MMU __SYSCALL(__NR_fork, sys_fork) -#else -__SYSCALL(__NR_fork, sys_ni_syscall) -#endif /* CONFIG_MMU */ #undef __NR_syscalls #define __NR_syscalls (__NR_fork+1) diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index a02decf..c830f7f 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -174,6 +174,7 @@ cond_syscall(sys_setfsuid); cond_syscall(sys_setfsgid); cond_syscall(sys_capget); cond_syscall(sys_capset); +cond_syscall(sys_fork); /* arch-specific weak syscall entries */ cond_syscall(sys_pciconfig_read); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (3 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (37 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I think this change actually doesn't do anything: __NR_fork was still being defined either way, and on my machine fork() in <unistd.h> comes from libc. This just moves to the standard mechanism for defining syscalls that aren't implemented instead, which has the side-effect of no longer having an #ifdef CONFIG_* in a user-visible header. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/unistd.h | 4 ---- kernel/sys_ni.c | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index ee12400..ffd2957 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -869,11 +869,7 @@ __SYSCALL(__NR_uselib, sys_uselib) __SYSCALL(__NR__sysctl, sys_sysctl) #define __NR_fork 1079 -#ifdef CONFIG_MMU __SYSCALL(__NR_fork, sys_fork) -#else -__SYSCALL(__NR_fork, sys_ni_syscall) -#endif /* CONFIG_MMU */ #undef __NR_syscalls #define __NR_syscalls (__NR_fork+1) diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index a02decf..c830f7f 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -174,6 +174,7 @@ cond_syscall(sys_setfsuid); cond_syscall(sys_setfsgid); cond_syscall(sys_capget); cond_syscall(sys_capset); +cond_syscall(sys_fork); /* arch-specific weak syscall entries */ cond_syscall(sys_pciconfig_read); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (4 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt ` (36 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I think this change actually doesn't do anything: __NR_fork was still being defined either way, and on my machine fork() in <unistd.h> comes from libc. This just moves to the standard mechanism for defining syscalls that aren't implemented instead, which has the side-effect of no longer having an #ifdef CONFIG_* in a user-visible header. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/unistd.h | 4 ---- kernel/sys_ni.c | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index ee12400..ffd2957 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -869,11 +869,7 @@ __SYSCALL(__NR_uselib, sys_uselib) __SYSCALL(__NR__sysctl, sys_sysctl) #define __NR_fork 1079 -#ifdef CONFIG_MMU __SYSCALL(__NR_fork, sys_fork) -#else -__SYSCALL(__NR_fork, sys_ni_syscall) -#endif /* CONFIG_MMU */ #undef __NR_syscalls #define __NR_syscalls (__NR_fork+1) diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index a02decf..c830f7f 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -174,6 +174,7 @@ cond_syscall(sys_setfsuid); cond_syscall(sys_setfsgid); cond_syscall(sys_capget); cond_syscall(sys_capset); +cond_syscall(sys_fork); /* arch-specific weak syscall entries */ cond_syscall(sys_pciconfig_read); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (5 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (35 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace wouldn't have seen the definition before. Unfortunately this header file became visible to userspace, so the definition has instead been moved to net/atm/svc.c (the only user). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/atmdev.h | 4 ---- net/atm/svc.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h index 93e0ec0..3dcec70 100644 --- a/include/uapi/linux/atmdev.h +++ b/include/uapi/linux/atmdev.h @@ -100,10 +100,6 @@ struct atm_dev_stats { /* use backend to make new if */ #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) /* add party to p2mp call */ -#ifdef CONFIG_COMPAT -/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ -#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) -#endif #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) /* drop party from p2mp call */ diff --git a/net/atm/svc.c b/net/atm/svc.c index 3fa0a9e..9e2e6ef 100644 --- a/net/atm/svc.c +++ b/net/atm/svc.c @@ -27,6 +27,11 @@ #include "signaling.h" #include "addr.h" +#ifdef CONFIG_COMPAT +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) +#endif + static int svc_create(struct net *net, struct socket *sock, int protocol, int kern); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
[parent not found: <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>]
* [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (25 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063eff..14a5c82 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> 2015-11-03 19:46 ` [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU Palmer Dabbelt ` (24 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063eff..14a5c82 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> 2015-11-03 19:46 ` [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (23 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q I think this change actually doesn't do anything: __NR_fork was still being defined either way, and on my machine fork() in <unistd.h> comes from libc. This just moves to the standard mechanism for defining syscalls that aren't implemented instead, which has the side-effect of no longer having an #ifdef CONFIG_* in a user-visible header. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/asm-generic/unistd.h | 4 ---- kernel/sys_ni.c | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index ee12400..ffd2957 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -869,11 +869,7 @@ __SYSCALL(__NR_uselib, sys_uselib) __SYSCALL(__NR__sysctl, sys_sysctl) #define __NR_fork 1079 -#ifdef CONFIG_MMU __SYSCALL(__NR_fork, sys_fork) -#else -__SYSCALL(__NR_fork, sys_ni_syscall) -#endif /* CONFIG_MMU */ #undef __NR_syscalls #define __NR_syscalls (__NR_fork+1) diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index a02decf..c830f7f 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -174,6 +174,7 @@ cond_syscall(sys_setfsuid); cond_syscall(sys_setfsgid); cond_syscall(sys_capget); cond_syscall(sys_capset); +cond_syscall(sys_fork); /* arch-specific weak syscall entries */ cond_syscall(sys_pciconfig_read); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (2 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt ` (22 subsequent siblings) 26 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt I think this change actually doesn't do anything: __NR_fork was still being defined either way, and on my machine fork() in <unistd.h> comes from libc. This just moves to the standard mechanism for defining syscalls that aren't implemented instead, which has the side-effect of no longer having an #ifdef CONFIG_* in a user-visible header. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/asm-generic/unistd.h | 4 ---- kernel/sys_ni.c | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index ee12400..ffd2957 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -869,11 +869,7 @@ __SYSCALL(__NR_uselib, sys_uselib) __SYSCALL(__NR__sysctl, sys_sysctl) #define __NR_fork 1079 -#ifdef CONFIG_MMU __SYSCALL(__NR_fork, sys_fork) -#else -__SYSCALL(__NR_fork, sys_ni_syscall) -#endif /* CONFIG_MMU */ #undef __NR_syscalls #define __NR_syscalls (__NR_fork+1) diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index a02decf..c830f7f 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -174,6 +174,7 @@ cond_syscall(sys_setfsuid); cond_syscall(sys_setfsgid); cond_syscall(sys_capget); cond_syscall(sys_capset); +cond_syscall(sys_fork); /* arch-specific weak syscall entries */ cond_syscall(sys_pciconfig_read); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I think this change actually doesn't do anything: __NR_fork was still being defined either way, and on my machine fork() in <unistd.h> comes from libc. This just moves to the standard mechanism for defining syscalls that aren't implemented instead, which has the side-effect of no longer having an #ifdef CONFIG_* in a user-visible header. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/unistd.h | 4 ---- kernel/sys_ni.c | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index ee12400..ffd2957 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -869,11 +869,7 @@ __SYSCALL(__NR_uselib, sys_uselib) __SYSCALL(__NR__sysctl, sys_sysctl) #define __NR_fork 1079 -#ifdef CONFIG_MMU __SYSCALL(__NR_fork, sys_fork) -#else -__SYSCALL(__NR_fork, sys_ni_syscall) -#endif /* CONFIG_MMU */ #undef __NR_syscalls #define __NR_syscalls (__NR_fork+1) diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index a02decf..c830f7f 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -174,6 +174,7 @@ cond_syscall(sys_setfsuid); cond_syscall(sys_setfsgid); cond_syscall(sys_capget); cond_syscall(sys_capset); +cond_syscall(sys_fork); /* arch-specific weak syscall entries */ cond_syscall(sys_pciconfig_read); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (3 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (21 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace wouldn't have seen the definition before. Unfortunately this header file became visible to userspace, so the definition has instead been moved to net/atm/svc.c (the only user). Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/linux/atmdev.h | 4 ---- net/atm/svc.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h index 93e0ec0..3dcec70 100644 --- a/include/uapi/linux/atmdev.h +++ b/include/uapi/linux/atmdev.h @@ -100,10 +100,6 @@ struct atm_dev_stats { /* use backend to make new if */ #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) /* add party to p2mp call */ -#ifdef CONFIG_COMPAT -/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ -#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) -#endif #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) /* drop party from p2mp call */ diff --git a/net/atm/svc.c b/net/atm/svc.c index 3fa0a9e..9e2e6ef 100644 --- a/net/atm/svc.c +++ b/net/atm/svc.c @@ -27,6 +27,11 @@ #include "signaling.h" #include "addr.h" +#ifdef CONFIG_COMPAT +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) +#endif + static int svc_create(struct net *net, struct socket *sock, int protocol, int kern); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (4 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt ` (20 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace wouldn't have seen the definition before. Unfortunately this header file became visible to userspace, so the definition has instead been moved to net/atm/svc.c (the only user). Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/linux/atmdev.h | 4 ---- net/atm/svc.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h index 93e0ec0..3dcec70 100644 --- a/include/uapi/linux/atmdev.h +++ b/include/uapi/linux/atmdev.h @@ -100,10 +100,6 @@ struct atm_dev_stats { /* use backend to make new if */ #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) /* add party to p2mp call */ -#ifdef CONFIG_COMPAT -/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ -#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) -#endif #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) /* drop party from p2mp call */ diff --git a/net/atm/svc.c b/net/atm/svc.c index 3fa0a9e..9e2e6ef 100644 --- a/net/atm/svc.c +++ b/net/atm/svc.c @@ -27,6 +27,11 @@ #include "signaling.h" #include "addr.h" +#ifdef CONFIG_COMPAT +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) +#endif + static int svc_create(struct net *net, struct socket *sock, int protocol, int kern); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (5 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (19 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it be non-zero. While I had originally hoped to avoid hiding it, it looks like this conflicts with MAP_HUGE_SHIFT so I think it's safer to just keep this 0. Architectures that want to define this can still override it. In fact, the Xtensa port already overrides it in a very similar manner to the previously broken one (but due to lots of conflicting opinions on how to solve this correctly, I'm just taking the easy way out and letting their arch maintainers deal with it -- sorry). Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/asm-generic/mman-common.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index ddc3b36..0ce2a13 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,9 +19,7 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED -# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ -#else +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (6 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" Palmer Dabbelt ` (18 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it be non-zero. While I had originally hoped to avoid hiding it, it looks like this conflicts with MAP_HUGE_SHIFT so I think it's safer to just keep this 0. Architectures that want to define this can still override it. In fact, the Xtensa port already overrides it in a very similar manner to the previously broken one (but due to lots of conflicting opinions on how to solve this correctly, I'm just taking the easy way out and letting their arch maintainers deal with it -- sorry). Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/asm-generic/mman-common.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index ddc3b36..0ce2a13 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,9 +19,7 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED -# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ -#else +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (7 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (17 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q This is a pretty big change that I haven't tested any, which worries me a lot. The general idea here is that "struct elf_prstatus" can be visible to userspace (from <linux/ptrace.h>) " Generic ptrace interface that exports the architecture specific regsets using the corresponding NT_* types (which are also used in the core dump). Please note that the NT_PRSTATUS note type in a core dump contains a full 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the other user_regset flavors, the user_regset layout and the ELF core dump note payload are exactly the same layout. " so it shouldn't have an "#ifdef CONFIG_" in there. This splits the structure into two different structures, one still named "struct elf_prstatus", and one for ELF FDPIC that is named "struct elf_fdpic_prstatus" -- the idea here is that most users are standard ELF, so that's the name that didn't change. I tried to fix all the users of "struct elf_prstatus" that should now be using "struct elf_fdpic_prstatus". The only testing I did here was to build a Blackfin defconfig with "struct elf_prstatus" not defined, and to build an x86 defconfig with "struct elf_fdpic_prstatus" not defined. Note that this fails checkpatch.pl with a complaint about wanting open braces on the same line as struct definitions. The existing struct definitions in this file have the brace a line afterwards, so I'm going to leave this alone. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- fs/binfmt_elf_fdpic.c | 6 +++--- fs/proc/kcore.c | 16 ++++++++++++++++ include/linux/kexec.h | 4 ++++ include/uapi/linux/elfcore.h | 37 +++++++++++++++++++++++++++++++++++-- kernel/kexec_core.c | 4 ++++ 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index d3634bf..587bf04 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c @@ -1323,7 +1323,7 @@ static inline void fill_note(struct memelfnote *note, const char *name, int type * fill up all the fields in prstatus from the given task struct, except * registers which need to be filled up separately. */ -static void fill_prstatus(struct elf_prstatus *prstatus, +static void fill_prstatus(struct elf_fdpic_prstatus *prstatus, struct task_struct *p, long signr) { prstatus->pr_info.si_signo = prstatus->pr_cursig = signr; @@ -1406,7 +1406,7 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p, struct elf_thread_status { struct list_head list; - struct elf_prstatus prstatus; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ elf_fpregset_t fpu; /* NT_PRFPREG */ struct task_struct *thread; #ifdef ELF_CORE_COPY_XFPREGS @@ -1539,7 +1539,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) loff_t offset = 0, dataoff; int numnote; struct memelfnote *notes = NULL; - struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus *prstatus = NULL; /* NT_PRSTATUS */ struct elf_prpsinfo *psinfo = NULL; /* NT_PRPSINFO */ LIST_HEAD(thread_list); struct list_head *t; diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c index 92e6726..b1edd77e 100644 --- a/fs/proc/kcore.c +++ b/fs/proc/kcore.c @@ -90,7 +90,11 @@ static size_t get_kcore_size(int *nphdr, size_t *elf_buflen) (*nphdr + 2)*sizeof(struct elf_phdr) + 3 * ((sizeof(struct elf_note)) + roundup(sizeof(CORE_STR), 4)) + +#ifdef CONFIG_BINFMT_ELF_FDPIC + roundup(sizeof(struct elf_fdpic_prstatus), 4) + +#else roundup(sizeof(struct elf_prstatus), 4) + +#endif roundup(sizeof(struct elf_prpsinfo), 4) + roundup(arch_task_struct_size, 4); *elf_buflen = PAGE_ALIGN(*elf_buflen); @@ -318,7 +322,11 @@ static char *storenote(struct memelfnote *men, char *bufp) */ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ +#else struct elf_prstatus prstatus; /* NT_PRSTATUS */ +#endif struct elf_prpsinfo prpsinfo; /* NT_PRPSINFO */ struct elf_phdr *nhdr, *phdr; struct elfhdr *elf; @@ -387,10 +395,18 @@ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) /* set up the process status */ notes[0].name = CORE_STR; notes[0].type = NT_PRSTATUS; +#ifdef CONFIG_BINFMT_ELF_FDPIC + notes[0].datasz = sizeof(struct elf_fdpic_prstatus); +#else notes[0].datasz = sizeof(struct elf_prstatus); +#endif notes[0].data = &prstatus; +#ifdef CONFIG_BINFMT_ELF_FDPIC + memset(&prstatus, 0, sizeof(struct elf_fdpic_prstatus)); +#else memset(&prstatus, 0, sizeof(struct elf_prstatus)); +#endif nhdr->p_filesz = notesize(¬es[0]); bufp = storenote(¬es[0], bufp); diff --git a/include/linux/kexec.h b/include/linux/kexec.h index d140b1e..d9196cc 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -63,7 +63,11 @@ #define KEXEC_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4) #define KEXEC_CORE_NOTE_NAME "CORE" #define KEXEC_CORE_NOTE_NAME_BYTES ALIGN(sizeof(KEXEC_CORE_NOTE_NAME), 4) +#ifdef CONFIG_BINFMT_ELF_FDPIC +#define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_fdpic_prstatus), 4) +#else #define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_prstatus), 4) +#endif /* * The per-cpu notes area is a list of notes terminated by a "NULL" * note header. For kdump, the code in vmcore.c runs in the context diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h index 569737c..697c52d 100644 --- a/include/uapi/linux/elfcore.h +++ b/include/uapi/linux/elfcore.h @@ -60,7 +60,40 @@ struct elf_prstatus long pr_instr; /* Current instruction */ #endif elf_gregset_t pr_reg; /* GP registers */ -#ifdef CONFIG_BINFMT_ELF_FDPIC + int pr_fpvalid; /* True if math co-processor being used. */ +}; + +/* Architectures that set CONFIG_BINFMT_ELF_FDPIC use this instead of + * "struct elf_prstatus". + */ +struct elf_fdpic_prstatus +{ +#if 0 + long pr_flags; /* XXX Process flags */ + short pr_why; /* XXX Reason for process halt */ + short pr_what; /* XXX More detailed reason */ +#endif + struct elf_siginfo pr_info; /* Info associated with signal */ + short pr_cursig; /* Current signal */ + unsigned long pr_sigpend; /* Set of pending signals */ + unsigned long pr_sighold; /* Set of held signals */ +#if 0 + struct sigaltstack pr_altstack; /* Alternate stack info */ + struct sigaction pr_action; /* Signal action for current sig */ +#endif + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct timeval pr_utime; /* User time */ + struct timeval pr_stime; /* System time */ + struct timeval pr_cutime; /* Cumulative user time */ + struct timeval pr_cstime; /* Cumulative system time */ +#if 0 + long pr_instr; /* Current instruction */ +#endif + elf_gregset_t pr_reg; /* GP registers */ + /* When using FDPIC, the loadmap addresses need to be communicated * to GDB in order for GDB to do the necessary relocations. The * fields (below) used to communicate this information are placed @@ -69,7 +102,7 @@ struct elf_prstatus */ unsigned long pr_exec_fdpic_loadmap; unsigned long pr_interp_fdpic_loadmap; -#endif + int pr_fpvalid; /* True if math co-processor being used. */ }; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 201b453..8d2fc70 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -977,7 +977,11 @@ static void final_note(u32 *buf) void crash_save_cpu(struct pt_regs *regs, int cpu) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; +#else struct elf_prstatus prstatus; +#endif u32 *buf; if ((cpu < 0) || (cpu >= nr_cpu_ids)) -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (8 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c Palmer Dabbelt ` (16 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt This is a pretty big change that I haven't tested any, which worries me a lot. The general idea here is that "struct elf_prstatus" can be visible to userspace (from <linux/ptrace.h>) " Generic ptrace interface that exports the architecture specific regsets using the corresponding NT_* types (which are also used in the core dump). Please note that the NT_PRSTATUS note type in a core dump contains a full 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the other user_regset flavors, the user_regset layout and the ELF core dump note payload are exactly the same layout. " so it shouldn't have an "#ifdef CONFIG_" in there. This splits the structure into two different structures, one still named "struct elf_prstatus", and one for ELF FDPIC that is named "struct elf_fdpic_prstatus" -- the idea here is that most users are standard ELF, so that's the name that didn't change. I tried to fix all the users of "struct elf_prstatus" that should now be using "struct elf_fdpic_prstatus". The only testing I did here was to build a Blackfin defconfig with "struct elf_prstatus" not defined, and to build an x86 defconfig with "struct elf_fdpic_prstatus" not defined. Note that this fails checkpatch.pl with a complaint about wanting open braces on the same line as struct definitions. The existing struct definitions in this file have the brace a line afterwards, so I'm going to leave this alone. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- fs/binfmt_elf_fdpic.c | 6 +++--- fs/proc/kcore.c | 16 ++++++++++++++++ include/linux/kexec.h | 4 ++++ include/uapi/linux/elfcore.h | 37 +++++++++++++++++++++++++++++++++++-- kernel/kexec_core.c | 4 ++++ 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index d3634bf..587bf04 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c @@ -1323,7 +1323,7 @@ static inline void fill_note(struct memelfnote *note, const char *name, int type * fill up all the fields in prstatus from the given task struct, except * registers which need to be filled up separately. */ -static void fill_prstatus(struct elf_prstatus *prstatus, +static void fill_prstatus(struct elf_fdpic_prstatus *prstatus, struct task_struct *p, long signr) { prstatus->pr_info.si_signo = prstatus->pr_cursig = signr; @@ -1406,7 +1406,7 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p, struct elf_thread_status { struct list_head list; - struct elf_prstatus prstatus; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ elf_fpregset_t fpu; /* NT_PRFPREG */ struct task_struct *thread; #ifdef ELF_CORE_COPY_XFPREGS @@ -1539,7 +1539,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) loff_t offset = 0, dataoff; int numnote; struct memelfnote *notes = NULL; - struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus *prstatus = NULL; /* NT_PRSTATUS */ struct elf_prpsinfo *psinfo = NULL; /* NT_PRPSINFO */ LIST_HEAD(thread_list); struct list_head *t; diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c index 92e6726..b1edd77e 100644 --- a/fs/proc/kcore.c +++ b/fs/proc/kcore.c @@ -90,7 +90,11 @@ static size_t get_kcore_size(int *nphdr, size_t *elf_buflen) (*nphdr + 2)*sizeof(struct elf_phdr) + 3 * ((sizeof(struct elf_note)) + roundup(sizeof(CORE_STR), 4)) + +#ifdef CONFIG_BINFMT_ELF_FDPIC + roundup(sizeof(struct elf_fdpic_prstatus), 4) + +#else roundup(sizeof(struct elf_prstatus), 4) + +#endif roundup(sizeof(struct elf_prpsinfo), 4) + roundup(arch_task_struct_size, 4); *elf_buflen = PAGE_ALIGN(*elf_buflen); @@ -318,7 +322,11 @@ static char *storenote(struct memelfnote *men, char *bufp) */ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ +#else struct elf_prstatus prstatus; /* NT_PRSTATUS */ +#endif struct elf_prpsinfo prpsinfo; /* NT_PRPSINFO */ struct elf_phdr *nhdr, *phdr; struct elfhdr *elf; @@ -387,10 +395,18 @@ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) /* set up the process status */ notes[0].name = CORE_STR; notes[0].type = NT_PRSTATUS; +#ifdef CONFIG_BINFMT_ELF_FDPIC + notes[0].datasz = sizeof(struct elf_fdpic_prstatus); +#else notes[0].datasz = sizeof(struct elf_prstatus); +#endif notes[0].data = &prstatus; +#ifdef CONFIG_BINFMT_ELF_FDPIC + memset(&prstatus, 0, sizeof(struct elf_fdpic_prstatus)); +#else memset(&prstatus, 0, sizeof(struct elf_prstatus)); +#endif nhdr->p_filesz = notesize(¬es[0]); bufp = storenote(¬es[0], bufp); diff --git a/include/linux/kexec.h b/include/linux/kexec.h index d140b1e..d9196cc 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -63,7 +63,11 @@ #define KEXEC_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4) #define KEXEC_CORE_NOTE_NAME "CORE" #define KEXEC_CORE_NOTE_NAME_BYTES ALIGN(sizeof(KEXEC_CORE_NOTE_NAME), 4) +#ifdef CONFIG_BINFMT_ELF_FDPIC +#define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_fdpic_prstatus), 4) +#else #define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_prstatus), 4) +#endif /* * The per-cpu notes area is a list of notes terminated by a "NULL" * note header. For kdump, the code in vmcore.c runs in the context diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h index 569737c..697c52d 100644 --- a/include/uapi/linux/elfcore.h +++ b/include/uapi/linux/elfcore.h @@ -60,7 +60,40 @@ struct elf_prstatus long pr_instr; /* Current instruction */ #endif elf_gregset_t pr_reg; /* GP registers */ -#ifdef CONFIG_BINFMT_ELF_FDPIC + int pr_fpvalid; /* True if math co-processor being used. */ +}; + +/* Architectures that set CONFIG_BINFMT_ELF_FDPIC use this instead of + * "struct elf_prstatus". + */ +struct elf_fdpic_prstatus +{ +#if 0 + long pr_flags; /* XXX Process flags */ + short pr_why; /* XXX Reason for process halt */ + short pr_what; /* XXX More detailed reason */ +#endif + struct elf_siginfo pr_info; /* Info associated with signal */ + short pr_cursig; /* Current signal */ + unsigned long pr_sigpend; /* Set of pending signals */ + unsigned long pr_sighold; /* Set of held signals */ +#if 0 + struct sigaltstack pr_altstack; /* Alternate stack info */ + struct sigaction pr_action; /* Signal action for current sig */ +#endif + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct timeval pr_utime; /* User time */ + struct timeval pr_stime; /* System time */ + struct timeval pr_cutime; /* Cumulative user time */ + struct timeval pr_cstime; /* Cumulative system time */ +#if 0 + long pr_instr; /* Current instruction */ +#endif + elf_gregset_t pr_reg; /* GP registers */ + /* When using FDPIC, the loadmap addresses need to be communicated * to GDB in order for GDB to do the necessary relocations. The * fields (below) used to communicate this information are placed @@ -69,7 +102,7 @@ struct elf_prstatus */ unsigned long pr_exec_fdpic_loadmap; unsigned long pr_interp_fdpic_loadmap; -#endif + int pr_fpvalid; /* True if math co-processor being used. */ }; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 201b453..8d2fc70 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -977,7 +977,11 @@ static void final_note(u32 *buf) void crash_save_cpu(struct pt_regs *regs, int cpu) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; +#else struct elf_prstatus prstatus; +#endif u32 *buf; if ((cpu < 0) || (cpu >= nr_cpu_ids)) -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (9 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (15 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q This doesn't make any sense to expose to userspace, so it's been moved to the one user. This was introduced by commit 95f19f658ce1 ("epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled"). Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- fs/eventpoll.c | 13 +++++++++++++ include/uapi/linux/eventpoll.h | 12 ------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 1e009ca..aadee3d 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1812,6 +1812,19 @@ SYSCALL_DEFINE1(epoll_create, int, size) return sys_epoll_create1(0); } +#ifdef CONFIG_PM_SLEEP +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) + epev->events &= ~EPOLLWAKEUP; +} +#else +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + epev->events &= ~EPOLLWAKEUP; +} +#endif + /* * The following function implements the controller interface for * the eventpoll file that enables the insertion/removal/change of diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2..7850373 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,16 +61,4 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; -#ifdef CONFIG_PM_SLEEP -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) - epev->events &= ~EPOLLWAKEUP; -} -#else -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - epev->events &= ~EPOLLWAKEUP; -} -#endif #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (10 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt ` (14 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt This doesn't make any sense to expose to userspace, so it's been moved to the one user. This was introduced by commit 95f19f658ce1 ("epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled"). Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- fs/eventpoll.c | 13 +++++++++++++ include/uapi/linux/eventpoll.h | 12 ------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 1e009ca..aadee3d 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1812,6 +1812,19 @@ SYSCALL_DEFINE1(epoll_create, int, size) return sys_epoll_create1(0); } +#ifdef CONFIG_PM_SLEEP +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) + epev->events &= ~EPOLLWAKEUP; +} +#else +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + epev->events &= ~EPOLLWAKEUP; +} +#endif + /* * The following function implements the controller interface for * the eventpoll file that enables the insertion/removal/change of diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2..7850373 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,16 +61,4 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; -#ifdef CONFIG_PM_SLEEP -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) - epev->events &= ~EPOLLWAKEUP; -} -#else -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - epev->events &= ~EPOLLWAKEUP; -} -#endif #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (11 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (13 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt Nothing else in the kernel defines this, and this header is visible to userspace. Rather than hiding it in an #ifdef, I think it's sane to just make this visible to userspace. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/linux/fb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h index fb795c3..8926f13 100644 --- a/include/uapi/linux/fb.h +++ b/include/uapi/linux/fb.h @@ -392,11 +392,8 @@ struct fb_cursor { struct fb_image image; /* Cursor image */ }; -#ifdef CONFIG_FB_BACKLIGHT /* Settings for the generic backlight code */ #define FB_BACKLIGHT_LEVELS 128 #define FB_BACKLIGHT_MAX 0xFF -#endif - #endif /* _UAPI_LINUX_FB_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (12 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt ` (12 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q Nothing else in the kernel defines this, and this header is visible to userspace. Rather than hiding it in an #ifdef, I think it's sane to just make this visible to userspace. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/linux/fb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h index fb795c3..8926f13 100644 --- a/include/uapi/linux/fb.h +++ b/include/uapi/linux/fb.h @@ -392,11 +392,8 @@ struct fb_cursor { struct fb_image image; /* Cursor image */ }; -#ifdef CONFIG_FB_BACKLIGHT /* Settings for the generic backlight code */ #define FB_BACKLIGHT_LEVELS 128 #define FB_BACKLIGHT_MAX 0xFF -#endif - #endif /* _UAPI_LINUX_FB_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (13 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (11 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- fs/binfmt_flat.c | 6 ++++++ include/uapi/linux/flat.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index f723cd3..e89fb43 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -72,6 +72,12 @@ #define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */ #define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */ +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + struct lib_info { struct { unsigned long start_code; /* Start of text segment */ diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6ba..1b177c7 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,12 +13,6 @@ #define FLAT_VERSION 0x00000004L -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define MAX_SHARED_LIBS (4) -#else -#define MAX_SHARED_LIBS (1) -#endif - /* * To make everything easier to port and manage cross platform * development, all fields are in network byte order. -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (14 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c Palmer Dabbelt ` (10 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- fs/binfmt_flat.c | 6 ++++++ include/uapi/linux/flat.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index f723cd3..e89fb43 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -72,6 +72,12 @@ #define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */ #define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */ +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + struct lib_info { struct { unsigned long start_code; /* Start of text segment */ diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6ba..1b177c7 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,12 +13,6 @@ #define FLAT_VERSION 0x00000004L -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define MAX_SHARED_LIBS (4) -#else -#define MAX_SHARED_LIBS (1) -#endif - /* * To make everything easier to port and manage cross platform * development, all fields are in network byte order. -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (15 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (9 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt This has a "#ifdef CONFIG_*" that used to be exposed to userspace. The names in here are so generic that I don't think it's a good idea to expose them to userspace (or even the rest of the kernel). Since there's only one kernel user, it's been moved to that file. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/linux/hw_breakpoint.h | 10 ---------- kernel/events/hw_breakpoint.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h index b04000a..7a6a5a7 100644 --- a/include/uapi/linux/hw_breakpoint.h +++ b/include/uapi/linux/hw_breakpoint.h @@ -17,14 +17,4 @@ enum { HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, }; -enum bp_type_idx { - TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS - TYPE_DATA = 0, -#else - TYPE_DATA = 1, -#endif - TYPE_MAX -}; - #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c index 92ce5f4..5ad117e 100644 --- a/kernel/events/hw_breakpoint.c +++ b/kernel/events/hw_breakpoint.c @@ -58,6 +58,16 @@ struct bp_cpuinfo { unsigned int flexible; /* XXX: placeholder, see fetch_this_slot() */ }; +enum bp_type_idx { + TYPE_INST = 0, +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + static DEFINE_PER_CPU(struct bp_cpuinfo, bp_cpuinfo[TYPE_MAX]); static int nr_slots[TYPE_MAX]; -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (16 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt ` (8 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q This has a "#ifdef CONFIG_*" that used to be exposed to userspace. The names in here are so generic that I don't think it's a good idea to expose them to userspace (or even the rest of the kernel). Since there's only one kernel user, it's been moved to that file. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/linux/hw_breakpoint.h | 10 ---------- kernel/events/hw_breakpoint.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h index b04000a..7a6a5a7 100644 --- a/include/uapi/linux/hw_breakpoint.h +++ b/include/uapi/linux/hw_breakpoint.h @@ -17,14 +17,4 @@ enum { HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, }; -enum bp_type_idx { - TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS - TYPE_DATA = 0, -#else - TYPE_DATA = 1, -#endif - TYPE_MAX -}; - #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c index 92ce5f4..5ad117e 100644 --- a/kernel/events/hw_breakpoint.c +++ b/kernel/events/hw_breakpoint.c @@ -58,6 +58,16 @@ struct bp_cpuinfo { unsigned int flexible; /* XXX: placeholder, see fetch_this_slot() */ }; +enum bp_type_idx { + TYPE_INST = 0, +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + static DEFINE_PER_CPU(struct bp_cpuinfo, bp_cpuinfo[TYPE_MAX]); static int nr_slots[TYPE_MAX]; -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (17 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (7 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q I don't think this was ever intended to be exposed to userspace, but it did require an "#ifdef CONFIG_*". Since the name is kind of generic and was only used in one place, I've moved the definition to the one user. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- drivers/block/pktcdvd.c | 11 +++++++++++ include/uapi/linux/pktcdvd.h | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 7be2375..18d2d05 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -90,6 +90,17 @@ do { \ #define MAX_SPEED 0xffff +/* + * use drive write caching -- we need deferred error handling to be + * able to successfully recover with this option (drive will return good + * status as soon as the cdb is validated). + */ +#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) +#define USE_WCACHING 1 +#else +#define USE_WCACHING 0 +#endif + static DEFINE_MUTEX(pktcdvd_mutex); static struct pktcdvd_device *pkt_devs[MAX_WRITERS]; static struct proc_dir_entry *pkt_proc; diff --git a/include/uapi/linux/pktcdvd.h b/include/uapi/linux/pktcdvd.h index 2640b9d..05c2bee 100644 --- a/include/uapi/linux/pktcdvd.h +++ b/include/uapi/linux/pktcdvd.h @@ -29,17 +29,6 @@ #define PACKET_WAIT_TIME (HZ * 5 / 1000) /* - * use drive write caching -- we need deferred error handling to be - * able to successfully recover with this option (drive will return good - * status as soon as the cdb is validated). - */ -#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) -#define USE_WCACHING 1 -#else -#define USE_WCACHING 0 -#endif - -/* * No user-servicable parts beyond this point -> */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (18 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 11/13] Always define MAX_RAW_MINORS as 2**20 in userspace Palmer Dabbelt ` (6 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt I don't think this was ever intended to be exposed to userspace, but it did require an "#ifdef CONFIG_*". Since the name is kind of generic and was only used in one place, I've moved the definition to the one user. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- drivers/block/pktcdvd.c | 11 +++++++++++ include/uapi/linux/pktcdvd.h | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 7be2375..18d2d05 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -90,6 +90,17 @@ do { \ #define MAX_SPEED 0xffff +/* + * use drive write caching -- we need deferred error handling to be + * able to successfully recover with this option (drive will return good + * status as soon as the cdb is validated). + */ +#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) +#define USE_WCACHING 1 +#else +#define USE_WCACHING 0 +#endif + static DEFINE_MUTEX(pktcdvd_mutex); static struct pktcdvd_device *pkt_devs[MAX_WRITERS]; static struct proc_dir_entry *pkt_proc; diff --git a/include/uapi/linux/pktcdvd.h b/include/uapi/linux/pktcdvd.h index 2640b9d..05c2bee 100644 --- a/include/uapi/linux/pktcdvd.h +++ b/include/uapi/linux/pktcdvd.h @@ -29,17 +29,6 @@ #define PACKET_WAIT_TIME (HZ * 5 / 1000) /* - * use drive write caching -- we need deferred error handling to be - * able to successfully recover with this option (drive will return good - * status as soon as the cdb is validated). - */ -#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) -#define USE_WCACHING 1 -#else -#define USE_WCACHING 0 -#endif - -/* * No user-servicable parts beyond this point -> */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 11/13] Always define MAX_RAW_MINORS as 2**20 in userspace [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (19 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (5 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt While I don't think this was ever meant to be exposed to userspace, if anyone is using it then this will at least provide a correct (if unlikely) definition. MAX_RAW_MINORS used to be used in the kernel, where it's been replaced with CONFIG_MAX_RAW_MINORS. Note that there's a checkpatch.pl warning about a split config string here, but I've left that alone. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- drivers/char/raw.c | 7 ++++--- include/uapi/linux/raw.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 60316fb..362d7a6 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -36,7 +36,7 @@ static struct raw_device_data *raw_devices; static DEFINE_MUTEX(raw_mutex); static const struct file_operations raw_ctl_fops; /* forward declaration */ -static int max_raw_minors = MAX_RAW_MINORS; +static int max_raw_minors = CONFIG_MAX_RAW_MINORS; module_param(max_raw_minors, int, 0); MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); @@ -317,8 +317,9 @@ static int __init raw_init(void) if (max_raw_minors < 1 || max_raw_minors > 65536) { printk(KERN_WARNING "raw: invalid max_raw_minors (must be" - " between 1 and 65536), using %d\n", MAX_RAW_MINORS); - max_raw_minors = MAX_RAW_MINORS; + " between 1 and 65536), using %d\n", + CONFIG_MAX_RAW_MINORS); + max_raw_minors = CONFIG_MAX_RAW_MINORS; } raw_devices = vzalloc(sizeof(struct raw_device_data) * max_raw_minors); diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e..f3d009b 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,6 @@ struct raw_config_request __u64 block_minor; }; -#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#define MAX_RAW_MINORS (1 << 20) #endif /* __LINUX_RAW_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 11/13] Always define MAX_RAW_MINORS as 2**20 in userspace [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (20 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 11/13] Always define MAX_RAW_MINORS as 2**20 in userspace Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 Palmer Dabbelt ` (4 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q While I don't think this was ever meant to be exposed to userspace, if anyone is using it then this will at least provide a correct (if unlikely) definition. MAX_RAW_MINORS used to be used in the kernel, where it's been replaced with CONFIG_MAX_RAW_MINORS. Note that there's a checkpatch.pl warning about a split config string here, but I've left that alone. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- drivers/char/raw.c | 7 ++++--- include/uapi/linux/raw.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 60316fb..362d7a6 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -36,7 +36,7 @@ static struct raw_device_data *raw_devices; static DEFINE_MUTEX(raw_mutex); static const struct file_operations raw_ctl_fops; /* forward declaration */ -static int max_raw_minors = MAX_RAW_MINORS; +static int max_raw_minors = CONFIG_MAX_RAW_MINORS; module_param(max_raw_minors, int, 0); MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); @@ -317,8 +317,9 @@ static int __init raw_init(void) if (max_raw_minors < 1 || max_raw_minors > 65536) { printk(KERN_WARNING "raw: invalid max_raw_minors (must be" - " between 1 and 65536), using %d\n", MAX_RAW_MINORS); - max_raw_minors = MAX_RAW_MINORS; + " between 1 and 65536), using %d\n", + CONFIG_MAX_RAW_MINORS); + max_raw_minors = CONFIG_MAX_RAW_MINORS; } raw_devices = vzalloc(sizeof(struct raw_device_data) * max_raw_minors); diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e..f3d009b 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,6 @@ struct raw_config_request __u64 block_minor; }; -#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#define MAX_RAW_MINORS (1 << 20) #endif /* __LINUX_RAW_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (21 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (3 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q It looks like there aren't actually users of this macro anywhere: * The kernel doesn't use it on x86 because we don't suppor ELF FDPIC. * The only Google results point to LMKL patches, both the one that wrote this (from 2010) and my patch to hide it behind __KERNEL__. * I grep'd through all the source tarballs on my machine, and the only packages that matched were the kernel and crui (which copied a PPC kernel header). Since I'm not sure how to actually provide the right answer (if I understand correctly, CONFIG_IA32_EMULATION is not __i386__), the only thing I can think of to do is to just remove the definition. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- arch/x86/include/uapi/asm/auxvec.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm/auxvec.h index 77203ac..1316b4c 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -9,11 +9,4 @@ #endif #define AT_SYSINFO_EHDR 33 -/* entries in ARCH_DLINFO: */ -#if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) -# define AT_VECTOR_SIZE_ARCH 2 -#else /* else it's non-compat x86-64 */ -# define AT_VECTOR_SIZE_ARCH 1 -#endif - #endif /* _ASM_X86_AUXVEC_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (22 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt ` (2 subsequent siblings) 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt It looks like there aren't actually users of this macro anywhere: * The kernel doesn't use it on x86 because we don't suppor ELF FDPIC. * The only Google results point to LMKL patches, both the one that wrote this (from 2010) and my patch to hide it behind __KERNEL__. * I grep'd through all the source tarballs on my machine, and the only packages that matched were the kernel and crui (which copied a PPC kernel header). Since I'm not sure how to actually provide the right answer (if I understand correctly, CONFIG_IA32_EMULATION is not __i386__), the only thing I can think of to do is to just remove the definition. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- arch/x86/include/uapi/asm/auxvec.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm/auxvec.h index 77203ac..1316b4c 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -9,11 +9,4 @@ #endif #define AT_SYSINFO_EHDR 33 -/* entries in ARCH_DLINFO: */ -#if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) -# define AT_VECTOR_SIZE_ARCH 2 -#else /* else it's non-compat x86-64 */ -# define AT_VECTOR_SIZE_ARCH 1 -#endif - #endif /* _ASM_X86_AUXVEC_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (23 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-10 1:30 ` [PATCH v5] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt I recently got bit by a CONFIG_ in userspace bug. This has apparently happened before, but the check got disabled for triggering too much. In order to reduce false positives, I added some hueristics to avoid detecting comments. Since these tests all pass, I've now re-enabled them. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- scripts/headers_check.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 62320f9..1634b51 100755 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl @@ -27,6 +27,7 @@ my $ret = 0; my $line; my $lineno = 0; my $filename; +my $check_config_in_multiline_comment = 0; foreach my $file (@files) { $filename = $file; @@ -40,7 +41,7 @@ foreach my $file (@files) { &check_asm_types(); &check_sizetypes(); &check_declarations(); - # Dropped for now. Too much noise &check_config(); + &check_config(); } close $fh; } @@ -78,7 +79,21 @@ sub check_declarations sub check_config { - if ($line =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { + my $nocomments = $line; + $nocomments =~ s/\/\*.*\*\///; # Remove ANSI-style comments (/* to */) + $nocomments =~ s/\/\/.*//; # Remove C99-style comments (// to EOL) + + # Check to see if we're within a multiline comment, and if so + # just remove the whole line. I tried matching on '^ * ', but + # there's one header that doesn't prepend multi-line comments + # with * so that won't work. + if ($nocomments =~ m/\/\*/) { $check_config_in_multiline_comment = 1; } + if ($nocomments =~ m/\*\//) { $check_config_in_multiline_comment = 0; } + if ($check_config_in_multiline_comment == 1) { $nocomments = "" } + + # Check to see if there is something that looks like CONFIG_ + # inside a userspace-accessible header file and if so, print that out. + if ($nocomments =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n"; } } -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (24 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-10 1:30 ` [PATCH v5] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Palmer Dabbelt, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q I recently got bit by a CONFIG_ in userspace bug. This has apparently happened before, but the check got disabled for triggering too much. In order to reduce false positives, I added some hueristics to avoid detecting comments. Since these tests all pass, I've now re-enabled them. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- scripts/headers_check.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 62320f9..1634b51 100755 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl @@ -27,6 +27,7 @@ my $ret = 0; my $line; my $lineno = 0; my $filename; +my $check_config_in_multiline_comment = 0; foreach my $file (@files) { $filename = $file; @@ -40,7 +41,7 @@ foreach my $file (@files) { &check_asm_types(); &check_sizetypes(); &check_declarations(); - # Dropped for now. Too much noise &check_config(); + &check_config(); } close $fh; } @@ -78,7 +79,21 @@ sub check_declarations sub check_config { - if ($line =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { + my $nocomments = $line; + $nocomments =~ s/\/\*.*\*\///; # Remove ANSI-style comments (/* to */) + $nocomments =~ s/\/\/.*//; # Remove C99-style comments (// to EOL) + + # Check to see if we're within a multiline comment, and if so + # just remove the whole line. I tried matching on '^ * ', but + # there's one header that doesn't prepend multi-line comments + # with * so that won't work. + if ($nocomments =~ m/\/\*/) { $check_config_in_multiline_comment = 1; } + if ($nocomments =~ m/\*\//) { $check_config_in_multiline_comment = 0; } + if ($check_config_in_multiline_comment == 1) { $nocomments = "" } + + # Check to see if there is something that looks like CONFIG_ + # inside a userspace-accessible header file and if so, print that out. + if ($nocomments =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n"; } } -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH v5] Remove #ifdef CONFIG_* from all userspace headers [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (25 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-10 1:30 ` Palmer Dabbelt 26 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:30 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, peterz-wEGCiKHe2LqWVfeAwA7xHQ Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A I think this should _actually_ be ready to go this time, the buildbot found some errors in arches that I didn't test for. Changes since v4 (<1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>) * #9 was changed to work on arm by moving the enum to an in-kernel header file. * #13 was added, this fixes a problem on blackfin. Changes since v3 (<1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>) * #4 is very different: rather than defining a canonical value for MAP_UNINITIALIZED, it just punts on the problem and lets arch maintainers deal with it. There's still an #ifndef MAP_UNINITIALIZED in there, but that shouldn't get triggered by anything because the arch headers should set it to whatever they actually want. * #11 defines MAX_RAW_MINORS to 2^20 instead of 2^16. * #13 moves the variable around a bit so it gets initialized. I forgot I was in perl and not C :). Changes since v2 (<1441832902-28993-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>) * Patch set renamed. * #2 is rewritten to use sys_ni.c instead of an #ifdef * #3, #6, #8, #9, #10, and #11 no longer use "#ifdef __KERNEL__" but have instead moved the offending lines to the correct, kernel-only files. * #4 has been rewritten to always define MAP_UNINITIALIZED to non-zero, rather than defining it to zero when in userspace. * #5 got a whole lot longer -- rather than just always hiding these fields from userspace, there is now a second "struct elf_fdpic_prstatus" structure. This should allow userspace to parse core dumps correctly. * Rebased onto 9c488de24f7264f08d341024bffdd637b4d04c96. Changes since v1 (<1441152610-22566-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>) * All patches but #1 were added. ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (7 preceding siblings ...) [not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (33 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace wouldn't have seen the definition before. Unfortunately this header file became visible to userspace, so the definition has instead been moved to net/atm/svc.c (the only user). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/atmdev.h | 4 ---- net/atm/svc.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h index 93e0ec0..3dcec70 100644 --- a/include/uapi/linux/atmdev.h +++ b/include/uapi/linux/atmdev.h @@ -100,10 +100,6 @@ struct atm_dev_stats { /* use backend to make new if */ #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) /* add party to p2mp call */ -#ifdef CONFIG_COMPAT -/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ -#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) -#endif #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) /* drop party from p2mp call */ diff --git a/net/atm/svc.c b/net/atm/svc.c index 3fa0a9e..9e2e6ef 100644 --- a/net/atm/svc.c +++ b/net/atm/svc.c @@ -27,6 +27,11 @@ #include "signaling.h" #include "addr.h" +#ifdef CONFIG_COMPAT +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) +#endif + static int svc_create(struct net *net, struct socket *sock, int protocol, int kern); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (8 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt ` (32 subsequent siblings) 42 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace wouldn't have seen the definition before. Unfortunately this header file became visible to userspace, so the definition has instead been moved to net/atm/svc.c (the only user). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/atmdev.h | 4 ---- net/atm/svc.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h index 93e0ec0..3dcec70 100644 --- a/include/uapi/linux/atmdev.h +++ b/include/uapi/linux/atmdev.h @@ -100,10 +100,6 @@ struct atm_dev_stats { /* use backend to make new if */ #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) /* add party to p2mp call */ -#ifdef CONFIG_COMPAT -/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ -#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) -#endif #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) /* drop party from p2mp call */ diff --git a/net/atm/svc.c b/net/atm/svc.c index 3fa0a9e..9e2e6ef 100644 --- a/net/atm/svc.c +++ b/net/atm/svc.c @@ -27,6 +27,11 @@ #include "signaling.h" #include "addr.h" +#ifdef CONFIG_COMPAT +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) +#endif + static int svc_create(struct net *net, struct socket *sock, int protocol, int kern); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace wouldn't have seen the definition before. Unfortunately this header file became visible to userspace, so the definition has instead been moved to net/atm/svc.c (the only user). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/atmdev.h | 4 ---- net/atm/svc.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h index 93e0ec0..3dcec70 100644 --- a/include/uapi/linux/atmdev.h +++ b/include/uapi/linux/atmdev.h @@ -100,10 +100,6 @@ struct atm_dev_stats { /* use backend to make new if */ #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) /* add party to p2mp call */ -#ifdef CONFIG_COMPAT -/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ -#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) -#endif #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) /* drop party from p2mp call */ diff --git a/net/atm/svc.c b/net/atm/svc.c index 3fa0a9e..9e2e6ef 100644 --- a/net/atm/svc.c +++ b/net/atm/svc.c @@ -27,6 +27,11 @@ #include "signaling.h" #include "addr.h" +#ifdef CONFIG_COMPAT +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) +#endif + static int svc_create(struct net *net, struct socket *sock, int protocol, int kern); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (9 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (31 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it be non-zero. While I had originally hoped to avoid hiding it, it looks like this conflicts with MAP_HUGE_SHIFT so I think it's safer to just keep this 0. Architectures that want to define this can still override it. In fact, the Xtensa port already overrides it in a very similar manner to the previously broken one (but due to lots of conflicting opinions on how to solve this correctly, I'm just taking the easy way out and letting their arch maintainers deal with it -- sorry). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/mman-common.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index ddc3b36..0ce2a13 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,9 +19,7 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED -# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ -#else +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (10 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (30 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it be non-zero. While I had originally hoped to avoid hiding it, it looks like this conflicts with MAP_HUGE_SHIFT so I think it's safer to just keep this 0. Architectures that want to define this can still override it. In fact, the Xtensa port already overrides it in a very similar manner to the previously broken one (but due to lots of conflicting opinions on how to solve this correctly, I'm just taking the easy way out and letting their arch maintainers deal with it -- sorry). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/mman-common.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index ddc3b36..0ce2a13 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,9 +19,7 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED -# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ -#else +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (11 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" Palmer Dabbelt ` (29 subsequent siblings) 42 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it be non-zero. While I had originally hoped to avoid hiding it, it looks like this conflicts with MAP_HUGE_SHIFT so I think it's safer to just keep this 0. Architectures that want to define this can still override it. In fact, the Xtensa port already overrides it in a very similar manner to the previously broken one (but due to lots of conflicting opinions on how to solve this correctly, I'm just taking the easy way out and letting their arch maintainers deal with it -- sorry). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/mman-common.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index ddc3b36..0ce2a13 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,9 +19,7 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED -# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ -#else +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it be non-zero. While I had originally hoped to avoid hiding it, it looks like this conflicts with MAP_HUGE_SHIFT so I think it's safer to just keep this 0. Architectures that want to define this can still override it. In fact, the Xtensa port already overrides it in a very similar manner to the previously broken one (but due to lots of conflicting opinions on how to solve this correctly, I'm just taking the easy way out and letting their arch maintainers deal with it -- sorry). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/mman-common.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index ddc3b36..0ce2a13 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,9 +19,7 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED -# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ -#else +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (12 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (28 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This is a pretty big change that I haven't tested any, which worries me a lot. The general idea here is that "struct elf_prstatus" can be visible to userspace (from <linux/ptrace.h>) " Generic ptrace interface that exports the architecture specific regsets using the corresponding NT_* types (which are also used in the core dump). Please note that the NT_PRSTATUS note type in a core dump contains a full 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the other user_regset flavors, the user_regset layout and the ELF core dump note payload are exactly the same layout. " so it shouldn't have an "#ifdef CONFIG_" in there. This splits the structure into two different structures, one still named "struct elf_prstatus", and one for ELF FDPIC that is named "struct elf_fdpic_prstatus" -- the idea here is that most users are standard ELF, so that's the name that didn't change. I tried to fix all the users of "struct elf_prstatus" that should now be using "struct elf_fdpic_prstatus". The only testing I did here was to build a Blackfin defconfig with "struct elf_prstatus" not defined, and to build an x86 defconfig with "struct elf_fdpic_prstatus" not defined. Note that this fails checkpatch.pl with a complaint about wanting open braces on the same line as struct definitions. The existing struct definitions in this file have the brace a line afterwards, so I'm going to leave this alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_elf_fdpic.c | 6 +++--- fs/proc/kcore.c | 16 ++++++++++++++++ include/linux/kexec.h | 4 ++++ include/uapi/linux/elfcore.h | 37 +++++++++++++++++++++++++++++++++++-- kernel/kexec_core.c | 4 ++++ 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index d3634bf..587bf04 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c @@ -1323,7 +1323,7 @@ static inline void fill_note(struct memelfnote *note, const char *name, int type * fill up all the fields in prstatus from the given task struct, except * registers which need to be filled up separately. */ -static void fill_prstatus(struct elf_prstatus *prstatus, +static void fill_prstatus(struct elf_fdpic_prstatus *prstatus, struct task_struct *p, long signr) { prstatus->pr_info.si_signo = prstatus->pr_cursig = signr; @@ -1406,7 +1406,7 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p, struct elf_thread_status { struct list_head list; - struct elf_prstatus prstatus; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ elf_fpregset_t fpu; /* NT_PRFPREG */ struct task_struct *thread; #ifdef ELF_CORE_COPY_XFPREGS @@ -1539,7 +1539,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) loff_t offset = 0, dataoff; int numnote; struct memelfnote *notes = NULL; - struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus *prstatus = NULL; /* NT_PRSTATUS */ struct elf_prpsinfo *psinfo = NULL; /* NT_PRPSINFO */ LIST_HEAD(thread_list); struct list_head *t; diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c index 92e6726..b1edd77e 100644 --- a/fs/proc/kcore.c +++ b/fs/proc/kcore.c @@ -90,7 +90,11 @@ static size_t get_kcore_size(int *nphdr, size_t *elf_buflen) (*nphdr + 2)*sizeof(struct elf_phdr) + 3 * ((sizeof(struct elf_note)) + roundup(sizeof(CORE_STR), 4)) + +#ifdef CONFIG_BINFMT_ELF_FDPIC + roundup(sizeof(struct elf_fdpic_prstatus), 4) + +#else roundup(sizeof(struct elf_prstatus), 4) + +#endif roundup(sizeof(struct elf_prpsinfo), 4) + roundup(arch_task_struct_size, 4); *elf_buflen = PAGE_ALIGN(*elf_buflen); @@ -318,7 +322,11 @@ static char *storenote(struct memelfnote *men, char *bufp) */ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ +#else struct elf_prstatus prstatus; /* NT_PRSTATUS */ +#endif struct elf_prpsinfo prpsinfo; /* NT_PRPSINFO */ struct elf_phdr *nhdr, *phdr; struct elfhdr *elf; @@ -387,10 +395,18 @@ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) /* set up the process status */ notes[0].name = CORE_STR; notes[0].type = NT_PRSTATUS; +#ifdef CONFIG_BINFMT_ELF_FDPIC + notes[0].datasz = sizeof(struct elf_fdpic_prstatus); +#else notes[0].datasz = sizeof(struct elf_prstatus); +#endif notes[0].data = &prstatus; +#ifdef CONFIG_BINFMT_ELF_FDPIC + memset(&prstatus, 0, sizeof(struct elf_fdpic_prstatus)); +#else memset(&prstatus, 0, sizeof(struct elf_prstatus)); +#endif nhdr->p_filesz = notesize(¬es[0]); bufp = storenote(¬es[0], bufp); diff --git a/include/linux/kexec.h b/include/linux/kexec.h index d140b1e..d9196cc 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -63,7 +63,11 @@ #define KEXEC_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4) #define KEXEC_CORE_NOTE_NAME "CORE" #define KEXEC_CORE_NOTE_NAME_BYTES ALIGN(sizeof(KEXEC_CORE_NOTE_NAME), 4) +#ifdef CONFIG_BINFMT_ELF_FDPIC +#define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_fdpic_prstatus), 4) +#else #define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_prstatus), 4) +#endif /* * The per-cpu notes area is a list of notes terminated by a "NULL" * note header. For kdump, the code in vmcore.c runs in the context diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h index 569737c..697c52d 100644 --- a/include/uapi/linux/elfcore.h +++ b/include/uapi/linux/elfcore.h @@ -60,7 +60,40 @@ struct elf_prstatus long pr_instr; /* Current instruction */ #endif elf_gregset_t pr_reg; /* GP registers */ -#ifdef CONFIG_BINFMT_ELF_FDPIC + int pr_fpvalid; /* True if math co-processor being used. */ +}; + +/* Architectures that set CONFIG_BINFMT_ELF_FDPIC use this instead of + * "struct elf_prstatus". + */ +struct elf_fdpic_prstatus +{ +#if 0 + long pr_flags; /* XXX Process flags */ + short pr_why; /* XXX Reason for process halt */ + short pr_what; /* XXX More detailed reason */ +#endif + struct elf_siginfo pr_info; /* Info associated with signal */ + short pr_cursig; /* Current signal */ + unsigned long pr_sigpend; /* Set of pending signals */ + unsigned long pr_sighold; /* Set of held signals */ +#if 0 + struct sigaltstack pr_altstack; /* Alternate stack info */ + struct sigaction pr_action; /* Signal action for current sig */ +#endif + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct timeval pr_utime; /* User time */ + struct timeval pr_stime; /* System time */ + struct timeval pr_cutime; /* Cumulative user time */ + struct timeval pr_cstime; /* Cumulative system time */ +#if 0 + long pr_instr; /* Current instruction */ +#endif + elf_gregset_t pr_reg; /* GP registers */ + /* When using FDPIC, the loadmap addresses need to be communicated * to GDB in order for GDB to do the necessary relocations. The * fields (below) used to communicate this information are placed @@ -69,7 +102,7 @@ struct elf_prstatus */ unsigned long pr_exec_fdpic_loadmap; unsigned long pr_interp_fdpic_loadmap; -#endif + int pr_fpvalid; /* True if math co-processor being used. */ }; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 201b453..8d2fc70 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -977,7 +977,11 @@ static void final_note(u32 *buf) void crash_save_cpu(struct pt_regs *regs, int cpu) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; +#else struct elf_prstatus prstatus; +#endif u32 *buf; if ((cpu < 0) || (cpu >= nr_cpu_ids)) -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (13 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (27 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This is a pretty big change that I haven't tested any, which worries me a lot. The general idea here is that "struct elf_prstatus" can be visible to userspace (from <linux/ptrace.h>) " Generic ptrace interface that exports the architecture specific regsets using the corresponding NT_* types (which are also used in the core dump). Please note that the NT_PRSTATUS note type in a core dump contains a full 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the other user_regset flavors, the user_regset layout and the ELF core dump note payload are exactly the same layout. " so it shouldn't have an "#ifdef CONFIG_" in there. This splits the structure into two different structures, one still named "struct elf_prstatus", and one for ELF FDPIC that is named "struct elf_fdpic_prstatus" -- the idea here is that most users are standard ELF, so that's the name that didn't change. I tried to fix all the users of "struct elf_prstatus" that should now be using "struct elf_fdpic_prstatus". The only testing I did here was to build a Blackfin defconfig with "struct elf_prstatus" not defined, and to build an x86 defconfig with "struct elf_fdpic_prstatus" not defined. Note that this fails checkpatch.pl with a complaint about wanting open braces on the same line as struct definitions. The existing struct definitions in this file have the brace a line afterwards, so I'm going to leave this alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_elf_fdpic.c | 6 +++--- fs/proc/kcore.c | 16 ++++++++++++++++ include/linux/kexec.h | 4 ++++ include/uapi/linux/elfcore.h | 37 +++++++++++++++++++++++++++++++++++-- kernel/kexec_core.c | 4 ++++ 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index d3634bf..587bf04 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c @@ -1323,7 +1323,7 @@ static inline void fill_note(struct memelfnote *note, const char *name, int type * fill up all the fields in prstatus from the given task struct, except * registers which need to be filled up separately. */ -static void fill_prstatus(struct elf_prstatus *prstatus, +static void fill_prstatus(struct elf_fdpic_prstatus *prstatus, struct task_struct *p, long signr) { prstatus->pr_info.si_signo = prstatus->pr_cursig = signr; @@ -1406,7 +1406,7 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p, struct elf_thread_status { struct list_head list; - struct elf_prstatus prstatus; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ elf_fpregset_t fpu; /* NT_PRFPREG */ struct task_struct *thread; #ifdef ELF_CORE_COPY_XFPREGS @@ -1539,7 +1539,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) loff_t offset = 0, dataoff; int numnote; struct memelfnote *notes = NULL; - struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus *prstatus = NULL; /* NT_PRSTATUS */ struct elf_prpsinfo *psinfo = NULL; /* NT_PRPSINFO */ LIST_HEAD(thread_list); struct list_head *t; diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c index 92e6726..b1edd77e 100644 --- a/fs/proc/kcore.c +++ b/fs/proc/kcore.c @@ -90,7 +90,11 @@ static size_t get_kcore_size(int *nphdr, size_t *elf_buflen) (*nphdr + 2)*sizeof(struct elf_phdr) + 3 * ((sizeof(struct elf_note)) + roundup(sizeof(CORE_STR), 4)) + +#ifdef CONFIG_BINFMT_ELF_FDPIC + roundup(sizeof(struct elf_fdpic_prstatus), 4) + +#else roundup(sizeof(struct elf_prstatus), 4) + +#endif roundup(sizeof(struct elf_prpsinfo), 4) + roundup(arch_task_struct_size, 4); *elf_buflen = PAGE_ALIGN(*elf_buflen); @@ -318,7 +322,11 @@ static char *storenote(struct memelfnote *men, char *bufp) */ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ +#else struct elf_prstatus prstatus; /* NT_PRSTATUS */ +#endif struct elf_prpsinfo prpsinfo; /* NT_PRPSINFO */ struct elf_phdr *nhdr, *phdr; struct elfhdr *elf; @@ -387,10 +395,18 @@ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) /* set up the process status */ notes[0].name = CORE_STR; notes[0].type = NT_PRSTATUS; +#ifdef CONFIG_BINFMT_ELF_FDPIC + notes[0].datasz = sizeof(struct elf_fdpic_prstatus); +#else notes[0].datasz = sizeof(struct elf_prstatus); +#endif notes[0].data = &prstatus; +#ifdef CONFIG_BINFMT_ELF_FDPIC + memset(&prstatus, 0, sizeof(struct elf_fdpic_prstatus)); +#else memset(&prstatus, 0, sizeof(struct elf_prstatus)); +#endif nhdr->p_filesz = notesize(¬es[0]); bufp = storenote(¬es[0], bufp); diff --git a/include/linux/kexec.h b/include/linux/kexec.h index d140b1e..d9196cc 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -63,7 +63,11 @@ #define KEXEC_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4) #define KEXEC_CORE_NOTE_NAME "CORE" #define KEXEC_CORE_NOTE_NAME_BYTES ALIGN(sizeof(KEXEC_CORE_NOTE_NAME), 4) +#ifdef CONFIG_BINFMT_ELF_FDPIC +#define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_fdpic_prstatus), 4) +#else #define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_prstatus), 4) +#endif /* * The per-cpu notes area is a list of notes terminated by a "NULL" * note header. For kdump, the code in vmcore.c runs in the context diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h index 569737c..697c52d 100644 --- a/include/uapi/linux/elfcore.h +++ b/include/uapi/linux/elfcore.h @@ -60,7 +60,40 @@ struct elf_prstatus long pr_instr; /* Current instruction */ #endif elf_gregset_t pr_reg; /* GP registers */ -#ifdef CONFIG_BINFMT_ELF_FDPIC + int pr_fpvalid; /* True if math co-processor being used. */ +}; + +/* Architectures that set CONFIG_BINFMT_ELF_FDPIC use this instead of + * "struct elf_prstatus". + */ +struct elf_fdpic_prstatus +{ +#if 0 + long pr_flags; /* XXX Process flags */ + short pr_why; /* XXX Reason for process halt */ + short pr_what; /* XXX More detailed reason */ +#endif + struct elf_siginfo pr_info; /* Info associated with signal */ + short pr_cursig; /* Current signal */ + unsigned long pr_sigpend; /* Set of pending signals */ + unsigned long pr_sighold; /* Set of held signals */ +#if 0 + struct sigaltstack pr_altstack; /* Alternate stack info */ + struct sigaction pr_action; /* Signal action for current sig */ +#endif + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct timeval pr_utime; /* User time */ + struct timeval pr_stime; /* System time */ + struct timeval pr_cutime; /* Cumulative user time */ + struct timeval pr_cstime; /* Cumulative system time */ +#if 0 + long pr_instr; /* Current instruction */ +#endif + elf_gregset_t pr_reg; /* GP registers */ + /* When using FDPIC, the loadmap addresses need to be communicated * to GDB in order for GDB to do the necessary relocations. The * fields (below) used to communicate this information are placed @@ -69,7 +102,7 @@ struct elf_prstatus */ unsigned long pr_exec_fdpic_loadmap; unsigned long pr_interp_fdpic_loadmap; -#endif + int pr_fpvalid; /* True if math co-processor being used. */ }; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 201b453..8d2fc70 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -977,7 +977,11 @@ static void final_note(u32 *buf) void crash_save_cpu(struct pt_regs *regs, int cpu) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; +#else struct elf_prstatus prstatus; +#endif u32 *buf; if ((cpu < 0) || (cpu >= nr_cpu_ids)) -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (14 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c Palmer Dabbelt ` (26 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This is a pretty big change that I haven't tested any, which worries me a lot. The general idea here is that "struct elf_prstatus" can be visible to userspace (from <linux/ptrace.h>) " Generic ptrace interface that exports the architecture specific regsets using the corresponding NT_* types (which are also used in the core dump). Please note that the NT_PRSTATUS note type in a core dump contains a full 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the other user_regset flavors, the user_regset layout and the ELF core dump note payload are exactly the same layout. " so it shouldn't have an "#ifdef CONFIG_" in there. This splits the structure into two different structures, one still named "struct elf_prstatus", and one for ELF FDPIC that is named "struct elf_fdpic_prstatus" -- the idea here is that most users are standard ELF, so that's the name that didn't change. I tried to fix all the users of "struct elf_prstatus" that should now be using "struct elf_fdpic_prstatus". The only testing I did here was to build a Blackfin defconfig with "struct elf_prstatus" not defined, and to build an x86 defconfig with "struct elf_fdpic_prstatus" not defined. Note that this fails checkpatch.pl with a complaint about wanting open braces on the same line as struct definitions. The existing struct definitions in this file have the brace a line afterwards, so I'm going to leave this alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_elf_fdpic.c | 6 +++--- fs/proc/kcore.c | 16 ++++++++++++++++ include/linux/kexec.h | 4 ++++ include/uapi/linux/elfcore.h | 37 +++++++++++++++++++++++++++++++++++-- kernel/kexec_core.c | 4 ++++ 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index d3634bf..587bf04 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c @@ -1323,7 +1323,7 @@ static inline void fill_note(struct memelfnote *note, const char *name, int type * fill up all the fields in prstatus from the given task struct, except * registers which need to be filled up separately. */ -static void fill_prstatus(struct elf_prstatus *prstatus, +static void fill_prstatus(struct elf_fdpic_prstatus *prstatus, struct task_struct *p, long signr) { prstatus->pr_info.si_signo = prstatus->pr_cursig = signr; @@ -1406,7 +1406,7 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p, struct elf_thread_status { struct list_head list; - struct elf_prstatus prstatus; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ elf_fpregset_t fpu; /* NT_PRFPREG */ struct task_struct *thread; #ifdef ELF_CORE_COPY_XFPREGS @@ -1539,7 +1539,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) loff_t offset = 0, dataoff; int numnote; struct memelfnote *notes = NULL; - struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus *prstatus = NULL; /* NT_PRSTATUS */ struct elf_prpsinfo *psinfo = NULL; /* NT_PRPSINFO */ LIST_HEAD(thread_list); struct list_head *t; diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c index 92e6726..b1edd77e 100644 --- a/fs/proc/kcore.c +++ b/fs/proc/kcore.c @@ -90,7 +90,11 @@ static size_t get_kcore_size(int *nphdr, size_t *elf_buflen) (*nphdr + 2)*sizeof(struct elf_phdr) + 3 * ((sizeof(struct elf_note)) + roundup(sizeof(CORE_STR), 4)) + +#ifdef CONFIG_BINFMT_ELF_FDPIC + roundup(sizeof(struct elf_fdpic_prstatus), 4) + +#else roundup(sizeof(struct elf_prstatus), 4) + +#endif roundup(sizeof(struct elf_prpsinfo), 4) + roundup(arch_task_struct_size, 4); *elf_buflen = PAGE_ALIGN(*elf_buflen); @@ -318,7 +322,11 @@ static char *storenote(struct memelfnote *men, char *bufp) */ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ +#else struct elf_prstatus prstatus; /* NT_PRSTATUS */ +#endif struct elf_prpsinfo prpsinfo; /* NT_PRPSINFO */ struct elf_phdr *nhdr, *phdr; struct elfhdr *elf; @@ -387,10 +395,18 @@ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) /* set up the process status */ notes[0].name = CORE_STR; notes[0].type = NT_PRSTATUS; +#ifdef CONFIG_BINFMT_ELF_FDPIC + notes[0].datasz = sizeof(struct elf_fdpic_prstatus); +#else notes[0].datasz = sizeof(struct elf_prstatus); +#endif notes[0].data = &prstatus; +#ifdef CONFIG_BINFMT_ELF_FDPIC + memset(&prstatus, 0, sizeof(struct elf_fdpic_prstatus)); +#else memset(&prstatus, 0, sizeof(struct elf_prstatus)); +#endif nhdr->p_filesz = notesize(¬es[0]); bufp = storenote(¬es[0], bufp); diff --git a/include/linux/kexec.h b/include/linux/kexec.h index d140b1e..d9196cc 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -63,7 +63,11 @@ #define KEXEC_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4) #define KEXEC_CORE_NOTE_NAME "CORE" #define KEXEC_CORE_NOTE_NAME_BYTES ALIGN(sizeof(KEXEC_CORE_NOTE_NAME), 4) +#ifdef CONFIG_BINFMT_ELF_FDPIC +#define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_fdpic_prstatus), 4) +#else #define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_prstatus), 4) +#endif /* * The per-cpu notes area is a list of notes terminated by a "NULL" * note header. For kdump, the code in vmcore.c runs in the context diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h index 569737c..697c52d 100644 --- a/include/uapi/linux/elfcore.h +++ b/include/uapi/linux/elfcore.h @@ -60,7 +60,40 @@ struct elf_prstatus long pr_instr; /* Current instruction */ #endif elf_gregset_t pr_reg; /* GP registers */ -#ifdef CONFIG_BINFMT_ELF_FDPIC + int pr_fpvalid; /* True if math co-processor being used. */ +}; + +/* Architectures that set CONFIG_BINFMT_ELF_FDPIC use this instead of + * "struct elf_prstatus". + */ +struct elf_fdpic_prstatus +{ +#if 0 + long pr_flags; /* XXX Process flags */ + short pr_why; /* XXX Reason for process halt */ + short pr_what; /* XXX More detailed reason */ +#endif + struct elf_siginfo pr_info; /* Info associated with signal */ + short pr_cursig; /* Current signal */ + unsigned long pr_sigpend; /* Set of pending signals */ + unsigned long pr_sighold; /* Set of held signals */ +#if 0 + struct sigaltstack pr_altstack; /* Alternate stack info */ + struct sigaction pr_action; /* Signal action for current sig */ +#endif + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct timeval pr_utime; /* User time */ + struct timeval pr_stime; /* System time */ + struct timeval pr_cutime; /* Cumulative user time */ + struct timeval pr_cstime; /* Cumulative system time */ +#if 0 + long pr_instr; /* Current instruction */ +#endif + elf_gregset_t pr_reg; /* GP registers */ + /* When using FDPIC, the loadmap addresses need to be communicated * to GDB in order for GDB to do the necessary relocations. The * fields (below) used to communicate this information are placed @@ -69,7 +102,7 @@ struct elf_prstatus */ unsigned long pr_exec_fdpic_loadmap; unsigned long pr_interp_fdpic_loadmap; -#endif + int pr_fpvalid; /* True if math co-processor being used. */ }; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 201b453..8d2fc70 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -977,7 +977,11 @@ static void final_note(u32 *buf) void crash_save_cpu(struct pt_regs *regs, int cpu) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; +#else struct elf_prstatus prstatus; +#endif u32 *buf; if ((cpu < 0) || (cpu >= nr_cpu_ids)) -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (15 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (25 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This doesn't make any sense to expose to userspace, so it's been moved to the one user. This was introduced by commit 95f19f658ce1 ("epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled"). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/eventpoll.c | 13 +++++++++++++ include/uapi/linux/eventpoll.h | 12 ------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 1e009ca..aadee3d 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1812,6 +1812,19 @@ SYSCALL_DEFINE1(epoll_create, int, size) return sys_epoll_create1(0); } +#ifdef CONFIG_PM_SLEEP +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) + epev->events &= ~EPOLLWAKEUP; +} +#else +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + epev->events &= ~EPOLLWAKEUP; +} +#endif + /* * The following function implements the controller interface for * the eventpoll file that enables the insertion/removal/change of diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2..7850373 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,16 +61,4 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; -#ifdef CONFIG_PM_SLEEP -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) - epev->events &= ~EPOLLWAKEUP; -} -#else -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - epev->events &= ~EPOLLWAKEUP; -} -#endif #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (16 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (24 subsequent siblings) 42 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This doesn't make any sense to expose to userspace, so it's been moved to the one user. This was introduced by commit 95f19f658ce1 ("epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled"). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/eventpoll.c | 13 +++++++++++++ include/uapi/linux/eventpoll.h | 12 ------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 1e009ca..aadee3d 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1812,6 +1812,19 @@ SYSCALL_DEFINE1(epoll_create, int, size) return sys_epoll_create1(0); } +#ifdef CONFIG_PM_SLEEP +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) + epev->events &= ~EPOLLWAKEUP; +} +#else +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + epev->events &= ~EPOLLWAKEUP; +} +#endif + /* * The following function implements the controller interface for * the eventpoll file that enables the insertion/removal/change of diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2..7850373 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,16 +61,4 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; -#ifdef CONFIG_PM_SLEEP -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) - epev->events &= ~EPOLLWAKEUP; -} -#else -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - epev->events &= ~EPOLLWAKEUP; -} -#endif #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This doesn't make any sense to expose to userspace, so it's been moved to the one user. This was introduced by commit 95f19f658ce1 ("epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled"). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/eventpoll.c | 13 +++++++++++++ include/uapi/linux/eventpoll.h | 12 ------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 1e009ca..aadee3d 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1812,6 +1812,19 @@ SYSCALL_DEFINE1(epoll_create, int, size) return sys_epoll_create1(0); } +#ifdef CONFIG_PM_SLEEP +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) + epev->events &= ~EPOLLWAKEUP; +} +#else +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + epev->events &= ~EPOLLWAKEUP; +} +#endif + /* * The following function implements the controller interface for * the eventpoll file that enables the insertion/removal/change of diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2..7850373 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,16 +61,4 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; -#ifdef CONFIG_PM_SLEEP -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) - epev->events &= ~EPOLLWAKEUP; -} -#else -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - epev->events &= ~EPOLLWAKEUP; -} -#endif #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (17 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt ` (23 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This doesn't make any sense to expose to userspace, so it's been moved to the one user. This was introduced by commit 95f19f658ce1 ("epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled"). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/eventpoll.c | 13 +++++++++++++ include/uapi/linux/eventpoll.h | 12 ------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 1e009ca..aadee3d 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1812,6 +1812,19 @@ SYSCALL_DEFINE1(epoll_create, int, size) return sys_epoll_create1(0); } +#ifdef CONFIG_PM_SLEEP +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) + epev->events &= ~EPOLLWAKEUP; +} +#else +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + epev->events &= ~EPOLLWAKEUP; +} +#endif + /* * The following function implements the controller interface for * the eventpoll file that enables the insertion/removal/change of diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2..7850373 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,16 +61,4 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; -#ifdef CONFIG_PM_SLEEP -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) - epev->events &= ~EPOLLWAKEUP; -} -#else -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - epev->events &= ~EPOLLWAKEUP; -} -#endif #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (18 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (22 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt Nothing else in the kernel defines this, and this header is visible to userspace. Rather than hiding it in an #ifdef, I think it's sane to just make this visible to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/fb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h index fb795c3..8926f13 100644 --- a/include/uapi/linux/fb.h +++ b/include/uapi/linux/fb.h @@ -392,11 +392,8 @@ struct fb_cursor { struct fb_image image; /* Cursor image */ }; -#ifdef CONFIG_FB_BACKLIGHT /* Settings for the generic backlight code */ #define FB_BACKLIGHT_LEVELS 128 #define FB_BACKLIGHT_MAX 0xFF -#endif - #endif /* _UAPI_LINUX_FB_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (19 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (21 subsequent siblings) 42 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt Nothing else in the kernel defines this, and this header is visible to userspace. Rather than hiding it in an #ifdef, I think it's sane to just make this visible to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/fb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h index fb795c3..8926f13 100644 --- a/include/uapi/linux/fb.h +++ b/include/uapi/linux/fb.h @@ -392,11 +392,8 @@ struct fb_cursor { struct fb_image image; /* Cursor image */ }; -#ifdef CONFIG_FB_BACKLIGHT /* Settings for the generic backlight code */ #define FB_BACKLIGHT_LEVELS 128 #define FB_BACKLIGHT_MAX 0xFF -#endif - #endif /* _UAPI_LINUX_FB_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt Nothing else in the kernel defines this, and this header is visible to userspace. Rather than hiding it in an #ifdef, I think it's sane to just make this visible to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/fb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h index fb795c3..8926f13 100644 --- a/include/uapi/linux/fb.h +++ b/include/uapi/linux/fb.h @@ -392,11 +392,8 @@ struct fb_cursor { struct fb_image image; /* Cursor image */ }; -#ifdef CONFIG_FB_BACKLIGHT /* Settings for the generic backlight code */ #define FB_BACKLIGHT_LEVELS 128 #define FB_BACKLIGHT_MAX 0xFF -#endif - #endif /* _UAPI_LINUX_FB_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (20 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt ` (20 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt Nothing else in the kernel defines this, and this header is visible to userspace. Rather than hiding it in an #ifdef, I think it's sane to just make this visible to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/fb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h index fb795c3..8926f13 100644 --- a/include/uapi/linux/fb.h +++ b/include/uapi/linux/fb.h @@ -392,11 +392,8 @@ struct fb_cursor { struct fb_image image; /* Cursor image */ }; -#ifdef CONFIG_FB_BACKLIGHT /* Settings for the generic backlight code */ #define FB_BACKLIGHT_LEVELS 128 #define FB_BACKLIGHT_MAX 0xFF -#endif - #endif /* _UAPI_LINUX_FB_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (21 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (19 subsequent siblings) 42 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_flat.c | 6 ++++++ include/uapi/linux/flat.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index f723cd3..e89fb43 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -72,6 +72,12 @@ #define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */ #define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */ +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + struct lib_info { struct { unsigned long start_code; /* Start of text segment */ diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6ba..1b177c7 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,12 +13,6 @@ #define FLAT_VERSION 0x00000004L -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define MAX_SHARED_LIBS (4) -#else -#define MAX_SHARED_LIBS (1) -#endif - /* * To make everything easier to port and manage cross platform * development, all fields are in network byte order. -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c 2015-11-03 19:46 ` [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_flat.c | 6 ++++++ include/uapi/linux/flat.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index f723cd3..e89fb43 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -72,6 +72,12 @@ #define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */ #define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */ +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + struct lib_info { struct { unsigned long start_code; /* Start of text segment */ diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6ba..1b177c7 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,12 +13,6 @@ #define FLAT_VERSION 0x00000004L -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define MAX_SHARED_LIBS (4) -#else -#define MAX_SHARED_LIBS (1) -#endif - /* * To make everything easier to port and manage cross platform * development, all fields are in network byte order. -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (22 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (18 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_flat.c | 6 ++++++ include/uapi/linux/flat.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index f723cd3..e89fb43 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -72,6 +72,12 @@ #define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */ #define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */ +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + struct lib_info { struct { unsigned long start_code; /* Start of text segment */ diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6ba..1b177c7 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,12 +13,6 @@ #define FLAT_VERSION 0x00000004L -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define MAX_SHARED_LIBS (4) -#else -#define MAX_SHARED_LIBS (1) -#endif - /* * To make everything easier to port and manage cross platform * development, all fields are in network byte order. -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (23 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c Palmer Dabbelt ` (17 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_flat.c | 6 ++++++ include/uapi/linux/flat.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index f723cd3..e89fb43 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -72,6 +72,12 @@ #define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */ #define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */ +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + struct lib_info { struct { unsigned long start_code; /* Start of text segment */ diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6ba..1b177c7 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,12 +13,6 @@ #define FLAT_VERSION 0x00000004L -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define MAX_SHARED_LIBS (4) -#else -#define MAX_SHARED_LIBS (1) -#endif - /* * To make everything easier to port and manage cross platform * development, all fields are in network byte order. -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (24 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (3 more replies) 2015-11-03 19:46 ` Palmer Dabbelt ` (16 subsequent siblings) 42 siblings, 4 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This has a "#ifdef CONFIG_*" that used to be exposed to userspace. The names in here are so generic that I don't think it's a good idea to expose them to userspace (or even the rest of the kernel). Since there's only one kernel user, it's been moved to that file. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/hw_breakpoint.h | 10 ---------- kernel/events/hw_breakpoint.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h index b04000a..7a6a5a7 100644 --- a/include/uapi/linux/hw_breakpoint.h +++ b/include/uapi/linux/hw_breakpoint.h @@ -17,14 +17,4 @@ enum { HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, }; -enum bp_type_idx { - TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS - TYPE_DATA = 0, -#else - TYPE_DATA = 1, -#endif - TYPE_MAX -}; - #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c index 92ce5f4..5ad117e 100644 --- a/kernel/events/hw_breakpoint.c +++ b/kernel/events/hw_breakpoint.c @@ -58,6 +58,16 @@ struct bp_cpuinfo { unsigned int flexible; /* XXX: placeholder, see fetch_this_slot() */ }; +enum bp_type_idx { + TYPE_INST = 0, +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + static DEFINE_PER_CPU(struct bp_cpuinfo, bp_cpuinfo[TYPE_MAX]); static int nr_slots[TYPE_MAX]; -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-11-03 19:46 ` [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt [not found] ` <1446579994-9937-10-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (2 subsequent siblings) 3 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This has a "#ifdef CONFIG_*" that used to be exposed to userspace. The names in here are so generic that I don't think it's a good idea to expose them to userspace (or even the rest of the kernel). Since there's only one kernel user, it's been moved to that file. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/hw_breakpoint.h | 10 ---------- kernel/events/hw_breakpoint.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h index b04000a..7a6a5a7 100644 --- a/include/uapi/linux/hw_breakpoint.h +++ b/include/uapi/linux/hw_breakpoint.h @@ -17,14 +17,4 @@ enum { HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, }; -enum bp_type_idx { - TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS - TYPE_DATA = 0, -#else - TYPE_DATA = 1, -#endif - TYPE_MAX -}; - #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c index 92ce5f4..5ad117e 100644 --- a/kernel/events/hw_breakpoint.c +++ b/kernel/events/hw_breakpoint.c @@ -58,6 +58,16 @@ struct bp_cpuinfo { unsigned int flexible; /* XXX: placeholder, see fetch_this_slot() */ }; +enum bp_type_idx { + TYPE_INST = 0, +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + static DEFINE_PER_CPU(struct bp_cpuinfo, bp_cpuinfo[TYPE_MAX]); static int nr_slots[TYPE_MAX]; -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
[parent not found: <1446579994-9937-10-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>]
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c [not found] ` <1446579994-9937-10-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> @ 2015-11-03 21:28 ` kbuild test robot 2015-11-03 21:28 ` kbuild test robot 0 siblings, 1 reply; 327+ messages in thread From: kbuild test robot @ 2015-11-03 21:28 UTC (permalink / raw) To: Palmer Dabbelt Cc: kbuild-all-JC7UmRfGjtg, arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86 [-- Attachment #1: Type: text/plain, Size: 2209 bytes --] Hi Palmer, [auto build test ERROR on v4.3-rc7] [also ERROR on: next-20151103] url: https://github.com/0day-ci/linux/commits/Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 base: https://github.com/0day-ci/linux Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 config: powerpc-defconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=powerpc All errors (new ones prefixed by >>): arch/powerpc/kernel/hw_breakpoint.c: In function 'hw_breakpoint_slots': >> arch/powerpc/kernel/hw_breakpoint.c:49:14: error: 'TYPE_DATA' undeclared (first use in this function) if (type == TYPE_DATA) ^ arch/powerpc/kernel/hw_breakpoint.c:49:14: note: each undeclared identifier is reported only once for each function it appears in vim +/TYPE_DATA +49 arch/powerpc/kernel/hw_breakpoint.c 5aae8a53 K.Prasad 2010-06-15 43 5aae8a53 K.Prasad 2010-06-15 44 /* d09ec738 Paul Mackerras 2010-06-29 45 * Returns total number of data or instruction breakpoints available. d09ec738 Paul Mackerras 2010-06-29 46 */ d09ec738 Paul Mackerras 2010-06-29 47 int hw_breakpoint_slots(int type) d09ec738 Paul Mackerras 2010-06-29 48 { d09ec738 Paul Mackerras 2010-06-29 @49 if (type == TYPE_DATA) d09ec738 Paul Mackerras 2010-06-29 50 return HBP_NUM; d09ec738 Paul Mackerras 2010-06-29 51 return 0; /* no instruction breakpoints available */ d09ec738 Paul Mackerras 2010-06-29 52 } :::::: The code at line 49 was first introduced by commit :::::: d09ec7387184eba9e3030496f0451204090ff610 powerpc, hw_breakpoint: Tell generic code we have no instruction breakpoints :::::: TO: Paul Mackerras <paulus-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org> :::::: CC: Paul Mackerras <paulus-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [-- Attachment #2: .config.gz --] [-- Type: application/octet-stream, Size: 21538 bytes --] ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-11-03 21:28 ` kbuild test robot @ 2015-11-03 21:28 ` kbuild test robot 0 siblings, 0 replies; 327+ messages in thread From: kbuild test robot @ 2015-11-03 21:28 UTC (permalink / raw) To: Palmer Dabbelt Cc: kbuild-all, arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 [-- Attachment #1: Type: text/plain, Size: 2149 bytes --] Hi Palmer, [auto build test ERROR on v4.3-rc7] [also ERROR on: next-20151103] url: https://github.com/0day-ci/linux/commits/Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 base: https://github.com/0day-ci/linux Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 config: powerpc-defconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=powerpc All errors (new ones prefixed by >>): arch/powerpc/kernel/hw_breakpoint.c: In function 'hw_breakpoint_slots': >> arch/powerpc/kernel/hw_breakpoint.c:49:14: error: 'TYPE_DATA' undeclared (first use in this function) if (type == TYPE_DATA) ^ arch/powerpc/kernel/hw_breakpoint.c:49:14: note: each undeclared identifier is reported only once for each function it appears in vim +/TYPE_DATA +49 arch/powerpc/kernel/hw_breakpoint.c 5aae8a53 K.Prasad 2010-06-15 43 5aae8a53 K.Prasad 2010-06-15 44 /* d09ec738 Paul Mackerras 2010-06-29 45 * Returns total number of data or instruction breakpoints available. d09ec738 Paul Mackerras 2010-06-29 46 */ d09ec738 Paul Mackerras 2010-06-29 47 int hw_breakpoint_slots(int type) d09ec738 Paul Mackerras 2010-06-29 48 { d09ec738 Paul Mackerras 2010-06-29 @49 if (type == TYPE_DATA) d09ec738 Paul Mackerras 2010-06-29 50 return HBP_NUM; d09ec738 Paul Mackerras 2010-06-29 51 return 0; /* no instruction breakpoints available */ d09ec738 Paul Mackerras 2010-06-29 52 } :::::: The code at line 49 was first introduced by commit :::::: d09ec7387184eba9e3030496f0451204090ff610 powerpc, hw_breakpoint: Tell generic code we have no instruction breakpoints :::::: TO: Paul Mackerras <paulus@samba.org> :::::: CC: Paul Mackerras <paulus@samba.org> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [-- Attachment #2: .config.gz --] [-- Type: application/octet-stream, Size: 21538 bytes --] ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-11-03 19:46 ` [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt [not found] ` <1446579994-9937-10-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> @ 2015-11-03 21:29 ` kbuild test robot 2015-11-03 21:29 ` kbuild test robot 2015-11-04 11:41 ` Peter Zijlstra 3 siblings, 1 reply; 327+ messages in thread From: kbuild test robot @ 2015-11-03 21:29 UTC (permalink / raw) To: Palmer Dabbelt Cc: kbuild-all, arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 [-- Attachment #1: Type: text/plain, Size: 2896 bytes --] Hi Palmer, [auto build test ERROR on v4.3-rc7] [also ERROR on: next-20151103] url: https://github.com/0day-ci/linux/commits/Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 base: https://github.com/0day-ci/linux Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 config: arm-socfpga_defconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=arm All errors (new ones prefixed by >>): arch/arm/kernel/ptrace.c: In function 'ptrace_get_hbp_resource_info': >> arch/arm/kernel/ptrace.c:440:33: error: 'TYPE_INST' undeclared (first use in this function) num_brps = hw_breakpoint_slots(TYPE_INST); ^ arch/arm/kernel/ptrace.c:440:33: note: each undeclared identifier is reported only once for each function it appears in >> arch/arm/kernel/ptrace.c:441:33: error: 'TYPE_DATA' undeclared (first use in this function) num_wrps = hw_breakpoint_slots(TYPE_DATA); ^ -- arch/arm/kernel/hw_breakpoint.c: In function 'hw_breakpoint_slots': >> arch/arm/kernel/hw_breakpoint.c:290:7: error: 'TYPE_INST' undeclared (first use in this function) case TYPE_INST: ^ arch/arm/kernel/hw_breakpoint.c:290:7: note: each undeclared identifier is reported only once for each function it appears in >> arch/arm/kernel/hw_breakpoint.c:292:7: error: 'TYPE_DATA' undeclared (first use in this function) case TYPE_DATA: ^ vim +/TYPE_INST +440 arch/arm/kernel/ptrace.c 864232fa Will Deacon 2010-09-03 434 864232fa Will Deacon 2010-09-03 435 static u32 ptrace_get_hbp_resource_info(void) 864232fa Will Deacon 2010-09-03 436 { 864232fa Will Deacon 2010-09-03 437 u8 num_brps, num_wrps, debug_arch, wp_len; 864232fa Will Deacon 2010-09-03 438 u32 reg = 0; 864232fa Will Deacon 2010-09-03 439 864232fa Will Deacon 2010-09-03 @440 num_brps = hw_breakpoint_slots(TYPE_INST); 864232fa Will Deacon 2010-09-03 @441 num_wrps = hw_breakpoint_slots(TYPE_DATA); 864232fa Will Deacon 2010-09-03 442 debug_arch = arch_get_debug_arch(); 864232fa Will Deacon 2010-09-03 443 wp_len = arch_get_max_wp_len(); 864232fa Will Deacon 2010-09-03 444 :::::: The code at line 440 was first introduced by commit :::::: 864232fa1a2f8dfe003438ef0851a56722740f3e ARM: 6357/1: hw-breakpoint: add new ptrace requests for hw-breakpoint interaction :::::: TO: Will Deacon <will.deacon@arm.com> :::::: CC: Russell King <rmk+kernel@arm.linux.org.uk> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [-- Attachment #2: .config.gz --] [-- Type: application/octet-stream, Size: 15319 bytes --] ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-11-03 21:29 ` kbuild test robot @ 2015-11-03 21:29 ` kbuild test robot 0 siblings, 0 replies; 327+ messages in thread From: kbuild test robot @ 2015-11-03 21:29 UTC (permalink / raw) To: Palmer Dabbelt Cc: kbuild-all, arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 [-- Attachment #1: Type: text/plain, Size: 2896 bytes --] Hi Palmer, [auto build test ERROR on v4.3-rc7] [also ERROR on: next-20151103] url: https://github.com/0day-ci/linux/commits/Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 base: https://github.com/0day-ci/linux Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 config: arm-socfpga_defconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=arm All errors (new ones prefixed by >>): arch/arm/kernel/ptrace.c: In function 'ptrace_get_hbp_resource_info': >> arch/arm/kernel/ptrace.c:440:33: error: 'TYPE_INST' undeclared (first use in this function) num_brps = hw_breakpoint_slots(TYPE_INST); ^ arch/arm/kernel/ptrace.c:440:33: note: each undeclared identifier is reported only once for each function it appears in >> arch/arm/kernel/ptrace.c:441:33: error: 'TYPE_DATA' undeclared (first use in this function) num_wrps = hw_breakpoint_slots(TYPE_DATA); ^ -- arch/arm/kernel/hw_breakpoint.c: In function 'hw_breakpoint_slots': >> arch/arm/kernel/hw_breakpoint.c:290:7: error: 'TYPE_INST' undeclared (first use in this function) case TYPE_INST: ^ arch/arm/kernel/hw_breakpoint.c:290:7: note: each undeclared identifier is reported only once for each function it appears in >> arch/arm/kernel/hw_breakpoint.c:292:7: error: 'TYPE_DATA' undeclared (first use in this function) case TYPE_DATA: ^ vim +/TYPE_INST +440 arch/arm/kernel/ptrace.c 864232fa Will Deacon 2010-09-03 434 864232fa Will Deacon 2010-09-03 435 static u32 ptrace_get_hbp_resource_info(void) 864232fa Will Deacon 2010-09-03 436 { 864232fa Will Deacon 2010-09-03 437 u8 num_brps, num_wrps, debug_arch, wp_len; 864232fa Will Deacon 2010-09-03 438 u32 reg = 0; 864232fa Will Deacon 2010-09-03 439 864232fa Will Deacon 2010-09-03 @440 num_brps = hw_breakpoint_slots(TYPE_INST); 864232fa Will Deacon 2010-09-03 @441 num_wrps = hw_breakpoint_slots(TYPE_DATA); 864232fa Will Deacon 2010-09-03 442 debug_arch = arch_get_debug_arch(); 864232fa Will Deacon 2010-09-03 443 wp_len = arch_get_max_wp_len(); 864232fa Will Deacon 2010-09-03 444 :::::: The code at line 440 was first introduced by commit :::::: 864232fa1a2f8dfe003438ef0851a56722740f3e ARM: 6357/1: hw-breakpoint: add new ptrace requests for hw-breakpoint interaction :::::: TO: Will Deacon <will.deacon@arm.com> :::::: CC: Russell King <rmk+kernel@arm.linux.org.uk> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [-- Attachment #2: .config.gz --] [-- Type: application/octet-stream, Size: 15319 bytes --] ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-11-03 19:46 ` [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c Palmer Dabbelt ` (2 preceding siblings ...) 2015-11-03 21:29 ` kbuild test robot @ 2015-11-04 11:41 ` Peter Zijlstra [not found] ` <20151104114106.GJ17308-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org> 3 siblings, 1 reply; 327+ messages in thread From: Peter Zijlstra @ 2015-11-04 11:41 UTC (permalink / raw) To: Palmer Dabbelt Cc: arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, tglx, tomi.valkeinen, vgoyal, x86 On Tue, Nov 03, 2015 at 11:46:30AM -0800, Palmer Dabbelt wrote: > This has a "#ifdef CONFIG_*" that used to be exposed to userspace. > > The names in here are so generic that I don't think it's a good idea > to expose them to userspace (or even the rest of the kernel). Since > there's only one kernel user, it's been moved to that file. > > Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> > Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> > Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> Assuming you want to keep all these patches together in a tree or so. Let me know if you want me to take this patch. Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> ^ permalink raw reply [flat|nested] 327+ messages in thread
[parent not found: <20151104114106.GJ17308-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>]
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c [not found] ` <20151104114106.GJ17308-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org> @ 2015-11-04 12:21 ` Peter Zijlstra 2015-11-04 12:21 ` Peter Zijlstra [not found] ` <20151104122151.GB11639-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org> 0 siblings, 2 replies; 327+ messages in thread From: Peter Zijlstra @ 2015-11-04 12:21 UTC (permalink / raw) To: Palmer Dabbelt Cc: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A On Wed, Nov 04, 2015 at 12:41:06PM +0100, Peter Zijlstra wrote: > On Tue, Nov 03, 2015 at 11:46:30AM -0800, Palmer Dabbelt wrote: > > This has a "#ifdef CONFIG_*" that used to be exposed to userspace. > > > > The names in here are so generic that I don't think it's a good idea > > to expose them to userspace (or even the rest of the kernel). Since > > there's only one kernel user, it's been moved to that file. > > > > Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> > > Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> > > Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> > > Assuming you want to keep all these patches together in a tree or so. > Let me know if you want me to take this patch. > > Acked-by: Peter Zijlstra (Intel) <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org> Ah, build-bot finds your change is broken and you didn't grep right. It is used in more places. How about moving it to include/linux/hw_breakpoint.h, instead of having it in the uapi crud? ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-11-04 12:21 ` Peter Zijlstra @ 2015-11-04 12:21 ` Peter Zijlstra [not found] ` <20151104122151.GB11639-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org> 1 sibling, 0 replies; 327+ messages in thread From: Peter Zijlstra @ 2015-11-04 12:21 UTC (permalink / raw) To: Palmer Dabbelt Cc: arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, tglx, tomi.valkeinen, vgoyal, x86 On Wed, Nov 04, 2015 at 12:41:06PM +0100, Peter Zijlstra wrote: > On Tue, Nov 03, 2015 at 11:46:30AM -0800, Palmer Dabbelt wrote: > > This has a "#ifdef CONFIG_*" that used to be exposed to userspace. > > > > The names in here are so generic that I don't think it's a good idea > > to expose them to userspace (or even the rest of the kernel). Since > > there's only one kernel user, it's been moved to that file. > > > > Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> > > Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> > > Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> > > Assuming you want to keep all these patches together in a tree or so. > Let me know if you want me to take this patch. > > Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Ah, build-bot finds your change is broken and you didn't grep right. It is used in more places. How about moving it to include/linux/hw_breakpoint.h, instead of having it in the uapi crud? ^ permalink raw reply [flat|nested] 327+ messages in thread
[parent not found: <20151104122151.GB11639-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>]
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c [not found] ` <20151104122151.GB11639-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org> @ 2015-11-07 6:44 ` Palmer Dabbelt 2015-11-07 6:44 ` Palmer Dabbelt 0 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-07 6:44 UTC (permalink / raw) To: peterz-wEGCiKHe2LqWVfeAwA7xHQ Cc: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A On Wed, 04 Nov 2015 04:21:51 PST (-0800), peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org wrote: > On Wed, Nov 04, 2015 at 12:41:06PM +0100, Peter Zijlstra wrote: >> On Tue, Nov 03, 2015 at 11:46:30AM -0800, Palmer Dabbelt wrote: >> > This has a "#ifdef CONFIG_*" that used to be exposed to userspace. >> > >> > The names in here are so generic that I don't think it's a good idea >> > to expose them to userspace (or even the rest of the kernel). Since >> > there's only one kernel user, it's been moved to that file. >> > >> > Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> >> > Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> >> > Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> >> >> Assuming you want to keep all these patches together in a tree or so. >> Let me know if you want me to take this patch. Well, the plan was to try to get the whole patch set all upstream together. I'd prefer that, because it'll be easier to make sure everything gets in before the last checker patch. Since it touches so many different places I'd be OK with doing it peicemeal. I'm kind of new to this whole process: do you think someone is likely to take this patch set all together? >> Acked-by: Peter Zijlstra (Intel) <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org> > > Ah, build-bot finds your change is broken and you didn't grep right. It > is used in more places. Sorry about that, I must have mis-grep'd. I guess that's what the build-bot is for :). > How about moving it to include/linux/hw_breakpoint.h, instead of having > it in the uapi crud? Yep, that makes sense. I'm going to re-submit a v5 of this patch set, since there was also a missing patch for blackfin that the buildbot found. ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-11-07 6:44 ` Palmer Dabbelt @ 2015-11-07 6:44 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-07 6:44 UTC (permalink / raw) To: peterz Cc: arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, tglx, tomi.valkeinen, vgoyal, x86 On Wed, 04 Nov 2015 04:21:51 PST (-0800), peterz@infradead.org wrote: > On Wed, Nov 04, 2015 at 12:41:06PM +0100, Peter Zijlstra wrote: >> On Tue, Nov 03, 2015 at 11:46:30AM -0800, Palmer Dabbelt wrote: >> > This has a "#ifdef CONFIG_*" that used to be exposed to userspace. >> > >> > The names in here are so generic that I don't think it's a good idea >> > to expose them to userspace (or even the rest of the kernel). Since >> > there's only one kernel user, it's been moved to that file. >> > >> > Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> >> > Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> >> > Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> >> >> Assuming you want to keep all these patches together in a tree or so. >> Let me know if you want me to take this patch. Well, the plan was to try to get the whole patch set all upstream together. I'd prefer that, because it'll be easier to make sure everything gets in before the last checker patch. Since it touches so many different places I'd be OK with doing it peicemeal. I'm kind of new to this whole process: do you think someone is likely to take this patch set all together? >> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> > > Ah, build-bot finds your change is broken and you didn't grep right. It > is used in more places. Sorry about that, I must have mis-grep'd. I guess that's what the build-bot is for :). > How about moving it to include/linux/hw_breakpoint.h, instead of having > it in the uapi crud? Yep, that makes sense. I'm going to re-submit a v5 of this patch set, since there was also a missing patch for blackfin that the buildbot found. ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (25 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (15 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This has a "#ifdef CONFIG_*" that used to be exposed to userspace. The names in here are so generic that I don't think it's a good idea to expose them to userspace (or even the rest of the kernel). Since there's only one kernel user, it's been moved to that file. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/hw_breakpoint.h | 10 ---------- kernel/events/hw_breakpoint.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h index b04000a..7a6a5a7 100644 --- a/include/uapi/linux/hw_breakpoint.h +++ b/include/uapi/linux/hw_breakpoint.h @@ -17,14 +17,4 @@ enum { HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, }; -enum bp_type_idx { - TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS - TYPE_DATA = 0, -#else - TYPE_DATA = 1, -#endif - TYPE_MAX -}; - #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c index 92ce5f4..5ad117e 100644 --- a/kernel/events/hw_breakpoint.c +++ b/kernel/events/hw_breakpoint.c @@ -58,6 +58,16 @@ struct bp_cpuinfo { unsigned int flexible; /* XXX: placeholder, see fetch_this_slot() */ }; +enum bp_type_idx { + TYPE_INST = 0, +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + static DEFINE_PER_CPU(struct bp_cpuinfo, bp_cpuinfo[TYPE_MAX]); static int nr_slots[TYPE_MAX]; -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (26 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt ` (14 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This has a "#ifdef CONFIG_*" that used to be exposed to userspace. The names in here are so generic that I don't think it's a good idea to expose them to userspace (or even the rest of the kernel). Since there's only one kernel user, it's been moved to that file. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/hw_breakpoint.h | 10 ---------- kernel/events/hw_breakpoint.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h index b04000a..7a6a5a7 100644 --- a/include/uapi/linux/hw_breakpoint.h +++ b/include/uapi/linux/hw_breakpoint.h @@ -17,14 +17,4 @@ enum { HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, }; -enum bp_type_idx { - TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS - TYPE_DATA = 0, -#else - TYPE_DATA = 1, -#endif - TYPE_MAX -}; - #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c index 92ce5f4..5ad117e 100644 --- a/kernel/events/hw_breakpoint.c +++ b/kernel/events/hw_breakpoint.c @@ -58,6 +58,16 @@ struct bp_cpuinfo { unsigned int flexible; /* XXX: placeholder, see fetch_this_slot() */ }; +enum bp_type_idx { + TYPE_INST = 0, +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + static DEFINE_PER_CPU(struct bp_cpuinfo, bp_cpuinfo[TYPE_MAX]); static int nr_slots[TYPE_MAX]; -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (27 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (13 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I don't think this was ever intended to be exposed to userspace, but it did require an "#ifdef CONFIG_*". Since the name is kind of generic and was only used in one place, I've moved the definition to the one user. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/block/pktcdvd.c | 11 +++++++++++ include/uapi/linux/pktcdvd.h | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 7be2375..18d2d05 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -90,6 +90,17 @@ do { \ #define MAX_SPEED 0xffff +/* + * use drive write caching -- we need deferred error handling to be + * able to successfully recover with this option (drive will return good + * status as soon as the cdb is validated). + */ +#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) +#define USE_WCACHING 1 +#else +#define USE_WCACHING 0 +#endif + static DEFINE_MUTEX(pktcdvd_mutex); static struct pktcdvd_device *pkt_devs[MAX_WRITERS]; static struct proc_dir_entry *pkt_proc; diff --git a/include/uapi/linux/pktcdvd.h b/include/uapi/linux/pktcdvd.h index 2640b9d..05c2bee 100644 --- a/include/uapi/linux/pktcdvd.h +++ b/include/uapi/linux/pktcdvd.h @@ -29,17 +29,6 @@ #define PACKET_WAIT_TIME (HZ * 5 / 1000) /* - * use drive write caching -- we need deferred error handling to be - * able to successfully recover with this option (drive will return good - * status as soon as the cdb is validated). - */ -#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) -#define USE_WCACHING 1 -#else -#define USE_WCACHING 0 -#endif - -/* * No user-servicable parts beyond this point -> */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (28 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (12 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I don't think this was ever intended to be exposed to userspace, but it did require an "#ifdef CONFIG_*". Since the name is kind of generic and was only used in one place, I've moved the definition to the one user. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/block/pktcdvd.c | 11 +++++++++++ include/uapi/linux/pktcdvd.h | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 7be2375..18d2d05 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -90,6 +90,17 @@ do { \ #define MAX_SPEED 0xffff +/* + * use drive write caching -- we need deferred error handling to be + * able to successfully recover with this option (drive will return good + * status as soon as the cdb is validated). + */ +#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) +#define USE_WCACHING 1 +#else +#define USE_WCACHING 0 +#endif + static DEFINE_MUTEX(pktcdvd_mutex); static struct pktcdvd_device *pkt_devs[MAX_WRITERS]; static struct proc_dir_entry *pkt_proc; diff --git a/include/uapi/linux/pktcdvd.h b/include/uapi/linux/pktcdvd.h index 2640b9d..05c2bee 100644 --- a/include/uapi/linux/pktcdvd.h +++ b/include/uapi/linux/pktcdvd.h @@ -29,17 +29,6 @@ #define PACKET_WAIT_TIME (HZ * 5 / 1000) /* - * use drive write caching -- we need deferred error handling to be - * able to successfully recover with this option (drive will return good - * status as soon as the cdb is validated). - */ -#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) -#define USE_WCACHING 1 -#else -#define USE_WCACHING 0 -#endif - -/* * No user-servicable parts beyond this point -> */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (29 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 11/13] Always define MAX_RAW_MINORS as 2**20 in userspace Palmer Dabbelt ` (11 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I don't think this was ever intended to be exposed to userspace, but it did require an "#ifdef CONFIG_*". Since the name is kind of generic and was only used in one place, I've moved the definition to the one user. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/block/pktcdvd.c | 11 +++++++++++ include/uapi/linux/pktcdvd.h | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 7be2375..18d2d05 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -90,6 +90,17 @@ do { \ #define MAX_SPEED 0xffff +/* + * use drive write caching -- we need deferred error handling to be + * able to successfully recover with this option (drive will return good + * status as soon as the cdb is validated). + */ +#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) +#define USE_WCACHING 1 +#else +#define USE_WCACHING 0 +#endif + static DEFINE_MUTEX(pktcdvd_mutex); static struct pktcdvd_device *pkt_devs[MAX_WRITERS]; static struct proc_dir_entry *pkt_proc; diff --git a/include/uapi/linux/pktcdvd.h b/include/uapi/linux/pktcdvd.h index 2640b9d..05c2bee 100644 --- a/include/uapi/linux/pktcdvd.h +++ b/include/uapi/linux/pktcdvd.h @@ -29,17 +29,6 @@ #define PACKET_WAIT_TIME (HZ * 5 / 1000) /* - * use drive write caching -- we need deferred error handling to be - * able to successfully recover with this option (drive will return good - * status as soon as the cdb is validated). - */ -#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) -#define USE_WCACHING 1 -#else -#define USE_WCACHING 0 -#endif - -/* * No user-servicable parts beyond this point -> */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 11/13] Always define MAX_RAW_MINORS as 2**20 in userspace 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (30 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 20:11 ` kbuild test robot 2015-11-03 19:46 ` Palmer Dabbelt ` (10 subsequent siblings) 42 siblings, 2 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt While I don't think this was ever meant to be exposed to userspace, if anyone is using it then this will at least provide a correct (if unlikely) definition. MAX_RAW_MINORS used to be used in the kernel, where it's been replaced with CONFIG_MAX_RAW_MINORS. Note that there's a checkpatch.pl warning about a split config string here, but I've left that alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/char/raw.c | 7 ++++--- include/uapi/linux/raw.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 60316fb..362d7a6 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -36,7 +36,7 @@ static struct raw_device_data *raw_devices; static DEFINE_MUTEX(raw_mutex); static const struct file_operations raw_ctl_fops; /* forward declaration */ -static int max_raw_minors = MAX_RAW_MINORS; +static int max_raw_minors = CONFIG_MAX_RAW_MINORS; module_param(max_raw_minors, int, 0); MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); @@ -317,8 +317,9 @@ static int __init raw_init(void) if (max_raw_minors < 1 || max_raw_minors > 65536) { printk(KERN_WARNING "raw: invalid max_raw_minors (must be" - " between 1 and 65536), using %d\n", MAX_RAW_MINORS); - max_raw_minors = MAX_RAW_MINORS; + " between 1 and 65536), using %d\n", + CONFIG_MAX_RAW_MINORS); + max_raw_minors = CONFIG_MAX_RAW_MINORS; } raw_devices = vzalloc(sizeof(struct raw_device_data) * max_raw_minors); diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e..f3d009b 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,6 @@ struct raw_config_request __u64 block_minor; }; -#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#define MAX_RAW_MINORS (1 << 20) #endif /* __LINUX_RAW_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 11/13] Always define MAX_RAW_MINORS as 2**20 in userspace 2015-11-03 19:46 ` [PATCH 11/13] Always define MAX_RAW_MINORS as 2**20 in userspace Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 20:11 ` kbuild test robot 1 sibling, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt While I don't think this was ever meant to be exposed to userspace, if anyone is using it then this will at least provide a correct (if unlikely) definition. MAX_RAW_MINORS used to be used in the kernel, where it's been replaced with CONFIG_MAX_RAW_MINORS. Note that there's a checkpatch.pl warning about a split config string here, but I've left that alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/char/raw.c | 7 ++++--- include/uapi/linux/raw.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 60316fb..362d7a6 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -36,7 +36,7 @@ static struct raw_device_data *raw_devices; static DEFINE_MUTEX(raw_mutex); static const struct file_operations raw_ctl_fops; /* forward declaration */ -static int max_raw_minors = MAX_RAW_MINORS; +static int max_raw_minors = CONFIG_MAX_RAW_MINORS; module_param(max_raw_minors, int, 0); MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); @@ -317,8 +317,9 @@ static int __init raw_init(void) if (max_raw_minors < 1 || max_raw_minors > 65536) { printk(KERN_WARNING "raw: invalid max_raw_minors (must be" - " between 1 and 65536), using %d\n", MAX_RAW_MINORS); - max_raw_minors = MAX_RAW_MINORS; + " between 1 and 65536), using %d\n", + CONFIG_MAX_RAW_MINORS); + max_raw_minors = CONFIG_MAX_RAW_MINORS; } raw_devices = vzalloc(sizeof(struct raw_device_data) * max_raw_minors); diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e..f3d009b 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,6 @@ struct raw_config_request __u64 block_minor; }; -#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#define MAX_RAW_MINORS (1 << 20) #endif /* __LINUX_RAW_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* Re: [PATCH 11/13] Always define MAX_RAW_MINORS as 2**20 in userspace 2015-11-03 19:46 ` [PATCH 11/13] Always define MAX_RAW_MINORS as 2**20 in userspace Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 20:11 ` kbuild test robot 2015-11-03 20:11 ` kbuild test robot 1 sibling, 1 reply; 327+ messages in thread From: kbuild test robot @ 2015-11-03 20:11 UTC (permalink / raw) To: Palmer Dabbelt Cc: kbuild-all, arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 [-- Attachment #1: Type: text/plain, Size: 1359 bytes --] Hi Palmer, [auto build test ERROR on v4.3-rc7] [also ERROR on: next-20151103] url: https://github.com/0day-ci/linux/commits/Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 base: https://github.com/0day-ci/linux Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 config: x86_64-randconfig-x014-11022153 (attached as .config) reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): >> drivers/char/raw.c:39:29: error: 'CONFIG_MAX_RAW_MINORS' undeclared here (not in a function) static int max_raw_minors = CONFIG_MAX_RAW_MINORS; ^ vim +/CONFIG_MAX_RAW_MINORS +39 drivers/char/raw.c 33 34 static struct class *raw_class; 35 static struct raw_device_data *raw_devices; 36 static DEFINE_MUTEX(raw_mutex); 37 static const struct file_operations raw_ctl_fops; /* forward declaration */ 38 > 39 static int max_raw_minors = CONFIG_MAX_RAW_MINORS; 40 41 module_param(max_raw_minors, int, 0); 42 MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [-- Attachment #2: .config.gz --] [-- Type: application/octet-stream, Size: 21634 bytes --] ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 11/13] Always define MAX_RAW_MINORS as 2**20 in userspace 2015-11-03 20:11 ` kbuild test robot @ 2015-11-03 20:11 ` kbuild test robot 0 siblings, 0 replies; 327+ messages in thread From: kbuild test robot @ 2015-11-03 20:11 UTC (permalink / raw) To: Palmer Dabbelt Cc: kbuild-all, arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 [-- Attachment #1: Type: text/plain, Size: 1359 bytes --] Hi Palmer, [auto build test ERROR on v4.3-rc7] [also ERROR on: next-20151103] url: https://github.com/0day-ci/linux/commits/Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 base: https://github.com/0day-ci/linux Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 config: x86_64-randconfig-x014-11022153 (attached as .config) reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): >> drivers/char/raw.c:39:29: error: 'CONFIG_MAX_RAW_MINORS' undeclared here (not in a function) static int max_raw_minors = CONFIG_MAX_RAW_MINORS; ^ vim +/CONFIG_MAX_RAW_MINORS +39 drivers/char/raw.c 33 34 static struct class *raw_class; 35 static struct raw_device_data *raw_devices; 36 static DEFINE_MUTEX(raw_mutex); 37 static const struct file_operations raw_ctl_fops; /* forward declaration */ 38 > 39 static int max_raw_minors = CONFIG_MAX_RAW_MINORS; 40 41 module_param(max_raw_minors, int, 0); 42 MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [-- Attachment #2: .config.gz --] [-- Type: application/octet-stream, Size: 21634 bytes --] ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH 11/13] Always define MAX_RAW_MINORS as 2**20 in userspace 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (31 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 11/13] Always define MAX_RAW_MINORS as 2**20 in userspace Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (9 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt While I don't think this was ever meant to be exposed to userspace, if anyone is using it then this will at least provide a correct (if unlikely) definition. MAX_RAW_MINORS used to be used in the kernel, where it's been replaced with CONFIG_MAX_RAW_MINORS. Note that there's a checkpatch.pl warning about a split config string here, but I've left that alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/char/raw.c | 7 ++++--- include/uapi/linux/raw.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 60316fb..362d7a6 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -36,7 +36,7 @@ static struct raw_device_data *raw_devices; static DEFINE_MUTEX(raw_mutex); static const struct file_operations raw_ctl_fops; /* forward declaration */ -static int max_raw_minors = MAX_RAW_MINORS; +static int max_raw_minors = CONFIG_MAX_RAW_MINORS; module_param(max_raw_minors, int, 0); MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); @@ -317,8 +317,9 @@ static int __init raw_init(void) if (max_raw_minors < 1 || max_raw_minors > 65536) { printk(KERN_WARNING "raw: invalid max_raw_minors (must be" - " between 1 and 65536), using %d\n", MAX_RAW_MINORS); - max_raw_minors = MAX_RAW_MINORS; + " between 1 and 65536), using %d\n", + CONFIG_MAX_RAW_MINORS); + max_raw_minors = CONFIG_MAX_RAW_MINORS; } raw_devices = vzalloc(sizeof(struct raw_device_data) * max_raw_minors); diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e..f3d009b 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,6 @@ struct raw_config_request __u64 block_minor; }; -#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#define MAX_RAW_MINORS (1 << 20) #endif /* __LINUX_RAW_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 11/13] Always define MAX_RAW_MINORS as 2**20 in userspace 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (32 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 Palmer Dabbelt ` (8 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt While I don't think this was ever meant to be exposed to userspace, if anyone is using it then this will at least provide a correct (if unlikely) definition. MAX_RAW_MINORS used to be used in the kernel, where it's been replaced with CONFIG_MAX_RAW_MINORS. Note that there's a checkpatch.pl warning about a split config string here, but I've left that alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/char/raw.c | 7 ++++--- include/uapi/linux/raw.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 60316fb..362d7a6 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -36,7 +36,7 @@ static struct raw_device_data *raw_devices; static DEFINE_MUTEX(raw_mutex); static const struct file_operations raw_ctl_fops; /* forward declaration */ -static int max_raw_minors = MAX_RAW_MINORS; +static int max_raw_minors = CONFIG_MAX_RAW_MINORS; module_param(max_raw_minors, int, 0); MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); @@ -317,8 +317,9 @@ static int __init raw_init(void) if (max_raw_minors < 1 || max_raw_minors > 65536) { printk(KERN_WARNING "raw: invalid max_raw_minors (must be" - " between 1 and 65536), using %d\n", MAX_RAW_MINORS); - max_raw_minors = MAX_RAW_MINORS; + " between 1 and 65536), using %d\n", + CONFIG_MAX_RAW_MINORS); + max_raw_minors = CONFIG_MAX_RAW_MINORS; } raw_devices = vzalloc(sizeof(struct raw_device_data) * max_raw_minors); diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e..f3d009b 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,6 @@ struct raw_config_request __u64 block_minor; }; -#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#define MAX_RAW_MINORS (1 << 20) #endif /* __LINUX_RAW_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (33 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (7 subsequent siblings) 42 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt It looks like there aren't actually users of this macro anywhere: * The kernel doesn't use it on x86 because we don't suppor ELF FDPIC. * The only Google results point to LMKL patches, both the one that wrote this (from 2010) and my patch to hide it behind __KERNEL__. * I grep'd through all the source tarballs on my machine, and the only packages that matched were the kernel and crui (which copied a PPC kernel header). Since I'm not sure how to actually provide the right answer (if I understand correctly, CONFIG_IA32_EMULATION is not __i386__), the only thing I can think of to do is to just remove the definition. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- arch/x86/include/uapi/asm/auxvec.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm/auxvec.h index 77203ac..1316b4c 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -9,11 +9,4 @@ #endif #define AT_SYSINFO_EHDR 33 -/* entries in ARCH_DLINFO: */ -#if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) -# define AT_VECTOR_SIZE_ARCH 2 -#else /* else it's non-compat x86-64 */ -# define AT_VECTOR_SIZE_ARCH 1 -#endif - #endif /* _ASM_X86_AUXVEC_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 2015-11-03 19:46 ` [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt It looks like there aren't actually users of this macro anywhere: * The kernel doesn't use it on x86 because we don't suppor ELF FDPIC. * The only Google results point to LMKL patches, both the one that wrote this (from 2010) and my patch to hide it behind __KERNEL__. * I grep'd through all the source tarballs on my machine, and the only packages that matched were the kernel and crui (which copied a PPC kernel header). Since I'm not sure how to actually provide the right answer (if I understand correctly, CONFIG_IA32_EMULATION is not __i386__), the only thing I can think of to do is to just remove the definition. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- arch/x86/include/uapi/asm/auxvec.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm/auxvec.h index 77203ac..1316b4c 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -9,11 +9,4 @@ #endif #define AT_SYSINFO_EHDR 33 -/* entries in ARCH_DLINFO: */ -#if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) -# define AT_VECTOR_SIZE_ARCH 2 -#else /* else it's non-compat x86-64 */ -# define AT_VECTOR_SIZE_ARCH 1 -#endif - #endif /* _ASM_X86_AUXVEC_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (34 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (6 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt It looks like there aren't actually users of this macro anywhere: * The kernel doesn't use it on x86 because we don't suppor ELF FDPIC. * The only Google results point to LMKL patches, both the one that wrote this (from 2010) and my patch to hide it behind __KERNEL__. * I grep'd through all the source tarballs on my machine, and the only packages that matched were the kernel and crui (which copied a PPC kernel header). Since I'm not sure how to actually provide the right answer (if I understand correctly, CONFIG_IA32_EMULATION is not __i386__), the only thing I can think of to do is to just remove the definition. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- arch/x86/include/uapi/asm/auxvec.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm/auxvec.h index 77203ac..1316b4c 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -9,11 +9,4 @@ #endif #define AT_SYSINFO_EHDR 33 -/* entries in ARCH_DLINFO: */ -#if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) -# define AT_VECTOR_SIZE_ARCH 2 -#else /* else it's non-compat x86-64 */ -# define AT_VECTOR_SIZE_ARCH 1 -#endif - #endif /* _ASM_X86_AUXVEC_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (35 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt ` (5 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt It looks like there aren't actually users of this macro anywhere: * The kernel doesn't use it on x86 because we don't suppor ELF FDPIC. * The only Google results point to LMKL patches, both the one that wrote this (from 2010) and my patch to hide it behind __KERNEL__. * I grep'd through all the source tarballs on my machine, and the only packages that matched were the kernel and crui (which copied a PPC kernel header). Since I'm not sure how to actually provide the right answer (if I understand correctly, CONFIG_IA32_EMULATION is not __i386__), the only thing I can think of to do is to just remove the definition. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- arch/x86/include/uapi/asm/auxvec.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm/auxvec.h index 77203ac..1316b4c 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -9,11 +9,4 @@ #endif #define AT_SYSINFO_EHDR 33 -/* entries in ARCH_DLINFO: */ -#if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) -# define AT_VECTOR_SIZE_ARCH 2 -#else /* else it's non-compat x86-64 */ -# define AT_VECTOR_SIZE_ARCH 1 -#endif - #endif /* _ASM_X86_AUXVEC_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (36 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (4 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I recently got bit by a CONFIG_ in userspace bug. This has apparently happened before, but the check got disabled for triggering too much. In order to reduce false positives, I added some hueristics to avoid detecting comments. Since these tests all pass, I've now re-enabled them. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- scripts/headers_check.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 62320f9..1634b51 100755 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl @@ -27,6 +27,7 @@ my $ret = 0; my $line; my $lineno = 0; my $filename; +my $check_config_in_multiline_comment = 0; foreach my $file (@files) { $filename = $file; @@ -40,7 +41,7 @@ foreach my $file (@files) { &check_asm_types(); &check_sizetypes(); &check_declarations(); - # Dropped for now. Too much noise &check_config(); + &check_config(); } close $fh; } @@ -78,7 +79,21 @@ sub check_declarations sub check_config { - if ($line =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { + my $nocomments = $line; + $nocomments =~ s/\/\*.*\*\///; # Remove ANSI-style comments (/* to */) + $nocomments =~ s/\/\/.*//; # Remove C99-style comments (// to EOL) + + # Check to see if we're within a multiline comment, and if so + # just remove the whole line. I tried matching on '^ * ', but + # there's one header that doesn't prepend multi-line comments + # with * so that won't work. + if ($nocomments =~ m/\/\*/) { $check_config_in_multiline_comment = 1; } + if ($nocomments =~ m/\*\//) { $check_config_in_multiline_comment = 0; } + if ($check_config_in_multiline_comment == 1) { $nocomments = "" } + + # Check to see if there is something that looks like CONFIG_ + # inside a userspace-accessible header file and if so, print that out. + if ($nocomments =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n"; } } -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (37 preceding siblings ...) 2015-11-03 19:46 ` [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (3 subsequent siblings) 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I recently got bit by a CONFIG_ in userspace bug. This has apparently happened before, but the check got disabled for triggering too much. In order to reduce false positives, I added some hueristics to avoid detecting comments. Since these tests all pass, I've now re-enabled them. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- scripts/headers_check.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 62320f9..1634b51 100755 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl @@ -27,6 +27,7 @@ my $ret = 0; my $line; my $lineno = 0; my $filename; +my $check_config_in_multiline_comment = 0; foreach my $file (@files) { $filename = $file; @@ -40,7 +41,7 @@ foreach my $file (@files) { &check_asm_types(); &check_sizetypes(); &check_declarations(); - # Dropped for now. Too much noise &check_config(); + &check_config(); } close $fh; } @@ -78,7 +79,21 @@ sub check_declarations sub check_config { - if ($line =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { + my $nocomments = $line; + $nocomments =~ s/\/\*.*\*\///; # Remove ANSI-style comments (/* to */) + $nocomments =~ s/\/\/.*//; # Remove C99-style comments (// to EOL) + + # Check to see if we're within a multiline comment, and if so + # just remove the whole line. I tried matching on '^ * ', but + # there's one header that doesn't prepend multi-line comments + # with * so that won't work. + if ($nocomments =~ m/\/\*/) { $check_config_in_multiline_comment = 1; } + if ($nocomments =~ m/\*\//) { $check_config_in_multiline_comment = 0; } + if ($check_config_in_multiline_comment == 1) { $nocomments = "" } + + # Check to see if there is something that looks like CONFIG_ + # inside a userspace-accessible header file and if so, print that out. + if ($nocomments =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n"; } } -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (38 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt ` (2 more replies) 2015-11-10 1:30 ` [PATCH v5] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (2 subsequent siblings) 42 siblings, 3 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I recently got bit by a CONFIG_ in userspace bug. This has apparently happened before, but the check got disabled for triggering too much. In order to reduce false positives, I added some hueristics to avoid detecting comments. Since these tests all pass, I've now re-enabled them. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- scripts/headers_check.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 62320f9..1634b51 100755 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl @@ -27,6 +27,7 @@ my $ret = 0; my $line; my $lineno = 0; my $filename; +my $check_config_in_multiline_comment = 0; foreach my $file (@files) { $filename = $file; @@ -40,7 +41,7 @@ foreach my $file (@files) { &check_asm_types(); &check_sizetypes(); &check_declarations(); - # Dropped for now. Too much noise &check_config(); + &check_config(); } close $fh; } @@ -78,7 +79,21 @@ sub check_declarations sub check_config { - if ($line =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { + my $nocomments = $line; + $nocomments =~ s/\/\*.*\*\///; # Remove ANSI-style comments (/* to */) + $nocomments =~ s/\/\/.*//; # Remove C99-style comments (// to EOL) + + # Check to see if we're within a multiline comment, and if so + # just remove the whole line. I tried matching on '^ * ', but + # there's one header that doesn't prepend multi-line comments + # with * so that won't work. + if ($nocomments =~ m/\/\*/) { $check_config_in_multiline_comment = 1; } + if ($nocomments =~ m/\*\//) { $check_config_in_multiline_comment = 0; } + if ($check_config_in_multiline_comment == 1) { $nocomments = "" } + + # Check to see if there is something that looks like CONFIG_ + # inside a userspace-accessible header file and if so, print that out. + if ($nocomments =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n"; } } -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 20:25 ` kbuild test robot 2015-11-03 20:26 ` kbuild test robot 2 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I recently got bit by a CONFIG_ in userspace bug. This has apparently happened before, but the check got disabled for triggering too much. In order to reduce false positives, I added some hueristics to avoid detecting comments. Since these tests all pass, I've now re-enabled them. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- scripts/headers_check.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 62320f9..1634b51 100755 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl @@ -27,6 +27,7 @@ my $ret = 0; my $line; my $lineno = 0; my $filename; +my $check_config_in_multiline_comment = 0; foreach my $file (@files) { $filename = $file; @@ -40,7 +41,7 @@ foreach my $file (@files) { &check_asm_types(); &check_sizetypes(); &check_declarations(); - # Dropped for now. Too much noise &check_config(); + &check_config(); } close $fh; } @@ -78,7 +79,21 @@ sub check_declarations sub check_config { - if ($line =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { + my $nocomments = $line; + $nocomments =~ s/\/\*.*\*\///; # Remove ANSI-style comments (/* to */) + $nocomments =~ s/\/\/.*//; # Remove C99-style comments (// to EOL) + + # Check to see if we're within a multiline comment, and if so + # just remove the whole line. I tried matching on '^ * ', but + # there's one header that doesn't prepend multi-line comments + # with * so that won't work. + if ($nocomments =~ m/\/\*/) { $check_config_in_multiline_comment = 1; } + if ($nocomments =~ m/\*\//) { $check_config_in_multiline_comment = 0; } + if ($check_config_in_multiline_comment == 1) { $nocomments = "" } + + # Check to see if there is something that looks like CONFIG_ + # inside a userspace-accessible header file and if so, print that out. + if ($nocomments =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n"; } } -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* Re: [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-03 20:25 ` kbuild test robot 2015-11-03 20:25 ` kbuild test robot 2015-11-03 20:26 ` kbuild test robot 2 siblings, 1 reply; 327+ messages in thread From: kbuild test robot @ 2015-11-03 20:25 UTC (permalink / raw) To: Palmer Dabbelt Cc: kbuild-all, arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 [-- Attachment #1: Type: text/plain, Size: 2466 bytes --] Hi Palmer, [auto build test WARNING on v4.3-rc7] [also WARNING on: next-20151103] url: https://github.com/0day-ci/linux/commits/Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 base: https://github.com/0day-ci/linux Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 config: blackfin-TCM-BF537_defconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=blackfin All warnings (new ones prefixed by >>): >> ./usr/include/asm/fixed_code.h:14: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:15: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:18: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:20: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:22: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:24: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:25: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:26: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:27: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:28: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:29: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:30: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:32: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:34: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:36: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [-- Attachment #2: .config.gz --] [-- Type: application/octet-stream, Size: 10070 bytes --] ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl 2015-11-03 20:25 ` kbuild test robot @ 2015-11-03 20:25 ` kbuild test robot 0 siblings, 0 replies; 327+ messages in thread From: kbuild test robot @ 2015-11-03 20:25 UTC (permalink / raw) To: Palmer Dabbelt Cc: kbuild-all, arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 [-- Attachment #1: Type: text/plain, Size: 2466 bytes --] Hi Palmer, [auto build test WARNING on v4.3-rc7] [also WARNING on: next-20151103] url: https://github.com/0day-ci/linux/commits/Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 base: https://github.com/0day-ci/linux Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 config: blackfin-TCM-BF537_defconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=blackfin All warnings (new ones prefixed by >>): >> ./usr/include/asm/fixed_code.h:14: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:15: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:18: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:20: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:22: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:24: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:25: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:26: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:27: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:28: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:29: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:30: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:32: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:34: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid ./usr/include/asm/fixed_code.h:36: leaks CONFIG_PHY_RAM_BASE_ADDRESS to userspace where it is not valid --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [-- Attachment #2: .config.gz --] [-- Type: application/octet-stream, Size: 10070 bytes --] ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 20:25 ` kbuild test robot @ 2015-11-03 20:26 ` kbuild test robot 2015-11-03 20:26 ` kbuild test robot 2 siblings, 1 reply; 327+ messages in thread From: kbuild test robot @ 2015-11-03 20:26 UTC (permalink / raw) To: Palmer Dabbelt Cc: kbuild-all, arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 [-- Attachment #1: Type: text/plain, Size: 953 bytes --] Hi Palmer, [auto build test WARNING on v4.3-rc7] [also WARNING on: next-20151103] url: https://github.com/0day-ci/linux/commits/Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 base: https://github.com/0day-ci/linux Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 config: alpha-defconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=alpha All warnings (new ones prefixed by >>): >> ./usr/include/asm/setup.h:16: leaks CONFIG_ALPHA_LEGACY_START_ADDRESS to userspace where it is not valid --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [-- Attachment #2: .config.gz --] [-- Type: application/octet-stream, Size: 11535 bytes --] ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl 2015-11-03 20:26 ` kbuild test robot @ 2015-11-03 20:26 ` kbuild test robot 0 siblings, 0 replies; 327+ messages in thread From: kbuild test robot @ 2015-11-03 20:26 UTC (permalink / raw) To: Palmer Dabbelt Cc: kbuild-all, arnd, dhowells, viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 [-- Attachment #1: Type: text/plain, Size: 953 bytes --] Hi Palmer, [auto build test WARNING on v4.3-rc7] [also WARNING on: next-20151103] url: https://github.com/0day-ci/linux/commits/Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 base: https://github.com/0day-ci/linux Palmer-Dabbelt/Remove-ifdef-CONFIG_64BIT-from-all-asm-generic-fcntl-h/20151104-035501 config: alpha-defconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=alpha All warnings (new ones prefixed by >>): >> ./usr/include/asm/setup.h:16: leaks CONFIG_ALPHA_LEGACY_START_ADDRESS to userspace where it is not valid --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [-- Attachment #2: .config.gz --] [-- Type: application/octet-stream, Size: 11535 bytes --] ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH v5] Remove #ifdef CONFIG_* from all userspace headers 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (39 preceding siblings ...) 2015-11-03 19:46 ` Palmer Dabbelt @ 2015-11-10 1:30 ` Palmer Dabbelt 2015-11-10 1:30 ` Palmer Dabbelt 2015-11-10 1:30 ` [PATCH v5] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:30 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 I think this should _actually_ be ready to go this time, the buildbot found some errors in arches that I didn't test for. Changes since v4 (<1446579994-9937-1-git-send-email-palmer@dabbelt.com>) * #9 was changed to work on arm by moving the enum to an in-kernel header file. * #13 was added, this fixes a problem on blackfin. Changes since v3 (<1442271047-4908-1-git-send-email-palmer@dabbelt.com>) * #4 is very different: rather than defining a canonical value for MAP_UNINITIALIZED, it just punts on the problem and lets arch maintainers deal with it. There's still an #ifndef MAP_UNINITIALIZED in there, but that shouldn't get triggered by anything because the arch headers should set it to whatever they actually want. * #11 defines MAX_RAW_MINORS to 2^20 instead of 2^16. * #13 moves the variable around a bit so it gets initialized. I forgot I was in perl and not C :). Changes since v2 (<1441832902-28993-1-git-send-email-palmer@dabbelt.com>) * Patch set renamed. * #2 is rewritten to use sys_ni.c instead of an #ifdef * #3, #6, #8, #9, #10, and #11 no longer use "#ifdef __KERNEL__" but have instead moved the offending lines to the correct, kernel-only files. * #4 has been rewritten to always define MAP_UNINITIALIZED to non-zero, rather than defining it to zero when in userspace. * #5 got a whole lot longer -- rather than just always hiding these fields from userspace, there is now a second "struct elf_fdpic_prstatus" structure. This should allow userspace to parse core dumps correctly. * Rebased onto 9c488de24f7264f08d341024bffdd637b4d04c96. Changes since v1 (<1441152610-22566-1-git-send-email-palmer@dabbelt.com>) * All patches but #1 were added. ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH v5] Remove #ifdef CONFIG_* from all userspace headers 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (40 preceding siblings ...) 2015-11-10 1:30 ` [PATCH v5] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt @ 2015-11-10 1:30 ` Palmer Dabbelt 2015-11-10 1:30 ` Palmer Dabbelt ` (43 more replies) 2015-11-10 1:30 ` [PATCH v5] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt 42 siblings, 44 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:30 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 I think this should _actually_ be ready to go this time, the buildbot found some errors in arches that I didn't test for. Changes since v4 (<1446579994-9937-1-git-send-email-palmer@dabbelt.com>) * #9 was changed to work on arm by moving the enum to an in-kernel header file. * #13 was added, this fixes a problem on blackfin. Changes since v3 (<1442271047-4908-1-git-send-email-palmer@dabbelt.com>) * #4 is very different: rather than defining a canonical value for MAP_UNINITIALIZED, it just punts on the problem and lets arch maintainers deal with it. There's still an #ifndef MAP_UNINITIALIZED in there, but that shouldn't get triggered by anything because the arch headers should set it to whatever they actually want. * #11 defines MAX_RAW_MINORS to 2^20 instead of 2^16. * #13 moves the variable around a bit so it gets initialized. I forgot I was in perl and not C :). Changes since v2 (<1441832902-28993-1-git-send-email-palmer@dabbelt.com>) * Patch set renamed. * #2 is rewritten to use sys_ni.c instead of an #ifdef * #3, #6, #8, #9, #10, and #11 no longer use "#ifdef __KERNEL__" but have instead moved the offending lines to the correct, kernel-only files. * #4 has been rewritten to always define MAP_UNINITIALIZED to non-zero, rather than defining it to zero when in userspace. * #5 got a whole lot longer -- rather than just always hiding these fields from userspace, there is now a second "struct elf_fdpic_prstatus" structure. This should allow userspace to parse core dumps correctly. * Rebased onto 9c488de24f7264f08d341024bffdd637b4d04c96. Changes since v1 (<1441152610-22566-1-git-send-email-palmer@dabbelt.com>) * All patches but #1 were added. ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH v5] Remove #ifdef CONFIG_* from all userspace headers 2015-11-10 1:30 ` Palmer Dabbelt @ 2015-11-10 1:30 ` Palmer Dabbelt 2015-11-10 1:30 ` [PATCH 01/14] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt ` (42 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:30 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 I think this should _actually_ be ready to go this time, the buildbot found some errors in arches that I didn't test for. Changes since v4 (<1446579994-9937-1-git-send-email-palmer@dabbelt.com>) * #9 was changed to work on arm by moving the enum to an in-kernel header file. * #13 was added, this fixes a problem on blackfin. Changes since v3 (<1442271047-4908-1-git-send-email-palmer@dabbelt.com>) * #4 is very different: rather than defining a canonical value for MAP_UNINITIALIZED, it just punts on the problem and lets arch maintainers deal with it. There's still an #ifndef MAP_UNINITIALIZED in there, but that shouldn't get triggered by anything because the arch headers should set it to whatever they actually want. * #11 defines MAX_RAW_MINORS to 2^20 instead of 2^16. * #13 moves the variable around a bit so it gets initialized. I forgot I was in perl and not C :). Changes since v2 (<1441832902-28993-1-git-send-email-palmer@dabbelt.com>) * Patch set renamed. * #2 is rewritten to use sys_ni.c instead of an #ifdef * #3, #6, #8, #9, #10, and #11 no longer use "#ifdef __KERNEL__" but have instead moved the offending lines to the correct, kernel-only files. * #4 has been rewritten to always define MAP_UNINITIALIZED to non-zero, rather than defining it to zero when in userspace. * #5 got a whole lot longer -- rather than just always hiding these fields from userspace, there is now a second "struct elf_fdpic_prstatus" structure. This should allow userspace to parse core dumps correctly. * Rebased onto 9c488de24f7264f08d341024bffdd637b4d04c96. Changes since v1 (<1441152610-22566-1-git-send-email-palmer@dabbelt.com>) * All patches but #1 were added. ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH 01/14] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-11-10 1:30 ` Palmer Dabbelt 2015-11-10 1:30 ` Palmer Dabbelt @ 2015-11-10 1:30 ` Palmer Dabbelt 2015-11-10 1:30 ` Palmer Dabbelt ` (41 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:30 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> Reviewed-by: Arnd Bergmann <arnd@arndb.de> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063eff..14a5c82 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 01/14] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-11-10 1:30 ` Palmer Dabbelt 2015-11-10 1:30 ` Palmer Dabbelt 2015-11-10 1:30 ` [PATCH 01/14] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt @ 2015-11-10 1:30 ` Palmer Dabbelt 2015-11-10 1:30 ` Palmer Dabbelt ` (40 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:30 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> Reviewed-by: Arnd Bergmann <arnd@arndb.de> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063eff..14a5c82 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 01/14] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-11-10 1:30 ` Palmer Dabbelt ` (2 preceding siblings ...) 2015-11-10 1:30 ` Palmer Dabbelt @ 2015-11-10 1:30 ` Palmer Dabbelt 2015-11-10 1:30 ` [PATCH 02/14] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU Palmer Dabbelt ` (39 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:30 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> Reviewed-by: Arnd Bergmann <arnd@arndb.de> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063eff..14a5c82 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 02/14] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU 2015-11-10 1:30 ` Palmer Dabbelt ` (3 preceding siblings ...) 2015-11-10 1:30 ` Palmer Dabbelt @ 2015-11-10 1:30 ` Palmer Dabbelt 2015-11-10 1:30 ` Palmer Dabbelt ` (38 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:30 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I think this change actually doesn't do anything: __NR_fork was still being defined either way, and on my machine fork() in <unistd.h> comes from libc. This just moves to the standard mechanism for defining syscalls that aren't implemented instead, which has the side-effect of no longer having an #ifdef CONFIG_* in a user-visible header. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/unistd.h | 4 ---- kernel/sys_ni.c | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index 1324b02..9a95912 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -871,11 +871,7 @@ __SYSCALL(__NR_uselib, sys_uselib) __SYSCALL(__NR__sysctl, sys_sysctl) #define __NR_fork 1079 -#ifdef CONFIG_MMU __SYSCALL(__NR_fork, sys_fork) -#else -__SYSCALL(__NR_fork, sys_ni_syscall) -#endif /* CONFIG_MMU */ #undef __NR_syscalls #define __NR_syscalls (__NR_fork+1) diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index 0623787..e251b30 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -174,6 +174,7 @@ cond_syscall(sys_setfsuid); cond_syscall(sys_setfsgid); cond_syscall(sys_capget); cond_syscall(sys_capset); +cond_syscall(sys_fork); /* arch-specific weak syscall entries */ cond_syscall(sys_pciconfig_read); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 02/14] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU 2015-11-10 1:30 ` Palmer Dabbelt ` (4 preceding siblings ...) 2015-11-10 1:30 ` [PATCH 02/14] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU Palmer Dabbelt @ 2015-11-10 1:30 ` Palmer Dabbelt 2015-11-10 1:30 ` Palmer Dabbelt 2015-11-10 1:30 ` Palmer Dabbelt ` (37 subsequent siblings) 43 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:30 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I think this change actually doesn't do anything: __NR_fork was still being defined either way, and on my machine fork() in <unistd.h> comes from libc. This just moves to the standard mechanism for defining syscalls that aren't implemented instead, which has the side-effect of no longer having an #ifdef CONFIG_* in a user-visible header. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/unistd.h | 4 ---- kernel/sys_ni.c | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index 1324b02..9a95912 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -871,11 +871,7 @@ __SYSCALL(__NR_uselib, sys_uselib) __SYSCALL(__NR__sysctl, sys_sysctl) #define __NR_fork 1079 -#ifdef CONFIG_MMU __SYSCALL(__NR_fork, sys_fork) -#else -__SYSCALL(__NR_fork, sys_ni_syscall) -#endif /* CONFIG_MMU */ #undef __NR_syscalls #define __NR_syscalls (__NR_fork+1) diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index 0623787..e251b30 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -174,6 +174,7 @@ cond_syscall(sys_setfsuid); cond_syscall(sys_setfsgid); cond_syscall(sys_capget); cond_syscall(sys_capset); +cond_syscall(sys_fork); /* arch-specific weak syscall entries */ cond_syscall(sys_pciconfig_read); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 02/14] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU 2015-11-10 1:30 ` Palmer Dabbelt @ 2015-11-10 1:30 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:30 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I think this change actually doesn't do anything: __NR_fork was still being defined either way, and on my machine fork() in <unistd.h> comes from libc. This just moves to the standard mechanism for defining syscalls that aren't implemented instead, which has the side-effect of no longer having an #ifdef CONFIG_* in a user-visible header. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/unistd.h | 4 ---- kernel/sys_ni.c | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index 1324b02..9a95912 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -871,11 +871,7 @@ __SYSCALL(__NR_uselib, sys_uselib) __SYSCALL(__NR__sysctl, sys_sysctl) #define __NR_fork 1079 -#ifdef CONFIG_MMU __SYSCALL(__NR_fork, sys_fork) -#else -__SYSCALL(__NR_fork, sys_ni_syscall) -#endif /* CONFIG_MMU */ #undef __NR_syscalls #define __NR_syscalls (__NR_fork+1) diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index 0623787..e251b30 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -174,6 +174,7 @@ cond_syscall(sys_setfsuid); cond_syscall(sys_setfsgid); cond_syscall(sys_capget); cond_syscall(sys_capset); +cond_syscall(sys_fork); /* arch-specific weak syscall entries */ cond_syscall(sys_pciconfig_read); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 02/14] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU 2015-11-10 1:30 ` Palmer Dabbelt ` (5 preceding siblings ...) 2015-11-10 1:30 ` Palmer Dabbelt @ 2015-11-10 1:30 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 03/14] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt ` (36 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:30 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I think this change actually doesn't do anything: __NR_fork was still being defined either way, and on my machine fork() in <unistd.h> comes from libc. This just moves to the standard mechanism for defining syscalls that aren't implemented instead, which has the side-effect of no longer having an #ifdef CONFIG_* in a user-visible header. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/unistd.h | 4 ---- kernel/sys_ni.c | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index 1324b02..9a95912 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -871,11 +871,7 @@ __SYSCALL(__NR_uselib, sys_uselib) __SYSCALL(__NR__sysctl, sys_sysctl) #define __NR_fork 1079 -#ifdef CONFIG_MMU __SYSCALL(__NR_fork, sys_fork) -#else -__SYSCALL(__NR_fork, sys_ni_syscall) -#endif /* CONFIG_MMU */ #undef __NR_syscalls #define __NR_syscalls (__NR_fork+1) diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index 0623787..e251b30 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -174,6 +174,7 @@ cond_syscall(sys_setfsuid); cond_syscall(sys_setfsgid); cond_syscall(sys_capget); cond_syscall(sys_capset); +cond_syscall(sys_fork); /* arch-specific weak syscall entries */ cond_syscall(sys_pciconfig_read); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 03/14] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2015-11-10 1:30 ` Palmer Dabbelt ` (6 preceding siblings ...) 2015-11-10 1:30 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (35 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace wouldn't have seen the definition before. Unfortunately this header file became visible to userspace, so the definition has instead been moved to net/atm/svc.c (the only user). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/atmdev.h | 4 ---- net/atm/svc.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h index 93e0ec0..3dcec70 100644 --- a/include/uapi/linux/atmdev.h +++ b/include/uapi/linux/atmdev.h @@ -100,10 +100,6 @@ struct atm_dev_stats { /* use backend to make new if */ #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) /* add party to p2mp call */ -#ifdef CONFIG_COMPAT -/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ -#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) -#endif #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) /* drop party from p2mp call */ diff --git a/net/atm/svc.c b/net/atm/svc.c index 3fa0a9e..9e2e6ef 100644 --- a/net/atm/svc.c +++ b/net/atm/svc.c @@ -27,6 +27,11 @@ #include "signaling.h" #include "addr.h" +#ifdef CONFIG_COMPAT +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) +#endif + static int svc_create(struct net *net, struct socket *sock, int protocol, int kern); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 03/14] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2015-11-10 1:30 ` Palmer Dabbelt ` (7 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 03/14] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt 2023-02-10 14:55 ` Thomas Huth 2015-11-10 1:31 ` Palmer Dabbelt ` (34 subsequent siblings) 43 siblings, 2 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace wouldn't have seen the definition before. Unfortunately this header file became visible to userspace, so the definition has instead been moved to net/atm/svc.c (the only user). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/atmdev.h | 4 ---- net/atm/svc.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h index 93e0ec0..3dcec70 100644 --- a/include/uapi/linux/atmdev.h +++ b/include/uapi/linux/atmdev.h @@ -100,10 +100,6 @@ struct atm_dev_stats { /* use backend to make new if */ #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) /* add party to p2mp call */ -#ifdef CONFIG_COMPAT -/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ -#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) -#endif #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) /* drop party from p2mp call */ diff --git a/net/atm/svc.c b/net/atm/svc.c index 3fa0a9e..9e2e6ef 100644 --- a/net/atm/svc.c +++ b/net/atm/svc.c @@ -27,6 +27,11 @@ #include "signaling.h" #include "addr.h" +#ifdef CONFIG_COMPAT +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) +#endif + static int svc_create(struct net *net, struct socket *sock, int protocol, int kern); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 03/14] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2023-02-10 14:55 ` Thomas Huth 1 sibling, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace wouldn't have seen the definition before. Unfortunately this header file became visible to userspace, so the definition has instead been moved to net/atm/svc.c (the only user). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/atmdev.h | 4 ---- net/atm/svc.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h index 93e0ec0..3dcec70 100644 --- a/include/uapi/linux/atmdev.h +++ b/include/uapi/linux/atmdev.h @@ -100,10 +100,6 @@ struct atm_dev_stats { /* use backend to make new if */ #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) /* add party to p2mp call */ -#ifdef CONFIG_COMPAT -/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ -#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) -#endif #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) /* drop party from p2mp call */ diff --git a/net/atm/svc.c b/net/atm/svc.c index 3fa0a9e..9e2e6ef 100644 --- a/net/atm/svc.c +++ b/net/atm/svc.c @@ -27,6 +27,11 @@ #include "signaling.h" #include "addr.h" +#ifdef CONFIG_COMPAT +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) +#endif + static int svc_create(struct net *net, struct socket *sock, int protocol, int kern); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* Re: [PATCH 03/14] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt @ 2023-02-10 14:55 ` Thomas Huth 2023-02-10 15:10 ` Arnd Bergmann 1 sibling, 1 reply; 327+ messages in thread From: Thomas Huth @ 2023-02-10 14:55 UTC (permalink / raw) To: Palmer Dabbelt, linux-api, linux-kernel, davem, Eric Dumazet, Jakub Kicinski, Paolo Abeni Cc: viro, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-arch, linux-fsdevel, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, vgoyal, x86, arnd, dhowells, peterz, netdev On 10/11/2015 02.31, Palmer Dabbelt wrote: > This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace > wouldn't have seen the definition before. Unfortunately this header > file became visible to userspace, so the definition has instead been > moved to net/atm/svc.c (the only user). > > Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> > Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> > Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> > --- > include/uapi/linux/atmdev.h | 4 ---- > net/atm/svc.c | 5 +++++ > 2 files changed, 5 insertions(+), 4 deletions(-) > > diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h > index 93e0ec0..3dcec70 100644 > --- a/include/uapi/linux/atmdev.h > +++ b/include/uapi/linux/atmdev.h > @@ -100,10 +100,6 @@ struct atm_dev_stats { > /* use backend to make new if */ > #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) > /* add party to p2mp call */ > -#ifdef CONFIG_COMPAT > -/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ > -#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) > -#endif > #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) > /* drop party from p2mp call */ > > diff --git a/net/atm/svc.c b/net/atm/svc.c > index 3fa0a9e..9e2e6ef 100644 > --- a/net/atm/svc.c > +++ b/net/atm/svc.c > @@ -27,6 +27,11 @@ > #include "signaling.h" > #include "addr.h" > > +#ifdef CONFIG_COMPAT > +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ > +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) > +#endif > + > static int svc_create(struct net *net, struct socket *sock, int protocol, > int kern); > Hi! The CONFIG_* switch is still there in the atmdev.h uapi header ... could somebody please pick this patch up to fix it? Thanks, Thomas ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH 03/14] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2023-02-10 14:55 ` Thomas Huth @ 2023-02-10 15:10 ` Arnd Bergmann 0 siblings, 0 replies; 327+ messages in thread From: Arnd Bergmann @ 2023-02-10 15:10 UTC (permalink / raw) To: Thomas Huth, Palmer Dabbelt, linux-api, linux-kernel, David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni Cc: Alexander Viro, aishchuk, aarcange, Andrew Morton, Andy Lutomirski, Arnaldo Carvalho de Melo, Baoquan He, 3chas3, chris, dave, dyoung, drysdale, Eric W. Biederman, geoff, Greg Kroah-Hartman, H. Peter Anvin, Ingo Molnar, iulia.manda21, plagnioj, jikos, Josh Triplett, Linux-Arch, linux-fsdevel, mathieu.desnoyers, Max Filippov, paulmck, a.p.zijlstra, Thomas Gleixner, vgoyal, x86, David Howells, Peter Zijlstra, Netdev On Fri, Feb 10, 2023, at 15:55, Thomas Huth wrote: > On 10/11/2015 02.31, Palmer Dabbelt wrote: >> This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace >> wouldn't have seen the definition before. Unfortunately this header >> file became visible to userspace, so the definition has instead been >> moved to net/atm/svc.c (the only user). >> >> Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> >> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> >> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> Reviewed-by: Arnd Bergmann <arnd@arndb.de> It took me a bit to figure out why there is a separate command code but no special handler for the compat structure, aside from being in the wrong file it does look correct. >> +#ifdef CONFIG_COMPAT >> +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ >> +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) >> +#endif We could actually drop the #ifdef here as well, or moving into the existing #ifdef. >> + >> static int svc_create(struct net *net, struct socket *sock, int protocol, >> int kern); > > The CONFIG_* switch is still there in the atmdev.h uapi header ... could > somebody please pick this patch up to fix it? It should get merged through the netdev tree, as Chas does not have a separate git tree for drivers/atm. I don't know what happened to the rest of the series, but if there are additional patches that got lost, merging them all through either the asm-generic or the mm tree would work as well. Any chance you or Palmer could rebase the series to 6.2-rc and see what remains? Arnd ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH 03/14] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2015-11-10 1:30 ` Palmer Dabbelt ` (8 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 04/14] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt ` (33 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace wouldn't have seen the definition before. Unfortunately this header file became visible to userspace, so the definition has instead been moved to net/atm/svc.c (the only user). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/atmdev.h | 4 ---- net/atm/svc.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h index 93e0ec0..3dcec70 100644 --- a/include/uapi/linux/atmdev.h +++ b/include/uapi/linux/atmdev.h @@ -100,10 +100,6 @@ struct atm_dev_stats { /* use backend to make new if */ #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) /* add party to p2mp call */ -#ifdef CONFIG_COMPAT -/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ -#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) -#endif #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) /* drop party from p2mp call */ diff --git a/net/atm/svc.c b/net/atm/svc.c index 3fa0a9e..9e2e6ef 100644 --- a/net/atm/svc.c +++ b/net/atm/svc.c @@ -27,6 +27,11 @@ #include "signaling.h" #include "addr.h" +#ifdef CONFIG_COMPAT +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) +#endif + static int svc_create(struct net *net, struct socket *sock, int protocol, int kern); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 04/14] Always expose MAP_UNINITIALIZED to userspace 2015-11-10 1:30 ` Palmer Dabbelt ` (9 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (32 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it be non-zero. While I had originally hoped to avoid hiding it, it looks like this conflicts with MAP_HUGE_SHIFT so I think it's safer to just keep this 0. Architectures that want to define this can still override it. In fact, the Xtensa port already overrides it in a very similar manner to the previously broken one (but due to lots of conflicting opinions on how to solve this correctly, I'm just taking the easy way out and letting their arch maintainers deal with it -- sorry). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/mman-common.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index a74dd84..25ca92c 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,9 +19,7 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED -# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ -#else +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 04/14] Always expose MAP_UNINITIALIZED to userspace 2015-11-10 1:30 ` Palmer Dabbelt ` (10 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 04/14] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (31 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it be non-zero. While I had originally hoped to avoid hiding it, it looks like this conflicts with MAP_HUGE_SHIFT so I think it's safer to just keep this 0. Architectures that want to define this can still override it. In fact, the Xtensa port already overrides it in a very similar manner to the previously broken one (but due to lots of conflicting opinions on how to solve this correctly, I'm just taking the easy way out and letting their arch maintainers deal with it -- sorry). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/mman-common.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index a74dd84..25ca92c 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,9 +19,7 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED -# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ -#else +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 04/14] Always expose MAP_UNINITIALIZED to userspace 2015-11-10 1:30 ` Palmer Dabbelt ` (11 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 05/14] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" Palmer Dabbelt ` (30 subsequent siblings) 43 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it be non-zero. While I had originally hoped to avoid hiding it, it looks like this conflicts with MAP_HUGE_SHIFT so I think it's safer to just keep this 0. Architectures that want to define this can still override it. In fact, the Xtensa port already overrides it in a very similar manner to the previously broken one (but due to lots of conflicting opinions on how to solve this correctly, I'm just taking the easy way out and letting their arch maintainers deal with it -- sorry). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/mman-common.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index a74dd84..25ca92c 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,9 +19,7 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED -# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ -#else +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 04/14] Always expose MAP_UNINITIALIZED to userspace 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it be non-zero. While I had originally hoped to avoid hiding it, it looks like this conflicts with MAP_HUGE_SHIFT so I think it's safer to just keep this 0. Architectures that want to define this can still override it. In fact, the Xtensa port already overrides it in a very similar manner to the previously broken one (but due to lots of conflicting opinions on how to solve this correctly, I'm just taking the easy way out and letting their arch maintainers deal with it -- sorry). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/mman-common.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index a74dd84..25ca92c 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,9 +19,7 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED -# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ -#else +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 05/14] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" 2015-11-10 1:30 ` Palmer Dabbelt ` (12 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (29 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This is a pretty big change that I haven't tested any, which worries me a lot. The general idea here is that "struct elf_prstatus" can be visible to userspace (from <linux/ptrace.h>) " Generic ptrace interface that exports the architecture specific regsets using the corresponding NT_* types (which are also used in the core dump). Please note that the NT_PRSTATUS note type in a core dump contains a full 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the other user_regset flavors, the user_regset layout and the ELF core dump note payload are exactly the same layout. " so it shouldn't have an "#ifdef CONFIG_" in there. This splits the structure into two different structures, one still named "struct elf_prstatus", and one for ELF FDPIC that is named "struct elf_fdpic_prstatus" -- the idea here is that most users are standard ELF, so that's the name that didn't change. I tried to fix all the users of "struct elf_prstatus" that should now be using "struct elf_fdpic_prstatus". The only testing I did here was to build a Blackfin defconfig with "struct elf_prstatus" not defined, and to build an x86 defconfig with "struct elf_fdpic_prstatus" not defined. Note that this fails checkpatch.pl with a complaint about wanting open braces on the same line as struct definitions. The existing struct definitions in this file have the brace a line afterwards, so I'm going to leave this alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_elf_fdpic.c | 6 +++--- fs/proc/kcore.c | 16 ++++++++++++++++ include/linux/kexec.h | 4 ++++ include/uapi/linux/elfcore.h | 37 +++++++++++++++++++++++++++++++++++-- kernel/kexec_core.c | 4 ++++ 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index d3634bf..587bf04 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c @@ -1323,7 +1323,7 @@ static inline void fill_note(struct memelfnote *note, const char *name, int type * fill up all the fields in prstatus from the given task struct, except * registers which need to be filled up separately. */ -static void fill_prstatus(struct elf_prstatus *prstatus, +static void fill_prstatus(struct elf_fdpic_prstatus *prstatus, struct task_struct *p, long signr) { prstatus->pr_info.si_signo = prstatus->pr_cursig = signr; @@ -1406,7 +1406,7 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p, struct elf_thread_status { struct list_head list; - struct elf_prstatus prstatus; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ elf_fpregset_t fpu; /* NT_PRFPREG */ struct task_struct *thread; #ifdef ELF_CORE_COPY_XFPREGS @@ -1539,7 +1539,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) loff_t offset = 0, dataoff; int numnote; struct memelfnote *notes = NULL; - struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus *prstatus = NULL; /* NT_PRSTATUS */ struct elf_prpsinfo *psinfo = NULL; /* NT_PRPSINFO */ LIST_HEAD(thread_list); struct list_head *t; diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c index 92e6726..b1edd77e 100644 --- a/fs/proc/kcore.c +++ b/fs/proc/kcore.c @@ -90,7 +90,11 @@ static size_t get_kcore_size(int *nphdr, size_t *elf_buflen) (*nphdr + 2)*sizeof(struct elf_phdr) + 3 * ((sizeof(struct elf_note)) + roundup(sizeof(CORE_STR), 4)) + +#ifdef CONFIG_BINFMT_ELF_FDPIC + roundup(sizeof(struct elf_fdpic_prstatus), 4) + +#else roundup(sizeof(struct elf_prstatus), 4) + +#endif roundup(sizeof(struct elf_prpsinfo), 4) + roundup(arch_task_struct_size, 4); *elf_buflen = PAGE_ALIGN(*elf_buflen); @@ -318,7 +322,11 @@ static char *storenote(struct memelfnote *men, char *bufp) */ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ +#else struct elf_prstatus prstatus; /* NT_PRSTATUS */ +#endif struct elf_prpsinfo prpsinfo; /* NT_PRPSINFO */ struct elf_phdr *nhdr, *phdr; struct elfhdr *elf; @@ -387,10 +395,18 @@ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) /* set up the process status */ notes[0].name = CORE_STR; notes[0].type = NT_PRSTATUS; +#ifdef CONFIG_BINFMT_ELF_FDPIC + notes[0].datasz = sizeof(struct elf_fdpic_prstatus); +#else notes[0].datasz = sizeof(struct elf_prstatus); +#endif notes[0].data = &prstatus; +#ifdef CONFIG_BINFMT_ELF_FDPIC + memset(&prstatus, 0, sizeof(struct elf_fdpic_prstatus)); +#else memset(&prstatus, 0, sizeof(struct elf_prstatus)); +#endif nhdr->p_filesz = notesize(¬es[0]); bufp = storenote(¬es[0], bufp); diff --git a/include/linux/kexec.h b/include/linux/kexec.h index d140b1e..d9196cc 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -63,7 +63,11 @@ #define KEXEC_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4) #define KEXEC_CORE_NOTE_NAME "CORE" #define KEXEC_CORE_NOTE_NAME_BYTES ALIGN(sizeof(KEXEC_CORE_NOTE_NAME), 4) +#ifdef CONFIG_BINFMT_ELF_FDPIC +#define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_fdpic_prstatus), 4) +#else #define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_prstatus), 4) +#endif /* * The per-cpu notes area is a list of notes terminated by a "NULL" * note header. For kdump, the code in vmcore.c runs in the context diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h index 569737c..697c52d 100644 --- a/include/uapi/linux/elfcore.h +++ b/include/uapi/linux/elfcore.h @@ -60,7 +60,40 @@ struct elf_prstatus long pr_instr; /* Current instruction */ #endif elf_gregset_t pr_reg; /* GP registers */ -#ifdef CONFIG_BINFMT_ELF_FDPIC + int pr_fpvalid; /* True if math co-processor being used. */ +}; + +/* Architectures that set CONFIG_BINFMT_ELF_FDPIC use this instead of + * "struct elf_prstatus". + */ +struct elf_fdpic_prstatus +{ +#if 0 + long pr_flags; /* XXX Process flags */ + short pr_why; /* XXX Reason for process halt */ + short pr_what; /* XXX More detailed reason */ +#endif + struct elf_siginfo pr_info; /* Info associated with signal */ + short pr_cursig; /* Current signal */ + unsigned long pr_sigpend; /* Set of pending signals */ + unsigned long pr_sighold; /* Set of held signals */ +#if 0 + struct sigaltstack pr_altstack; /* Alternate stack info */ + struct sigaction pr_action; /* Signal action for current sig */ +#endif + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct timeval pr_utime; /* User time */ + struct timeval pr_stime; /* System time */ + struct timeval pr_cutime; /* Cumulative user time */ + struct timeval pr_cstime; /* Cumulative system time */ +#if 0 + long pr_instr; /* Current instruction */ +#endif + elf_gregset_t pr_reg; /* GP registers */ + /* When using FDPIC, the loadmap addresses need to be communicated * to GDB in order for GDB to do the necessary relocations. The * fields (below) used to communicate this information are placed @@ -69,7 +102,7 @@ struct elf_prstatus */ unsigned long pr_exec_fdpic_loadmap; unsigned long pr_interp_fdpic_loadmap; -#endif + int pr_fpvalid; /* True if math co-processor being used. */ }; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 11b64a6..9cb496b 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -977,7 +977,11 @@ static void final_note(u32 *buf) void crash_save_cpu(struct pt_regs *regs, int cpu) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; +#else struct elf_prstatus prstatus; +#endif u32 *buf; if ((cpu < 0) || (cpu >= nr_cpu_ids)) -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 05/14] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" 2015-11-10 1:30 ` Palmer Dabbelt ` (13 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 05/14] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (28 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This is a pretty big change that I haven't tested any, which worries me a lot. The general idea here is that "struct elf_prstatus" can be visible to userspace (from <linux/ptrace.h>) " Generic ptrace interface that exports the architecture specific regsets using the corresponding NT_* types (which are also used in the core dump). Please note that the NT_PRSTATUS note type in a core dump contains a full 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the other user_regset flavors, the user_regset layout and the ELF core dump note payload are exactly the same layout. " so it shouldn't have an "#ifdef CONFIG_" in there. This splits the structure into two different structures, one still named "struct elf_prstatus", and one for ELF FDPIC that is named "struct elf_fdpic_prstatus" -- the idea here is that most users are standard ELF, so that's the name that didn't change. I tried to fix all the users of "struct elf_prstatus" that should now be using "struct elf_fdpic_prstatus". The only testing I did here was to build a Blackfin defconfig with "struct elf_prstatus" not defined, and to build an x86 defconfig with "struct elf_fdpic_prstatus" not defined. Note that this fails checkpatch.pl with a complaint about wanting open braces on the same line as struct definitions. The existing struct definitions in this file have the brace a line afterwards, so I'm going to leave this alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_elf_fdpic.c | 6 +++--- fs/proc/kcore.c | 16 ++++++++++++++++ include/linux/kexec.h | 4 ++++ include/uapi/linux/elfcore.h | 37 +++++++++++++++++++++++++++++++++++-- kernel/kexec_core.c | 4 ++++ 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index d3634bf..587bf04 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c @@ -1323,7 +1323,7 @@ static inline void fill_note(struct memelfnote *note, const char *name, int type * fill up all the fields in prstatus from the given task struct, except * registers which need to be filled up separately. */ -static void fill_prstatus(struct elf_prstatus *prstatus, +static void fill_prstatus(struct elf_fdpic_prstatus *prstatus, struct task_struct *p, long signr) { prstatus->pr_info.si_signo = prstatus->pr_cursig = signr; @@ -1406,7 +1406,7 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p, struct elf_thread_status { struct list_head list; - struct elf_prstatus prstatus; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ elf_fpregset_t fpu; /* NT_PRFPREG */ struct task_struct *thread; #ifdef ELF_CORE_COPY_XFPREGS @@ -1539,7 +1539,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) loff_t offset = 0, dataoff; int numnote; struct memelfnote *notes = NULL; - struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus *prstatus = NULL; /* NT_PRSTATUS */ struct elf_prpsinfo *psinfo = NULL; /* NT_PRPSINFO */ LIST_HEAD(thread_list); struct list_head *t; diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c index 92e6726..b1edd77e 100644 --- a/fs/proc/kcore.c +++ b/fs/proc/kcore.c @@ -90,7 +90,11 @@ static size_t get_kcore_size(int *nphdr, size_t *elf_buflen) (*nphdr + 2)*sizeof(struct elf_phdr) + 3 * ((sizeof(struct elf_note)) + roundup(sizeof(CORE_STR), 4)) + +#ifdef CONFIG_BINFMT_ELF_FDPIC + roundup(sizeof(struct elf_fdpic_prstatus), 4) + +#else roundup(sizeof(struct elf_prstatus), 4) + +#endif roundup(sizeof(struct elf_prpsinfo), 4) + roundup(arch_task_struct_size, 4); *elf_buflen = PAGE_ALIGN(*elf_buflen); @@ -318,7 +322,11 @@ static char *storenote(struct memelfnote *men, char *bufp) */ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ +#else struct elf_prstatus prstatus; /* NT_PRSTATUS */ +#endif struct elf_prpsinfo prpsinfo; /* NT_PRPSINFO */ struct elf_phdr *nhdr, *phdr; struct elfhdr *elf; @@ -387,10 +395,18 @@ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) /* set up the process status */ notes[0].name = CORE_STR; notes[0].type = NT_PRSTATUS; +#ifdef CONFIG_BINFMT_ELF_FDPIC + notes[0].datasz = sizeof(struct elf_fdpic_prstatus); +#else notes[0].datasz = sizeof(struct elf_prstatus); +#endif notes[0].data = &prstatus; +#ifdef CONFIG_BINFMT_ELF_FDPIC + memset(&prstatus, 0, sizeof(struct elf_fdpic_prstatus)); +#else memset(&prstatus, 0, sizeof(struct elf_prstatus)); +#endif nhdr->p_filesz = notesize(¬es[0]); bufp = storenote(¬es[0], bufp); diff --git a/include/linux/kexec.h b/include/linux/kexec.h index d140b1e..d9196cc 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -63,7 +63,11 @@ #define KEXEC_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4) #define KEXEC_CORE_NOTE_NAME "CORE" #define KEXEC_CORE_NOTE_NAME_BYTES ALIGN(sizeof(KEXEC_CORE_NOTE_NAME), 4) +#ifdef CONFIG_BINFMT_ELF_FDPIC +#define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_fdpic_prstatus), 4) +#else #define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_prstatus), 4) +#endif /* * The per-cpu notes area is a list of notes terminated by a "NULL" * note header. For kdump, the code in vmcore.c runs in the context diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h index 569737c..697c52d 100644 --- a/include/uapi/linux/elfcore.h +++ b/include/uapi/linux/elfcore.h @@ -60,7 +60,40 @@ struct elf_prstatus long pr_instr; /* Current instruction */ #endif elf_gregset_t pr_reg; /* GP registers */ -#ifdef CONFIG_BINFMT_ELF_FDPIC + int pr_fpvalid; /* True if math co-processor being used. */ +}; + +/* Architectures that set CONFIG_BINFMT_ELF_FDPIC use this instead of + * "struct elf_prstatus". + */ +struct elf_fdpic_prstatus +{ +#if 0 + long pr_flags; /* XXX Process flags */ + short pr_why; /* XXX Reason for process halt */ + short pr_what; /* XXX More detailed reason */ +#endif + struct elf_siginfo pr_info; /* Info associated with signal */ + short pr_cursig; /* Current signal */ + unsigned long pr_sigpend; /* Set of pending signals */ + unsigned long pr_sighold; /* Set of held signals */ +#if 0 + struct sigaltstack pr_altstack; /* Alternate stack info */ + struct sigaction pr_action; /* Signal action for current sig */ +#endif + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct timeval pr_utime; /* User time */ + struct timeval pr_stime; /* System time */ + struct timeval pr_cutime; /* Cumulative user time */ + struct timeval pr_cstime; /* Cumulative system time */ +#if 0 + long pr_instr; /* Current instruction */ +#endif + elf_gregset_t pr_reg; /* GP registers */ + /* When using FDPIC, the loadmap addresses need to be communicated * to GDB in order for GDB to do the necessary relocations. The * fields (below) used to communicate this information are placed @@ -69,7 +102,7 @@ struct elf_prstatus */ unsigned long pr_exec_fdpic_loadmap; unsigned long pr_interp_fdpic_loadmap; -#endif + int pr_fpvalid; /* True if math co-processor being used. */ }; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 11b64a6..9cb496b 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -977,7 +977,11 @@ static void final_note(u32 *buf) void crash_save_cpu(struct pt_regs *regs, int cpu) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; +#else struct elf_prstatus prstatus; +#endif u32 *buf; if ((cpu < 0) || (cpu >= nr_cpu_ids)) -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 05/14] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" 2015-11-10 1:30 ` Palmer Dabbelt ` (14 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 06/14] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c Palmer Dabbelt ` (27 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This is a pretty big change that I haven't tested any, which worries me a lot. The general idea here is that "struct elf_prstatus" can be visible to userspace (from <linux/ptrace.h>) " Generic ptrace interface that exports the architecture specific regsets using the corresponding NT_* types (which are also used in the core dump). Please note that the NT_PRSTATUS note type in a core dump contains a full 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the other user_regset flavors, the user_regset layout and the ELF core dump note payload are exactly the same layout. " so it shouldn't have an "#ifdef CONFIG_" in there. This splits the structure into two different structures, one still named "struct elf_prstatus", and one for ELF FDPIC that is named "struct elf_fdpic_prstatus" -- the idea here is that most users are standard ELF, so that's the name that didn't change. I tried to fix all the users of "struct elf_prstatus" that should now be using "struct elf_fdpic_prstatus". The only testing I did here was to build a Blackfin defconfig with "struct elf_prstatus" not defined, and to build an x86 defconfig with "struct elf_fdpic_prstatus" not defined. Note that this fails checkpatch.pl with a complaint about wanting open braces on the same line as struct definitions. The existing struct definitions in this file have the brace a line afterwards, so I'm going to leave this alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_elf_fdpic.c | 6 +++--- fs/proc/kcore.c | 16 ++++++++++++++++ include/linux/kexec.h | 4 ++++ include/uapi/linux/elfcore.h | 37 +++++++++++++++++++++++++++++++++++-- kernel/kexec_core.c | 4 ++++ 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index d3634bf..587bf04 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c @@ -1323,7 +1323,7 @@ static inline void fill_note(struct memelfnote *note, const char *name, int type * fill up all the fields in prstatus from the given task struct, except * registers which need to be filled up separately. */ -static void fill_prstatus(struct elf_prstatus *prstatus, +static void fill_prstatus(struct elf_fdpic_prstatus *prstatus, struct task_struct *p, long signr) { prstatus->pr_info.si_signo = prstatus->pr_cursig = signr; @@ -1406,7 +1406,7 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p, struct elf_thread_status { struct list_head list; - struct elf_prstatus prstatus; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ elf_fpregset_t fpu; /* NT_PRFPREG */ struct task_struct *thread; #ifdef ELF_CORE_COPY_XFPREGS @@ -1539,7 +1539,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) loff_t offset = 0, dataoff; int numnote; struct memelfnote *notes = NULL; - struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus *prstatus = NULL; /* NT_PRSTATUS */ struct elf_prpsinfo *psinfo = NULL; /* NT_PRPSINFO */ LIST_HEAD(thread_list); struct list_head *t; diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c index 92e6726..b1edd77e 100644 --- a/fs/proc/kcore.c +++ b/fs/proc/kcore.c @@ -90,7 +90,11 @@ static size_t get_kcore_size(int *nphdr, size_t *elf_buflen) (*nphdr + 2)*sizeof(struct elf_phdr) + 3 * ((sizeof(struct elf_note)) + roundup(sizeof(CORE_STR), 4)) + +#ifdef CONFIG_BINFMT_ELF_FDPIC + roundup(sizeof(struct elf_fdpic_prstatus), 4) + +#else roundup(sizeof(struct elf_prstatus), 4) + +#endif roundup(sizeof(struct elf_prpsinfo), 4) + roundup(arch_task_struct_size, 4); *elf_buflen = PAGE_ALIGN(*elf_buflen); @@ -318,7 +322,11 @@ static char *storenote(struct memelfnote *men, char *bufp) */ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ +#else struct elf_prstatus prstatus; /* NT_PRSTATUS */ +#endif struct elf_prpsinfo prpsinfo; /* NT_PRPSINFO */ struct elf_phdr *nhdr, *phdr; struct elfhdr *elf; @@ -387,10 +395,18 @@ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) /* set up the process status */ notes[0].name = CORE_STR; notes[0].type = NT_PRSTATUS; +#ifdef CONFIG_BINFMT_ELF_FDPIC + notes[0].datasz = sizeof(struct elf_fdpic_prstatus); +#else notes[0].datasz = sizeof(struct elf_prstatus); +#endif notes[0].data = &prstatus; +#ifdef CONFIG_BINFMT_ELF_FDPIC + memset(&prstatus, 0, sizeof(struct elf_fdpic_prstatus)); +#else memset(&prstatus, 0, sizeof(struct elf_prstatus)); +#endif nhdr->p_filesz = notesize(¬es[0]); bufp = storenote(¬es[0], bufp); diff --git a/include/linux/kexec.h b/include/linux/kexec.h index d140b1e..d9196cc 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -63,7 +63,11 @@ #define KEXEC_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4) #define KEXEC_CORE_NOTE_NAME "CORE" #define KEXEC_CORE_NOTE_NAME_BYTES ALIGN(sizeof(KEXEC_CORE_NOTE_NAME), 4) +#ifdef CONFIG_BINFMT_ELF_FDPIC +#define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_fdpic_prstatus), 4) +#else #define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_prstatus), 4) +#endif /* * The per-cpu notes area is a list of notes terminated by a "NULL" * note header. For kdump, the code in vmcore.c runs in the context diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h index 569737c..697c52d 100644 --- a/include/uapi/linux/elfcore.h +++ b/include/uapi/linux/elfcore.h @@ -60,7 +60,40 @@ struct elf_prstatus long pr_instr; /* Current instruction */ #endif elf_gregset_t pr_reg; /* GP registers */ -#ifdef CONFIG_BINFMT_ELF_FDPIC + int pr_fpvalid; /* True if math co-processor being used. */ +}; + +/* Architectures that set CONFIG_BINFMT_ELF_FDPIC use this instead of + * "struct elf_prstatus". + */ +struct elf_fdpic_prstatus +{ +#if 0 + long pr_flags; /* XXX Process flags */ + short pr_why; /* XXX Reason for process halt */ + short pr_what; /* XXX More detailed reason */ +#endif + struct elf_siginfo pr_info; /* Info associated with signal */ + short pr_cursig; /* Current signal */ + unsigned long pr_sigpend; /* Set of pending signals */ + unsigned long pr_sighold; /* Set of held signals */ +#if 0 + struct sigaltstack pr_altstack; /* Alternate stack info */ + struct sigaction pr_action; /* Signal action for current sig */ +#endif + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct timeval pr_utime; /* User time */ + struct timeval pr_stime; /* System time */ + struct timeval pr_cutime; /* Cumulative user time */ + struct timeval pr_cstime; /* Cumulative system time */ +#if 0 + long pr_instr; /* Current instruction */ +#endif + elf_gregset_t pr_reg; /* GP registers */ + /* When using FDPIC, the loadmap addresses need to be communicated * to GDB in order for GDB to do the necessary relocations. The * fields (below) used to communicate this information are placed @@ -69,7 +102,7 @@ struct elf_prstatus */ unsigned long pr_exec_fdpic_loadmap; unsigned long pr_interp_fdpic_loadmap; -#endif + int pr_fpvalid; /* True if math co-processor being used. */ }; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 11b64a6..9cb496b 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -977,7 +977,11 @@ static void final_note(u32 *buf) void crash_save_cpu(struct pt_regs *regs, int cpu) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; +#else struct elf_prstatus prstatus; +#endif u32 *buf; if ((cpu < 0) || (cpu >= nr_cpu_ids)) -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 06/14] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c 2015-11-10 1:30 ` Palmer Dabbelt ` (15 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (26 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This doesn't make any sense to expose to userspace, so it's been moved to the one user. This was introduced by commit 95f19f658ce1 ("epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled"). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/eventpoll.c | 13 +++++++++++++ include/uapi/linux/eventpoll.h | 12 ------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 1e009ca..aadee3d 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1812,6 +1812,19 @@ SYSCALL_DEFINE1(epoll_create, int, size) return sys_epoll_create1(0); } +#ifdef CONFIG_PM_SLEEP +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) + epev->events &= ~EPOLLWAKEUP; +} +#else +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + epev->events &= ~EPOLLWAKEUP; +} +#endif + /* * The following function implements the controller interface for * the eventpoll file that enables the insertion/removal/change of diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2..7850373 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,16 +61,4 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; -#ifdef CONFIG_PM_SLEEP -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) - epev->events &= ~EPOLLWAKEUP; -} -#else -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - epev->events &= ~EPOLLWAKEUP; -} -#endif #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 06/14] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c 2015-11-10 1:30 ` Palmer Dabbelt ` (16 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 06/14] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (25 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This doesn't make any sense to expose to userspace, so it's been moved to the one user. This was introduced by commit 95f19f658ce1 ("epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled"). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/eventpoll.c | 13 +++++++++++++ include/uapi/linux/eventpoll.h | 12 ------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 1e009ca..aadee3d 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1812,6 +1812,19 @@ SYSCALL_DEFINE1(epoll_create, int, size) return sys_epoll_create1(0); } +#ifdef CONFIG_PM_SLEEP +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) + epev->events &= ~EPOLLWAKEUP; +} +#else +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + epev->events &= ~EPOLLWAKEUP; +} +#endif + /* * The following function implements the controller interface for * the eventpoll file that enables the insertion/removal/change of diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2..7850373 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,16 +61,4 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; -#ifdef CONFIG_PM_SLEEP -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) - epev->events &= ~EPOLLWAKEUP; -} -#else -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - epev->events &= ~EPOLLWAKEUP; -} -#endif #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 06/14] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c 2015-11-10 1:30 ` Palmer Dabbelt ` (17 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt 2023-02-10 14:45 ` Thomas Huth 2015-11-10 1:31 ` [PATCH 07/14] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt ` (24 subsequent siblings) 43 siblings, 2 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This doesn't make any sense to expose to userspace, so it's been moved to the one user. This was introduced by commit 95f19f658ce1 ("epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled"). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/eventpoll.c | 13 +++++++++++++ include/uapi/linux/eventpoll.h | 12 ------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 1e009ca..aadee3d 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1812,6 +1812,19 @@ SYSCALL_DEFINE1(epoll_create, int, size) return sys_epoll_create1(0); } +#ifdef CONFIG_PM_SLEEP +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) + epev->events &= ~EPOLLWAKEUP; +} +#else +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + epev->events &= ~EPOLLWAKEUP; +} +#endif + /* * The following function implements the controller interface for * the eventpoll file that enables the insertion/removal/change of diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2..7850373 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,16 +61,4 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; -#ifdef CONFIG_PM_SLEEP -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) - epev->events &= ~EPOLLWAKEUP; -} -#else -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - epev->events &= ~EPOLLWAKEUP; -} -#endif #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 06/14] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2023-02-10 14:45 ` Thomas Huth 1 sibling, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This doesn't make any sense to expose to userspace, so it's been moved to the one user. This was introduced by commit 95f19f658ce1 ("epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled"). Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/eventpoll.c | 13 +++++++++++++ include/uapi/linux/eventpoll.h | 12 ------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 1e009ca..aadee3d 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1812,6 +1812,19 @@ SYSCALL_DEFINE1(epoll_create, int, size) return sys_epoll_create1(0); } +#ifdef CONFIG_PM_SLEEP +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) + epev->events &= ~EPOLLWAKEUP; +} +#else +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + epev->events &= ~EPOLLWAKEUP; +} +#endif + /* * The following function implements the controller interface for * the eventpoll file that enables the insertion/removal/change of diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2..7850373 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,16 +61,4 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; -#ifdef CONFIG_PM_SLEEP -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) - epev->events &= ~EPOLLWAKEUP; -} -#else -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - epev->events &= ~EPOLLWAKEUP; -} -#endif #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* Re: [PATCH 06/14] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt @ 2023-02-10 14:45 ` Thomas Huth 1 sibling, 0 replies; 327+ messages in thread From: Thomas Huth @ 2023-02-10 14:45 UTC (permalink / raw) To: Palmer Dabbelt, viro, linux-api, linux-kernel Cc: ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-arch, linux-fsdevel, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, arnd, dhowells, peterz, Jens Axboe On 10/11/2015 02.31, Palmer Dabbelt wrote: > This doesn't make any sense to expose to userspace, so it's been moved > to the one user. This was introduced by commit 95f19f658ce1 ("epoll: > drop EPOLLWAKEUP if PM_SLEEP is disabled"). > > Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> > Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> > Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> > --- > fs/eventpoll.c | 13 +++++++++++++ > include/uapi/linux/eventpoll.h | 12 ------------ > 2 files changed, 13 insertions(+), 12 deletions(-) > > diff --git a/fs/eventpoll.c b/fs/eventpoll.c > index 1e009ca..aadee3d 100644 > --- a/fs/eventpoll.c > +++ b/fs/eventpoll.c > @@ -1812,6 +1812,19 @@ SYSCALL_DEFINE1(epoll_create, int, size) > return sys_epoll_create1(0); > } > > +#ifdef CONFIG_PM_SLEEP > +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) > +{ > + if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) > + epev->events &= ~EPOLLWAKEUP; > +} > +#else > +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) > +{ > + epev->events &= ~EPOLLWAKEUP; > +} > +#endif > + > /* > * The following function implements the controller interface for > * the eventpoll file that enables the insertion/removal/change of > diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h > index bc81fb2..7850373 100644 > --- a/include/uapi/linux/eventpoll.h > +++ b/include/uapi/linux/eventpoll.h > @@ -61,16 +61,4 @@ struct epoll_event { > __u64 data; > } EPOLL_PACKED; > > -#ifdef CONFIG_PM_SLEEP > -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) > -{ > - if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) > - epev->events &= ~EPOLLWAKEUP; > -} > -#else > -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) > -{ > - epev->events &= ~EPOLLWAKEUP; > -} > -#endif > #endif /* _UAPI_LINUX_EVENTPOLL_H */ Hi! Looks like this patch has never been merged? ... I just came across this "#ifdef CONFIG_..." in the uapi directory, and it also seems wrong to me to check CONFIG_* switches here, so could somebody maybe pick this patch up now and merge it? Thanks, Thomas ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH 07/14] Make FB_BACKLIGHT_{LEVELS,MAX} always visible 2015-11-10 1:30 ` Palmer Dabbelt ` (18 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (23 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt Nothing else in the kernel defines this, and this header is visible to userspace. Rather than hiding it in an #ifdef, I think it's sane to just make this visible to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/fb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h index fb795c3..8926f13 100644 --- a/include/uapi/linux/fb.h +++ b/include/uapi/linux/fb.h @@ -392,11 +392,8 @@ struct fb_cursor { struct fb_image image; /* Cursor image */ }; -#ifdef CONFIG_FB_BACKLIGHT /* Settings for the generic backlight code */ #define FB_BACKLIGHT_LEVELS 128 #define FB_BACKLIGHT_MAX 0xFF -#endif - #endif /* _UAPI_LINUX_FB_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 07/14] Make FB_BACKLIGHT_{LEVELS,MAX} always visible 2015-11-10 1:30 ` Palmer Dabbelt ` (19 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 07/14] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (22 subsequent siblings) 43 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt Nothing else in the kernel defines this, and this header is visible to userspace. Rather than hiding it in an #ifdef, I think it's sane to just make this visible to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/fb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h index fb795c3..8926f13 100644 --- a/include/uapi/linux/fb.h +++ b/include/uapi/linux/fb.h @@ -392,11 +392,8 @@ struct fb_cursor { struct fb_image image; /* Cursor image */ }; -#ifdef CONFIG_FB_BACKLIGHT /* Settings for the generic backlight code */ #define FB_BACKLIGHT_LEVELS 128 #define FB_BACKLIGHT_MAX 0xFF -#endif - #endif /* _UAPI_LINUX_FB_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 07/14] Make FB_BACKLIGHT_{LEVELS,MAX} always visible 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt Nothing else in the kernel defines this, and this header is visible to userspace. Rather than hiding it in an #ifdef, I think it's sane to just make this visible to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/fb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h index fb795c3..8926f13 100644 --- a/include/uapi/linux/fb.h +++ b/include/uapi/linux/fb.h @@ -392,11 +392,8 @@ struct fb_cursor { struct fb_image image; /* Cursor image */ }; -#ifdef CONFIG_FB_BACKLIGHT /* Settings for the generic backlight code */ #define FB_BACKLIGHT_LEVELS 128 #define FB_BACKLIGHT_MAX 0xFF -#endif - #endif /* _UAPI_LINUX_FB_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 07/14] Make FB_BACKLIGHT_{LEVELS,MAX} always visible 2015-11-10 1:30 ` Palmer Dabbelt ` (20 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 08/14] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt ` (21 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt Nothing else in the kernel defines this, and this header is visible to userspace. Rather than hiding it in an #ifdef, I think it's sane to just make this visible to userspace. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/linux/fb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h index fb795c3..8926f13 100644 --- a/include/uapi/linux/fb.h +++ b/include/uapi/linux/fb.h @@ -392,11 +392,8 @@ struct fb_cursor { struct fb_image image; /* Cursor image */ }; -#ifdef CONFIG_FB_BACKLIGHT /* Settings for the generic backlight code */ #define FB_BACKLIGHT_LEVELS 128 #define FB_BACKLIGHT_MAX 0xFF -#endif - #endif /* _UAPI_LINUX_FB_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/14] Move MAX_SHARED_LIBS to fs/binfmt_flat.c 2015-11-10 1:30 ` Palmer Dabbelt ` (21 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (20 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_flat.c | 6 ++++++ include/uapi/linux/flat.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index f723cd3..e89fb43 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -72,6 +72,12 @@ #define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */ #define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */ +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + struct lib_info { struct { unsigned long start_code; /* Start of text segment */ diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6ba..1b177c7 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,12 +13,6 @@ #define FLAT_VERSION 0x00000004L -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define MAX_SHARED_LIBS (4) -#else -#define MAX_SHARED_LIBS (1) -#endif - /* * To make everything easier to port and manage cross platform * development, all fields are in network byte order. -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/14] Move MAX_SHARED_LIBS to fs/binfmt_flat.c 2015-11-10 1:30 ` Palmer Dabbelt ` (22 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 08/14] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (19 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_flat.c | 6 ++++++ include/uapi/linux/flat.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index f723cd3..e89fb43 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -72,6 +72,12 @@ #define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */ #define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */ +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + struct lib_info { struct { unsigned long start_code; /* Start of text segment */ diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6ba..1b177c7 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,12 +13,6 @@ #define FLAT_VERSION 0x00000004L -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define MAX_SHARED_LIBS (4) -#else -#define MAX_SHARED_LIBS (1) -#endif - /* * To make everything easier to port and manage cross platform * development, all fields are in network byte order. -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/14] Move MAX_SHARED_LIBS to fs/binfmt_flat.c 2015-11-10 1:30 ` Palmer Dabbelt ` (23 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 09/14] Move bp_type_idx to include/linux/hw_breakpoint.h Palmer Dabbelt ` (18 subsequent siblings) 43 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_flat.c | 6 ++++++ include/uapi/linux/flat.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index f723cd3..e89fb43 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -72,6 +72,12 @@ #define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */ #define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */ +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + struct lib_info { struct { unsigned long start_code; /* Start of text segment */ diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6ba..1b177c7 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,12 +13,6 @@ #define FLAT_VERSION 0x00000004L -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define MAX_SHARED_LIBS (4) -#else -#define MAX_SHARED_LIBS (1) -#endif - /* * To make everything easier to port and manage cross platform * development, all fields are in network byte order. -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/14] Move MAX_SHARED_LIBS to fs/binfmt_flat.c 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- fs/binfmt_flat.c | 6 ++++++ include/uapi/linux/flat.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index f723cd3..e89fb43 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -72,6 +72,12 @@ #define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */ #define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */ +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + struct lib_info { struct { unsigned long start_code; /* Start of text segment */ diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6ba..1b177c7 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,12 +13,6 @@ #define FLAT_VERSION 0x00000004L -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define MAX_SHARED_LIBS (4) -#else -#define MAX_SHARED_LIBS (1) -#endif - /* * To make everything easier to port and manage cross platform * development, all fields are in network byte order. -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 09/14] Move bp_type_idx to include/linux/hw_breakpoint.h 2015-11-10 1:30 ` Palmer Dabbelt ` (24 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (17 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This has a "#ifdef CONFIG_*" that used to be exposed to userspace. The names in here are so generic that I don't think it's a good idea to expose them to userspace (or even the rest of the kernel). There are multiple in-kernel users, so it's been moved to a kernel header file. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/linux/hw_breakpoint.h | 10 ++++++++++ include/uapi/linux/hw_breakpoint.h | 10 ---------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/linux/hw_breakpoint.h b/include/linux/hw_breakpoint.h index 0464c85..dfe0376 100644 --- a/include/linux/hw_breakpoint.h +++ b/include/linux/hw_breakpoint.h @@ -6,6 +6,16 @@ #ifdef CONFIG_HAVE_HW_BREAKPOINT +enum bp_type_idx { + TYPE_INST = 0, +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + extern int __init init_hw_breakpoint(void); static inline void hw_breakpoint_init(struct perf_event_attr *attr) diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h index b04000a..7a6a5a7 100644 --- a/include/uapi/linux/hw_breakpoint.h +++ b/include/uapi/linux/hw_breakpoint.h @@ -17,14 +17,4 @@ enum { HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, }; -enum bp_type_idx { - TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS - TYPE_DATA = 0, -#else - TYPE_DATA = 1, -#endif - TYPE_MAX -}; - #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 09/14] Move bp_type_idx to include/linux/hw_breakpoint.h 2015-11-10 1:30 ` Palmer Dabbelt ` (25 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 09/14] Move bp_type_idx to include/linux/hw_breakpoint.h Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (16 subsequent siblings) 43 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This has a "#ifdef CONFIG_*" that used to be exposed to userspace. The names in here are so generic that I don't think it's a good idea to expose them to userspace (or even the rest of the kernel). There are multiple in-kernel users, so it's been moved to a kernel header file. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/linux/hw_breakpoint.h | 10 ++++++++++ include/uapi/linux/hw_breakpoint.h | 10 ---------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/linux/hw_breakpoint.h b/include/linux/hw_breakpoint.h index 0464c85..dfe0376 100644 --- a/include/linux/hw_breakpoint.h +++ b/include/linux/hw_breakpoint.h @@ -6,6 +6,16 @@ #ifdef CONFIG_HAVE_HW_BREAKPOINT +enum bp_type_idx { + TYPE_INST = 0, +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + extern int __init init_hw_breakpoint(void); static inline void hw_breakpoint_init(struct perf_event_attr *attr) diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h index b04000a..7a6a5a7 100644 --- a/include/uapi/linux/hw_breakpoint.h +++ b/include/uapi/linux/hw_breakpoint.h @@ -17,14 +17,4 @@ enum { HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, }; -enum bp_type_idx { - TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS - TYPE_DATA = 0, -#else - TYPE_DATA = 1, -#endif - TYPE_MAX -}; - #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 09/14] Move bp_type_idx to include/linux/hw_breakpoint.h 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This has a "#ifdef CONFIG_*" that used to be exposed to userspace. The names in here are so generic that I don't think it's a good idea to expose them to userspace (or even the rest of the kernel). There are multiple in-kernel users, so it's been moved to a kernel header file. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/linux/hw_breakpoint.h | 10 ++++++++++ include/uapi/linux/hw_breakpoint.h | 10 ---------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/linux/hw_breakpoint.h b/include/linux/hw_breakpoint.h index 0464c85..dfe0376 100644 --- a/include/linux/hw_breakpoint.h +++ b/include/linux/hw_breakpoint.h @@ -6,6 +6,16 @@ #ifdef CONFIG_HAVE_HW_BREAKPOINT +enum bp_type_idx { + TYPE_INST = 0, +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + extern int __init init_hw_breakpoint(void); static inline void hw_breakpoint_init(struct perf_event_attr *attr) diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h index b04000a..7a6a5a7 100644 --- a/include/uapi/linux/hw_breakpoint.h +++ b/include/uapi/linux/hw_breakpoint.h @@ -17,14 +17,4 @@ enum { HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, }; -enum bp_type_idx { - TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS - TYPE_DATA = 0, -#else - TYPE_DATA = 1, -#endif - TYPE_MAX -}; - #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 09/14] Move bp_type_idx to include/linux/hw_breakpoint.h 2015-11-10 1:30 ` Palmer Dabbelt ` (26 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 10/14] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt ` (15 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This has a "#ifdef CONFIG_*" that used to be exposed to userspace. The names in here are so generic that I don't think it's a good idea to expose them to userspace (or even the rest of the kernel). There are multiple in-kernel users, so it's been moved to a kernel header file. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/linux/hw_breakpoint.h | 10 ++++++++++ include/uapi/linux/hw_breakpoint.h | 10 ---------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/linux/hw_breakpoint.h b/include/linux/hw_breakpoint.h index 0464c85..dfe0376 100644 --- a/include/linux/hw_breakpoint.h +++ b/include/linux/hw_breakpoint.h @@ -6,6 +6,16 @@ #ifdef CONFIG_HAVE_HW_BREAKPOINT +enum bp_type_idx { + TYPE_INST = 0, +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + extern int __init init_hw_breakpoint(void); static inline void hw_breakpoint_init(struct perf_event_attr *attr) diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h index b04000a..7a6a5a7 100644 --- a/include/uapi/linux/hw_breakpoint.h +++ b/include/uapi/linux/hw_breakpoint.h @@ -17,14 +17,4 @@ enum { HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, }; -enum bp_type_idx { - TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS - TYPE_DATA = 0, -#else - TYPE_DATA = 1, -#endif - TYPE_MAX -}; - #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 10/14] Move USE_WCACHING to drivers/block/pktcdvd.c 2015-11-10 1:30 ` Palmer Dabbelt ` (27 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (14 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I don't think this was ever intended to be exposed to userspace, but it did require an "#ifdef CONFIG_*". Since the name is kind of generic and was only used in one place, I've moved the definition to the one user. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/block/pktcdvd.c | 11 +++++++++++ include/uapi/linux/pktcdvd.h | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 2f477d4..55f0df3 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -90,6 +90,17 @@ do { \ #define MAX_SPEED 0xffff +/* + * use drive write caching -- we need deferred error handling to be + * able to successfully recover with this option (drive will return good + * status as soon as the cdb is validated). + */ +#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) +#define USE_WCACHING 1 +#else +#define USE_WCACHING 0 +#endif + static DEFINE_MUTEX(pktcdvd_mutex); static struct pktcdvd_device *pkt_devs[MAX_WRITERS]; static struct proc_dir_entry *pkt_proc; diff --git a/include/uapi/linux/pktcdvd.h b/include/uapi/linux/pktcdvd.h index 2640b9d..05c2bee 100644 --- a/include/uapi/linux/pktcdvd.h +++ b/include/uapi/linux/pktcdvd.h @@ -29,17 +29,6 @@ #define PACKET_WAIT_TIME (HZ * 5 / 1000) /* - * use drive write caching -- we need deferred error handling to be - * able to successfully recover with this option (drive will return good - * status as soon as the cdb is validated). - */ -#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) -#define USE_WCACHING 1 -#else -#define USE_WCACHING 0 -#endif - -/* * No user-servicable parts beyond this point -> */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 10/14] Move USE_WCACHING to drivers/block/pktcdvd.c 2015-11-10 1:30 ` Palmer Dabbelt ` (28 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 10/14] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (13 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I don't think this was ever intended to be exposed to userspace, but it did require an "#ifdef CONFIG_*". Since the name is kind of generic and was only used in one place, I've moved the definition to the one user. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/block/pktcdvd.c | 11 +++++++++++ include/uapi/linux/pktcdvd.h | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 2f477d4..55f0df3 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -90,6 +90,17 @@ do { \ #define MAX_SPEED 0xffff +/* + * use drive write caching -- we need deferred error handling to be + * able to successfully recover with this option (drive will return good + * status as soon as the cdb is validated). + */ +#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) +#define USE_WCACHING 1 +#else +#define USE_WCACHING 0 +#endif + static DEFINE_MUTEX(pktcdvd_mutex); static struct pktcdvd_device *pkt_devs[MAX_WRITERS]; static struct proc_dir_entry *pkt_proc; diff --git a/include/uapi/linux/pktcdvd.h b/include/uapi/linux/pktcdvd.h index 2640b9d..05c2bee 100644 --- a/include/uapi/linux/pktcdvd.h +++ b/include/uapi/linux/pktcdvd.h @@ -29,17 +29,6 @@ #define PACKET_WAIT_TIME (HZ * 5 / 1000) /* - * use drive write caching -- we need deferred error handling to be - * able to successfully recover with this option (drive will return good - * status as soon as the cdb is validated). - */ -#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) -#define USE_WCACHING 1 -#else -#define USE_WCACHING 0 -#endif - -/* * No user-servicable parts beyond this point -> */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 10/14] Move USE_WCACHING to drivers/block/pktcdvd.c 2015-11-10 1:30 ` Palmer Dabbelt ` (29 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 11/14] Always define MAX_RAW_MINORS as 2**20 in userspace Palmer Dabbelt ` (12 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I don't think this was ever intended to be exposed to userspace, but it did require an "#ifdef CONFIG_*". Since the name is kind of generic and was only used in one place, I've moved the definition to the one user. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/block/pktcdvd.c | 11 +++++++++++ include/uapi/linux/pktcdvd.h | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 2f477d4..55f0df3 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -90,6 +90,17 @@ do { \ #define MAX_SPEED 0xffff +/* + * use drive write caching -- we need deferred error handling to be + * able to successfully recover with this option (drive will return good + * status as soon as the cdb is validated). + */ +#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) +#define USE_WCACHING 1 +#else +#define USE_WCACHING 0 +#endif + static DEFINE_MUTEX(pktcdvd_mutex); static struct pktcdvd_device *pkt_devs[MAX_WRITERS]; static struct proc_dir_entry *pkt_proc; diff --git a/include/uapi/linux/pktcdvd.h b/include/uapi/linux/pktcdvd.h index 2640b9d..05c2bee 100644 --- a/include/uapi/linux/pktcdvd.h +++ b/include/uapi/linux/pktcdvd.h @@ -29,17 +29,6 @@ #define PACKET_WAIT_TIME (HZ * 5 / 1000) /* - * use drive write caching -- we need deferred error handling to be - * able to successfully recover with this option (drive will return good - * status as soon as the cdb is validated). - */ -#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) -#define USE_WCACHING 1 -#else -#define USE_WCACHING 0 -#endif - -/* * No user-servicable parts beyond this point -> */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 11/14] Always define MAX_RAW_MINORS as 2**20 in userspace 2015-11-10 1:30 ` Palmer Dabbelt ` (30 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (11 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt While I don't think this was ever meant to be exposed to userspace, if anyone is using it then this will at least provide a correct (if unlikely) definition. MAX_RAW_MINORS used to be used in the kernel, where it's been replaced with CONFIG_MAX_RAW_MINORS. Note that there's a checkpatch.pl warning about a split config string here, but I've left that alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/char/raw.c | 7 ++++--- include/uapi/linux/raw.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 60316fb..2a69117 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -36,7 +36,7 @@ static struct raw_device_data *raw_devices; static DEFINE_MUTEX(raw_mutex); static const struct file_operations raw_ctl_fops; /* forward declaration */ -static int max_raw_minors = MAX_RAW_MINORS; +static int max_raw_minors = CONFIG_MAX_RAW_DEVS; module_param(max_raw_minors, int, 0); MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); @@ -317,8 +317,9 @@ static int __init raw_init(void) if (max_raw_minors < 1 || max_raw_minors > 65536) { printk(KERN_WARNING "raw: invalid max_raw_minors (must be" - " between 1 and 65536), using %d\n", MAX_RAW_MINORS); - max_raw_minors = MAX_RAW_MINORS; + " between 1 and 65536), using %d\n", + max_raw_minors); + max_raw_minors = 65536; } raw_devices = vzalloc(sizeof(struct raw_device_data) * max_raw_minors); diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e..f3d009b 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,6 @@ struct raw_config_request __u64 block_minor; }; -#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#define MAX_RAW_MINORS (1 << 20) #endif /* __LINUX_RAW_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 11/14] Always define MAX_RAW_MINORS as 2**20 in userspace 2015-11-10 1:30 ` Palmer Dabbelt ` (31 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 11/14] Always define MAX_RAW_MINORS as 2**20 in userspace Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (10 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt While I don't think this was ever meant to be exposed to userspace, if anyone is using it then this will at least provide a correct (if unlikely) definition. MAX_RAW_MINORS used to be used in the kernel, where it's been replaced with CONFIG_MAX_RAW_MINORS. Note that there's a checkpatch.pl warning about a split config string here, but I've left that alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/char/raw.c | 7 ++++--- include/uapi/linux/raw.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 60316fb..2a69117 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -36,7 +36,7 @@ static struct raw_device_data *raw_devices; static DEFINE_MUTEX(raw_mutex); static const struct file_operations raw_ctl_fops; /* forward declaration */ -static int max_raw_minors = MAX_RAW_MINORS; +static int max_raw_minors = CONFIG_MAX_RAW_DEVS; module_param(max_raw_minors, int, 0); MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); @@ -317,8 +317,9 @@ static int __init raw_init(void) if (max_raw_minors < 1 || max_raw_minors > 65536) { printk(KERN_WARNING "raw: invalid max_raw_minors (must be" - " between 1 and 65536), using %d\n", MAX_RAW_MINORS); - max_raw_minors = MAX_RAW_MINORS; + " between 1 and 65536), using %d\n", + max_raw_minors); + max_raw_minors = 65536; } raw_devices = vzalloc(sizeof(struct raw_device_data) * max_raw_minors); diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e..f3d009b 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,6 @@ struct raw_config_request __u64 block_minor; }; -#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#define MAX_RAW_MINORS (1 << 20) #endif /* __LINUX_RAW_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 11/14] Always define MAX_RAW_MINORS as 2**20 in userspace 2015-11-10 1:30 ` Palmer Dabbelt ` (32 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt [not found] ` <1447119071-19392-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (9 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt While I don't think this was ever meant to be exposed to userspace, if anyone is using it then this will at least provide a correct (if unlikely) definition. MAX_RAW_MINORS used to be used in the kernel, where it's been replaced with CONFIG_MAX_RAW_MINORS. Note that there's a checkpatch.pl warning about a split config string here, but I've left that alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/char/raw.c | 7 ++++--- include/uapi/linux/raw.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 60316fb..2a69117 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -36,7 +36,7 @@ static struct raw_device_data *raw_devices; static DEFINE_MUTEX(raw_mutex); static const struct file_operations raw_ctl_fops; /* forward declaration */ -static int max_raw_minors = MAX_RAW_MINORS; +static int max_raw_minors = CONFIG_MAX_RAW_DEVS; module_param(max_raw_minors, int, 0); MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); @@ -317,8 +317,9 @@ static int __init raw_init(void) if (max_raw_minors < 1 || max_raw_minors > 65536) { printk(KERN_WARNING "raw: invalid max_raw_minors (must be" - " between 1 and 65536), using %d\n", MAX_RAW_MINORS); - max_raw_minors = MAX_RAW_MINORS; + " between 1 and 65536), using %d\n", + max_raw_minors); + max_raw_minors = 65536; } raw_devices = vzalloc(sizeof(struct raw_device_data) * max_raw_minors); diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e..f3d009b 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,6 @@ struct raw_config_request __u64 block_minor; }; -#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#define MAX_RAW_MINORS (1 << 20) #endif /* __LINUX_RAW_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
[parent not found: <1447119071-19392-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>]
* [PATCH 01/14] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h [not found] ` <1447119071-19392-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> @ 2015-11-10 1:30 ` Palmer Dabbelt 2015-11-10 1:30 ` [PATCH 02/14] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU Palmer Dabbelt ` (12 subsequent siblings) 13 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:30 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, peterz-wEGCiKHe2LqWVfeAwA7xHQ Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt When working on the RISC-V port I noticed that F_SETLK64 was being defined on our 64-bit platform, despite our port being so new that we've only ever had the 64-bit file ops. Since there's not compat layer for these, this causes fcntl to bail out. It turns out that one of the ways in with F_SETLK64 was being defined (there's some more in glibc, but that's a whole different story... :)) is the result of CONFIG_64BIT showing up in this user-visible header. <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it with a __BITS_PER_LONG check. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org> --- include/uapi/asm-generic/fcntl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index e063eff..14a5c82 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h @@ -1,6 +1,7 @@ #ifndef _ASM_GENERIC_FCNTL_H #define _ASM_GENERIC_FCNTL_H +#include <asm/bitsperlong.h> #include <linux/types.h> /* @@ -115,7 +116,7 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#ifndef CONFIG_64BIT +#if (__BITS_PER_LONG == 32) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 02/14] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU [not found] ` <1447119071-19392-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> 2015-11-10 1:30 ` [PATCH 01/14] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt @ 2015-11-10 1:30 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 03/14] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt ` (11 subsequent siblings) 13 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:30 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, peterz-wEGCiKHe2LqWVfeAwA7xHQ Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt I think this change actually doesn't do anything: __NR_fork was still being defined either way, and on my machine fork() in <unistd.h> comes from libc. This just moves to the standard mechanism for defining syscalls that aren't implemented instead, which has the side-effect of no longer having an #ifdef CONFIG_* in a user-visible header. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/asm-generic/unistd.h | 4 ---- kernel/sys_ni.c | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index 1324b02..9a95912 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -871,11 +871,7 @@ __SYSCALL(__NR_uselib, sys_uselib) __SYSCALL(__NR__sysctl, sys_sysctl) #define __NR_fork 1079 -#ifdef CONFIG_MMU __SYSCALL(__NR_fork, sys_fork) -#else -__SYSCALL(__NR_fork, sys_ni_syscall) -#endif /* CONFIG_MMU */ #undef __NR_syscalls #define __NR_syscalls (__NR_fork+1) diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index 0623787..e251b30 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -174,6 +174,7 @@ cond_syscall(sys_setfsuid); cond_syscall(sys_setfsgid); cond_syscall(sys_capget); cond_syscall(sys_capset); +cond_syscall(sys_fork); /* arch-specific weak syscall entries */ cond_syscall(sys_pciconfig_read); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 03/14] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c [not found] ` <1447119071-19392-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> 2015-11-10 1:30 ` [PATCH 01/14] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt 2015-11-10 1:30 ` [PATCH 02/14] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 04/14] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt ` (10 subsequent siblings) 13 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, peterz-wEGCiKHe2LqWVfeAwA7xHQ Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt This used to be behind an #ifdef COMPAT_COMPAT, so most of userspace wouldn't have seen the definition before. Unfortunately this header file became visible to userspace, so the definition has instead been moved to net/atm/svc.c (the only user). Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/linux/atmdev.h | 4 ---- net/atm/svc.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/atmdev.h b/include/uapi/linux/atmdev.h index 93e0ec0..3dcec70 100644 --- a/include/uapi/linux/atmdev.h +++ b/include/uapi/linux/atmdev.h @@ -100,10 +100,6 @@ struct atm_dev_stats { /* use backend to make new if */ #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) /* add party to p2mp call */ -#ifdef CONFIG_COMPAT -/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ -#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) -#endif #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) /* drop party from p2mp call */ diff --git a/net/atm/svc.c b/net/atm/svc.c index 3fa0a9e..9e2e6ef 100644 --- a/net/atm/svc.c +++ b/net/atm/svc.c @@ -27,6 +27,11 @@ #include "signaling.h" #include "addr.h" +#ifdef CONFIG_COMPAT +/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ +#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4, struct compat_atm_iobuf) +#endif + static int svc_create(struct net *net, struct socket *sock, int protocol, int kern); -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 04/14] Always expose MAP_UNINITIALIZED to userspace [not found] ` <1447119071-19392-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (2 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 03/14] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 05/14] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" Palmer Dabbelt ` (9 subsequent siblings) 13 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, peterz-wEGCiKHe2LqWVfeAwA7xHQ Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt This used to be hidden behind CONFIG_MMAP_ALLOW_UNINITIALIZED, so userspace wouldn't actually ever see it be non-zero. While I had originally hoped to avoid hiding it, it looks like this conflicts with MAP_HUGE_SHIFT so I think it's safer to just keep this 0. Architectures that want to define this can still override it. In fact, the Xtensa port already overrides it in a very similar manner to the previously broken one (but due to lots of conflicting opinions on how to solve this correctly, I'm just taking the easy way out and letting their arch maintainers deal with it -- sorry). Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/asm-generic/mman-common.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index a74dd84..25ca92c 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -19,9 +19,7 @@ #define MAP_TYPE 0x0f /* Mask for type of mapping */ #define MAP_FIXED 0x10 /* Interpret addr exactly */ #define MAP_ANONYMOUS 0x20 /* don't use a file */ -#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED -# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */ -#else +#ifndef MAP_UNINITIALIZED # define MAP_UNINITIALIZED 0x0 /* Don't support this flag */ #endif -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 05/14] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" [not found] ` <1447119071-19392-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (3 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 04/14] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 06/14] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c Palmer Dabbelt ` (8 subsequent siblings) 13 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, peterz-wEGCiKHe2LqWVfeAwA7xHQ Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt This is a pretty big change that I haven't tested any, which worries me a lot. The general idea here is that "struct elf_prstatus" can be visible to userspace (from <linux/ptrace.h>) " Generic ptrace interface that exports the architecture specific regsets using the corresponding NT_* types (which are also used in the core dump). Please note that the NT_PRSTATUS note type in a core dump contains a full 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the other user_regset flavors, the user_regset layout and the ELF core dump note payload are exactly the same layout. " so it shouldn't have an "#ifdef CONFIG_" in there. This splits the structure into two different structures, one still named "struct elf_prstatus", and one for ELF FDPIC that is named "struct elf_fdpic_prstatus" -- the idea here is that most users are standard ELF, so that's the name that didn't change. I tried to fix all the users of "struct elf_prstatus" that should now be using "struct elf_fdpic_prstatus". The only testing I did here was to build a Blackfin defconfig with "struct elf_prstatus" not defined, and to build an x86 defconfig with "struct elf_fdpic_prstatus" not defined. Note that this fails checkpatch.pl with a complaint about wanting open braces on the same line as struct definitions. The existing struct definitions in this file have the brace a line afterwards, so I'm going to leave this alone. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- fs/binfmt_elf_fdpic.c | 6 +++--- fs/proc/kcore.c | 16 ++++++++++++++++ include/linux/kexec.h | 4 ++++ include/uapi/linux/elfcore.h | 37 +++++++++++++++++++++++++++++++++++-- kernel/kexec_core.c | 4 ++++ 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index d3634bf..587bf04 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c @@ -1323,7 +1323,7 @@ static inline void fill_note(struct memelfnote *note, const char *name, int type * fill up all the fields in prstatus from the given task struct, except * registers which need to be filled up separately. */ -static void fill_prstatus(struct elf_prstatus *prstatus, +static void fill_prstatus(struct elf_fdpic_prstatus *prstatus, struct task_struct *p, long signr) { prstatus->pr_info.si_signo = prstatus->pr_cursig = signr; @@ -1406,7 +1406,7 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p, struct elf_thread_status { struct list_head list; - struct elf_prstatus prstatus; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ elf_fpregset_t fpu; /* NT_PRFPREG */ struct task_struct *thread; #ifdef ELF_CORE_COPY_XFPREGS @@ -1539,7 +1539,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) loff_t offset = 0, dataoff; int numnote; struct memelfnote *notes = NULL; - struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ + struct elf_fdpic_prstatus *prstatus = NULL; /* NT_PRSTATUS */ struct elf_prpsinfo *psinfo = NULL; /* NT_PRPSINFO */ LIST_HEAD(thread_list); struct list_head *t; diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c index 92e6726..b1edd77e 100644 --- a/fs/proc/kcore.c +++ b/fs/proc/kcore.c @@ -90,7 +90,11 @@ static size_t get_kcore_size(int *nphdr, size_t *elf_buflen) (*nphdr + 2)*sizeof(struct elf_phdr) + 3 * ((sizeof(struct elf_note)) + roundup(sizeof(CORE_STR), 4)) + +#ifdef CONFIG_BINFMT_ELF_FDPIC + roundup(sizeof(struct elf_fdpic_prstatus), 4) + +#else roundup(sizeof(struct elf_prstatus), 4) + +#endif roundup(sizeof(struct elf_prpsinfo), 4) + roundup(arch_task_struct_size, 4); *elf_buflen = PAGE_ALIGN(*elf_buflen); @@ -318,7 +322,11 @@ static char *storenote(struct memelfnote *men, char *bufp) */ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; /* NT_PRSTATUS */ +#else struct elf_prstatus prstatus; /* NT_PRSTATUS */ +#endif struct elf_prpsinfo prpsinfo; /* NT_PRPSINFO */ struct elf_phdr *nhdr, *phdr; struct elfhdr *elf; @@ -387,10 +395,18 @@ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff) /* set up the process status */ notes[0].name = CORE_STR; notes[0].type = NT_PRSTATUS; +#ifdef CONFIG_BINFMT_ELF_FDPIC + notes[0].datasz = sizeof(struct elf_fdpic_prstatus); +#else notes[0].datasz = sizeof(struct elf_prstatus); +#endif notes[0].data = &prstatus; +#ifdef CONFIG_BINFMT_ELF_FDPIC + memset(&prstatus, 0, sizeof(struct elf_fdpic_prstatus)); +#else memset(&prstatus, 0, sizeof(struct elf_prstatus)); +#endif nhdr->p_filesz = notesize(¬es[0]); bufp = storenote(¬es[0], bufp); diff --git a/include/linux/kexec.h b/include/linux/kexec.h index d140b1e..d9196cc 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -63,7 +63,11 @@ #define KEXEC_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4) #define KEXEC_CORE_NOTE_NAME "CORE" #define KEXEC_CORE_NOTE_NAME_BYTES ALIGN(sizeof(KEXEC_CORE_NOTE_NAME), 4) +#ifdef CONFIG_BINFMT_ELF_FDPIC +#define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_fdpic_prstatus), 4) +#else #define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_prstatus), 4) +#endif /* * The per-cpu notes area is a list of notes terminated by a "NULL" * note header. For kdump, the code in vmcore.c runs in the context diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h index 569737c..697c52d 100644 --- a/include/uapi/linux/elfcore.h +++ b/include/uapi/linux/elfcore.h @@ -60,7 +60,40 @@ struct elf_prstatus long pr_instr; /* Current instruction */ #endif elf_gregset_t pr_reg; /* GP registers */ -#ifdef CONFIG_BINFMT_ELF_FDPIC + int pr_fpvalid; /* True if math co-processor being used. */ +}; + +/* Architectures that set CONFIG_BINFMT_ELF_FDPIC use this instead of + * "struct elf_prstatus". + */ +struct elf_fdpic_prstatus +{ +#if 0 + long pr_flags; /* XXX Process flags */ + short pr_why; /* XXX Reason for process halt */ + short pr_what; /* XXX More detailed reason */ +#endif + struct elf_siginfo pr_info; /* Info associated with signal */ + short pr_cursig; /* Current signal */ + unsigned long pr_sigpend; /* Set of pending signals */ + unsigned long pr_sighold; /* Set of held signals */ +#if 0 + struct sigaltstack pr_altstack; /* Alternate stack info */ + struct sigaction pr_action; /* Signal action for current sig */ +#endif + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct timeval pr_utime; /* User time */ + struct timeval pr_stime; /* System time */ + struct timeval pr_cutime; /* Cumulative user time */ + struct timeval pr_cstime; /* Cumulative system time */ +#if 0 + long pr_instr; /* Current instruction */ +#endif + elf_gregset_t pr_reg; /* GP registers */ + /* When using FDPIC, the loadmap addresses need to be communicated * to GDB in order for GDB to do the necessary relocations. The * fields (below) used to communicate this information are placed @@ -69,7 +102,7 @@ struct elf_prstatus */ unsigned long pr_exec_fdpic_loadmap; unsigned long pr_interp_fdpic_loadmap; -#endif + int pr_fpvalid; /* True if math co-processor being used. */ }; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 11b64a6..9cb496b 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -977,7 +977,11 @@ static void final_note(u32 *buf) void crash_save_cpu(struct pt_regs *regs, int cpu) { +#ifdef CONFIG_BINFMT_ELF_FDPIC + struct elf_fdpic_prstatus prstatus; +#else struct elf_prstatus prstatus; +#endif u32 *buf; if ((cpu < 0) || (cpu >= nr_cpu_ids)) -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 06/14] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c [not found] ` <1447119071-19392-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (4 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 05/14] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 07/14] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt ` (7 subsequent siblings) 13 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, peterz-wEGCiKHe2LqWVfeAwA7xHQ Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt This doesn't make any sense to expose to userspace, so it's been moved to the one user. This was introduced by commit 95f19f658ce1 ("epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled"). Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- fs/eventpoll.c | 13 +++++++++++++ include/uapi/linux/eventpoll.h | 12 ------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 1e009ca..aadee3d 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1812,6 +1812,19 @@ SYSCALL_DEFINE1(epoll_create, int, size) return sys_epoll_create1(0); } +#ifdef CONFIG_PM_SLEEP +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) + epev->events &= ~EPOLLWAKEUP; +} +#else +static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) +{ + epev->events &= ~EPOLLWAKEUP; +} +#endif + /* * The following function implements the controller interface for * the eventpoll file that enables the insertion/removal/change of diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index bc81fb2..7850373 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h @@ -61,16 +61,4 @@ struct epoll_event { __u64 data; } EPOLL_PACKED; -#ifdef CONFIG_PM_SLEEP -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) - epev->events &= ~EPOLLWAKEUP; -} -#else -static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) -{ - epev->events &= ~EPOLLWAKEUP; -} -#endif #endif /* _UAPI_LINUX_EVENTPOLL_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 07/14] Make FB_BACKLIGHT_{LEVELS,MAX} always visible [not found] ` <1447119071-19392-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (5 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 06/14] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 08/14] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt ` (6 subsequent siblings) 13 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, peterz-wEGCiKHe2LqWVfeAwA7xHQ Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt Nothing else in the kernel defines this, and this header is visible to userspace. Rather than hiding it in an #ifdef, I think it's sane to just make this visible to userspace. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/linux/fb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h index fb795c3..8926f13 100644 --- a/include/uapi/linux/fb.h +++ b/include/uapi/linux/fb.h @@ -392,11 +392,8 @@ struct fb_cursor { struct fb_image image; /* Cursor image */ }; -#ifdef CONFIG_FB_BACKLIGHT /* Settings for the generic backlight code */ #define FB_BACKLIGHT_LEVELS 128 #define FB_BACKLIGHT_MAX 0xFF -#endif - #endif /* _UAPI_LINUX_FB_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 08/14] Move MAX_SHARED_LIBS to fs/binfmt_flat.c [not found] ` <1447119071-19392-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (6 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 07/14] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 09/14] Move bp_type_idx to include/linux/hw_breakpoint.h Palmer Dabbelt ` (5 subsequent siblings) 13 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, peterz-wEGCiKHe2LqWVfeAwA7xHQ Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt I'm not sure what this is, but it doesn't feel like something that should be exposed to userspace here. I'm assuming this file was exposed for the structure in it, which doesn't depend on MAX_SHARED_LIBS. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- fs/binfmt_flat.c | 6 ++++++ include/uapi/linux/flat.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index f723cd3..e89fb43 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -72,6 +72,12 @@ #define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */ #define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */ +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + struct lib_info { struct { unsigned long start_code; /* Start of text segment */ diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h index 88cd6ba..1b177c7 100644 --- a/include/uapi/linux/flat.h +++ b/include/uapi/linux/flat.h @@ -13,12 +13,6 @@ #define FLAT_VERSION 0x00000004L -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define MAX_SHARED_LIBS (4) -#else -#define MAX_SHARED_LIBS (1) -#endif - /* * To make everything easier to port and manage cross platform * development, all fields are in network byte order. -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 09/14] Move bp_type_idx to include/linux/hw_breakpoint.h [not found] ` <1447119071-19392-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (7 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 08/14] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 10/14] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt ` (4 subsequent siblings) 13 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, peterz-wEGCiKHe2LqWVfeAwA7xHQ Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt This has a "#ifdef CONFIG_*" that used to be exposed to userspace. The names in here are so generic that I don't think it's a good idea to expose them to userspace (or even the rest of the kernel). There are multiple in-kernel users, so it's been moved to a kernel header file. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/linux/hw_breakpoint.h | 10 ++++++++++ include/uapi/linux/hw_breakpoint.h | 10 ---------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/linux/hw_breakpoint.h b/include/linux/hw_breakpoint.h index 0464c85..dfe0376 100644 --- a/include/linux/hw_breakpoint.h +++ b/include/linux/hw_breakpoint.h @@ -6,6 +6,16 @@ #ifdef CONFIG_HAVE_HW_BREAKPOINT +enum bp_type_idx { + TYPE_INST = 0, +#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS) + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + extern int __init init_hw_breakpoint(void); static inline void hw_breakpoint_init(struct perf_event_attr *attr) diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h index b04000a..7a6a5a7 100644 --- a/include/uapi/linux/hw_breakpoint.h +++ b/include/uapi/linux/hw_breakpoint.h @@ -17,14 +17,4 @@ enum { HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, }; -enum bp_type_idx { - TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS - TYPE_DATA = 0, -#else - TYPE_DATA = 1, -#endif - TYPE_MAX -}; - #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 10/14] Move USE_WCACHING to drivers/block/pktcdvd.c [not found] ` <1447119071-19392-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (8 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 09/14] Move bp_type_idx to include/linux/hw_breakpoint.h Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 11/14] Always define MAX_RAW_MINORS as 2**20 in userspace Palmer Dabbelt ` (3 subsequent siblings) 13 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, peterz-wEGCiKHe2LqWVfeAwA7xHQ Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt I don't think this was ever intended to be exposed to userspace, but it did require an "#ifdef CONFIG_*". Since the name is kind of generic and was only used in one place, I've moved the definition to the one user. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- drivers/block/pktcdvd.c | 11 +++++++++++ include/uapi/linux/pktcdvd.h | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 2f477d4..55f0df3 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -90,6 +90,17 @@ do { \ #define MAX_SPEED 0xffff +/* + * use drive write caching -- we need deferred error handling to be + * able to successfully recover with this option (drive will return good + * status as soon as the cdb is validated). + */ +#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) +#define USE_WCACHING 1 +#else +#define USE_WCACHING 0 +#endif + static DEFINE_MUTEX(pktcdvd_mutex); static struct pktcdvd_device *pkt_devs[MAX_WRITERS]; static struct proc_dir_entry *pkt_proc; diff --git a/include/uapi/linux/pktcdvd.h b/include/uapi/linux/pktcdvd.h index 2640b9d..05c2bee 100644 --- a/include/uapi/linux/pktcdvd.h +++ b/include/uapi/linux/pktcdvd.h @@ -29,17 +29,6 @@ #define PACKET_WAIT_TIME (HZ * 5 / 1000) /* - * use drive write caching -- we need deferred error handling to be - * able to successfully recover with this option (drive will return good - * status as soon as the cdb is validated). - */ -#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) -#define USE_WCACHING 1 -#else -#define USE_WCACHING 0 -#endif - -/* * No user-servicable parts beyond this point -> */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 10/14] Move USE_WCACHING to drivers/block/pktcdvd.c 2015-11-10 1:31 ` [PATCH 10/14] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I don't think this was ever intended to be exposed to userspace, but it did require an "#ifdef CONFIG_*". Since the name is kind of generic and was only used in one place, I've moved the definition to the one user. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/block/pktcdvd.c | 11 +++++++++++ include/uapi/linux/pktcdvd.h | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 2f477d4..55f0df3 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -90,6 +90,17 @@ do { \ #define MAX_SPEED 0xffff +/* + * use drive write caching -- we need deferred error handling to be + * able to successfully recover with this option (drive will return good + * status as soon as the cdb is validated). + */ +#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) +#define USE_WCACHING 1 +#else +#define USE_WCACHING 0 +#endif + static DEFINE_MUTEX(pktcdvd_mutex); static struct pktcdvd_device *pkt_devs[MAX_WRITERS]; static struct proc_dir_entry *pkt_proc; diff --git a/include/uapi/linux/pktcdvd.h b/include/uapi/linux/pktcdvd.h index 2640b9d..05c2bee 100644 --- a/include/uapi/linux/pktcdvd.h +++ b/include/uapi/linux/pktcdvd.h @@ -29,17 +29,6 @@ #define PACKET_WAIT_TIME (HZ * 5 / 1000) /* - * use drive write caching -- we need deferred error handling to be - * able to successfully recover with this option (drive will return good - * status as soon as the cdb is validated). - */ -#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) -#define USE_WCACHING 1 -#else -#define USE_WCACHING 0 -#endif - -/* * No user-servicable parts beyond this point -> */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 11/14] Always define MAX_RAW_MINORS as 2**20 in userspace [not found] ` <1447119071-19392-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (9 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 10/14] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 12/14] Remove AT_VECTOR_SIZE_ARCH on x86 Palmer Dabbelt ` (2 subsequent siblings) 13 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, peterz-wEGCiKHe2LqWVfeAwA7xHQ Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt While I don't think this was ever meant to be exposed to userspace, if anyone is using it then this will at least provide a correct (if unlikely) definition. MAX_RAW_MINORS used to be used in the kernel, where it's been replaced with CONFIG_MAX_RAW_MINORS. Note that there's a checkpatch.pl warning about a split config string here, but I've left that alone. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- drivers/char/raw.c | 7 ++++--- include/uapi/linux/raw.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 60316fb..2a69117 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -36,7 +36,7 @@ static struct raw_device_data *raw_devices; static DEFINE_MUTEX(raw_mutex); static const struct file_operations raw_ctl_fops; /* forward declaration */ -static int max_raw_minors = MAX_RAW_MINORS; +static int max_raw_minors = CONFIG_MAX_RAW_DEVS; module_param(max_raw_minors, int, 0); MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); @@ -317,8 +317,9 @@ static int __init raw_init(void) if (max_raw_minors < 1 || max_raw_minors > 65536) { printk(KERN_WARNING "raw: invalid max_raw_minors (must be" - " between 1 and 65536), using %d\n", MAX_RAW_MINORS); - max_raw_minors = MAX_RAW_MINORS; + " between 1 and 65536), using %d\n", + max_raw_minors); + max_raw_minors = 65536; } raw_devices = vzalloc(sizeof(struct raw_device_data) * max_raw_minors); diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e..f3d009b 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,6 @@ struct raw_config_request __u64 block_minor; }; -#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#define MAX_RAW_MINORS (1 << 20) #endif /* __LINUX_RAW_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 11/14] Always define MAX_RAW_MINORS as 2**20 in userspace 2015-11-10 1:31 ` [PATCH 11/14] Always define MAX_RAW_MINORS as 2**20 in userspace Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt While I don't think this was ever meant to be exposed to userspace, if anyone is using it then this will at least provide a correct (if unlikely) definition. MAX_RAW_MINORS used to be used in the kernel, where it's been replaced with CONFIG_MAX_RAW_MINORS. Note that there's a checkpatch.pl warning about a split config string here, but I've left that alone. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- drivers/char/raw.c | 7 ++++--- include/uapi/linux/raw.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 60316fb..2a69117 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -36,7 +36,7 @@ static struct raw_device_data *raw_devices; static DEFINE_MUTEX(raw_mutex); static const struct file_operations raw_ctl_fops; /* forward declaration */ -static int max_raw_minors = MAX_RAW_MINORS; +static int max_raw_minors = CONFIG_MAX_RAW_DEVS; module_param(max_raw_minors, int, 0); MODULE_PARM_DESC(max_raw_minors, "Maximum number of raw devices (1-65536)"); @@ -317,8 +317,9 @@ static int __init raw_init(void) if (max_raw_minors < 1 || max_raw_minors > 65536) { printk(KERN_WARNING "raw: invalid max_raw_minors (must be" - " between 1 and 65536), using %d\n", MAX_RAW_MINORS); - max_raw_minors = MAX_RAW_MINORS; + " between 1 and 65536), using %d\n", + max_raw_minors); + max_raw_minors = 65536; } raw_devices = vzalloc(sizeof(struct raw_device_data) * max_raw_minors); diff --git a/include/uapi/linux/raw.h b/include/uapi/linux/raw.h index 62d543e..f3d009b 100644 --- a/include/uapi/linux/raw.h +++ b/include/uapi/linux/raw.h @@ -13,6 +13,6 @@ struct raw_config_request __u64 block_minor; }; -#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS +#define MAX_RAW_MINORS (1 << 20) #endif /* __LINUX_RAW_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 12/14] Remove AT_VECTOR_SIZE_ARCH on x86 [not found] ` <1447119071-19392-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (10 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 11/14] Always define MAX_RAW_MINORS as 2**20 in userspace Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 13/14] Hide CONFIG_PHY_RAM_BASE_ADDRESS from userspace Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 14/14] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt 13 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, peterz-wEGCiKHe2LqWVfeAwA7xHQ Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt It looks like there aren't actually users of this macro anywhere: * The kernel doesn't use it on x86 because we don't suppor ELF FDPIC. * The only Google results point to LMKL patches, both the one that wrote this (from 2010) and my patch to hide it behind __KERNEL__. * I grep'd through all the source tarballs on my machine, and the only packages that matched were the kernel and crui (which copied a PPC kernel header). Since I'm not sure how to actually provide the right answer (if I understand correctly, CONFIG_IA32_EMULATION is not __i386__), the only thing I can think of to do is to just remove the definition. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- arch/x86/include/uapi/asm/auxvec.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm/auxvec.h index 77203ac..1316b4c 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -9,11 +9,4 @@ #endif #define AT_SYSINFO_EHDR 33 -/* entries in ARCH_DLINFO: */ -#if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) -# define AT_VECTOR_SIZE_ARCH 2 -#else /* else it's non-compat x86-64 */ -# define AT_VECTOR_SIZE_ARCH 1 -#endif - #endif /* _ASM_X86_AUXVEC_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 13/14] Hide CONFIG_PHY_RAM_BASE_ADDRESS from userspace [not found] ` <1447119071-19392-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (11 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 12/14] Remove AT_VECTOR_SIZE_ARCH on x86 Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 14/14] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt 13 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, peterz-wEGCiKHe2LqWVfeAwA7xHQ Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt This feels a bit odd, but I couldn't really come up with a better way to do it. There already appears to be a workaround for this macro not being defined in userspace, so I figured I'd better leave that in place, since someone is probably using it. The result is that unless you include <asm/fixed_code.h> before <uapi/asm/fixed_code.h> then you'll get the wrong offsets. The only user of <uapi/asm/fixed_code.h> is currently <asm/fixed_code.h>, so it's at least safe for now. There's a CPP error in there to check for this. --- arch/blackfin/include/asm/fixed_code.h | 6 +++++ arch/blackfin/include/uapi/asm/fixed_code.h | 35 ++++++++++++++++------------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/arch/blackfin/include/asm/fixed_code.h b/arch/blackfin/include/asm/fixed_code.h index bc330f0..7e03b9b 100644 --- a/arch/blackfin/include/asm/fixed_code.h +++ b/arch/blackfin/include/asm/fixed_code.h @@ -9,6 +9,12 @@ #ifndef __BFIN_ASM_FIXED_CODE_H__ #define __BFIN_ASM_FIXED_CODE_H__ +#ifdef CONFIG_PHY_RAM_BASE_ADDRESS +#define CONFIG_PHY_RAM_BASE_ADDRESS 0x0 +#endif + +#define PHY_RAM_BASE_ADDRESS CONFIG_PHY_RAM_BASE_ADDRESS + #include <uapi/asm/fixed_code.h> #ifndef __ASSEMBLY__ diff --git a/arch/blackfin/include/uapi/asm/fixed_code.h b/arch/blackfin/include/uapi/asm/fixed_code.h index 3bef1dc..50b70a0 100644 --- a/arch/blackfin/include/uapi/asm/fixed_code.h +++ b/arch/blackfin/include/uapi/asm/fixed_code.h @@ -10,29 +10,32 @@ #ifndef _UAPI__BFIN_ASM_FIXED_CODE_H__ #define _UAPI__BFIN_ASM_FIXED_CODE_H__ - -#ifndef CONFIG_PHY_RAM_BASE_ADDRESS -#define CONFIG_PHY_RAM_BASE_ADDRESS 0x0 +#ifndef PHY_RAM_BASE_ADDRESS +#ifdef __KERNEL__ +#error "Don't include <uapi/asm/fixed_code.h>, include <asm/fixed_code.h>" +#else +#define PHY_RAM_BASE_ADDRESS 0x0 +#endif #endif -#define FIXED_CODE_START (CONFIG_PHY_RAM_BASE_ADDRESS + 0x400) +#define FIXED_CODE_START (PHY_RAM_BASE_ADDRESS + 0x400) -#define SIGRETURN_STUB (CONFIG_PHY_RAM_BASE_ADDRESS + 0x400) +#define SIGRETURN_STUB (PHY_RAM_BASE_ADDRESS + 0x400) -#define ATOMIC_SEQS_START (CONFIG_PHY_RAM_BASE_ADDRESS + 0x410) +#define ATOMIC_SEQS_START (PHY_RAM_BASE_ADDRESS + 0x410) -#define ATOMIC_XCHG32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x410) -#define ATOMIC_CAS32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x420) -#define ATOMIC_ADD32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x430) -#define ATOMIC_SUB32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x440) -#define ATOMIC_IOR32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x450) -#define ATOMIC_AND32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x460) -#define ATOMIC_XOR32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x470) +#define ATOMIC_XCHG32 (PHY_RAM_BASE_ADDRESS + 0x410) +#define ATOMIC_CAS32 (PHY_RAM_BASE_ADDRESS + 0x420) +#define ATOMIC_ADD32 (PHY_RAM_BASE_ADDRESS + 0x430) +#define ATOMIC_SUB32 (PHY_RAM_BASE_ADDRESS + 0x440) +#define ATOMIC_IOR32 (PHY_RAM_BASE_ADDRESS + 0x450) +#define ATOMIC_AND32 (PHY_RAM_BASE_ADDRESS + 0x460) +#define ATOMIC_XOR32 (PHY_RAM_BASE_ADDRESS + 0x470) -#define ATOMIC_SEQS_END (CONFIG_PHY_RAM_BASE_ADDRESS + 0x480) +#define ATOMIC_SEQS_END (PHY_RAM_BASE_ADDRESS + 0x480) -#define SAFE_USER_INSTRUCTION (CONFIG_PHY_RAM_BASE_ADDRESS + 0x480) +#define SAFE_USER_INSTRUCTION (PHY_RAM_BASE_ADDRESS + 0x480) -#define FIXED_CODE_END (CONFIG_PHY_RAM_BASE_ADDRESS + 0x490) +#define FIXED_CODE_END (PHY_RAM_BASE_ADDRESS + 0x490) #endif /* _UAPI__BFIN_ASM_FIXED_CODE_H__ */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 13/14] Hide CONFIG_PHY_RAM_BASE_ADDRESS from userspace 2015-11-10 1:31 ` [PATCH 13/14] Hide CONFIG_PHY_RAM_BASE_ADDRESS from userspace Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This feels a bit odd, but I couldn't really come up with a better way to do it. There already appears to be a workaround for this macro not being defined in userspace, so I figured I'd better leave that in place, since someone is probably using it. The result is that unless you include <asm/fixed_code.h> before <uapi/asm/fixed_code.h> then you'll get the wrong offsets. The only user of <uapi/asm/fixed_code.h> is currently <asm/fixed_code.h>, so it's at least safe for now. There's a CPP error in there to check for this. --- arch/blackfin/include/asm/fixed_code.h | 6 +++++ arch/blackfin/include/uapi/asm/fixed_code.h | 35 ++++++++++++++++------------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/arch/blackfin/include/asm/fixed_code.h b/arch/blackfin/include/asm/fixed_code.h index bc330f0..7e03b9b 100644 --- a/arch/blackfin/include/asm/fixed_code.h +++ b/arch/blackfin/include/asm/fixed_code.h @@ -9,6 +9,12 @@ #ifndef __BFIN_ASM_FIXED_CODE_H__ #define __BFIN_ASM_FIXED_CODE_H__ +#ifdef CONFIG_PHY_RAM_BASE_ADDRESS +#define CONFIG_PHY_RAM_BASE_ADDRESS 0x0 +#endif + +#define PHY_RAM_BASE_ADDRESS CONFIG_PHY_RAM_BASE_ADDRESS + #include <uapi/asm/fixed_code.h> #ifndef __ASSEMBLY__ diff --git a/arch/blackfin/include/uapi/asm/fixed_code.h b/arch/blackfin/include/uapi/asm/fixed_code.h index 3bef1dc..50b70a0 100644 --- a/arch/blackfin/include/uapi/asm/fixed_code.h +++ b/arch/blackfin/include/uapi/asm/fixed_code.h @@ -10,29 +10,32 @@ #ifndef _UAPI__BFIN_ASM_FIXED_CODE_H__ #define _UAPI__BFIN_ASM_FIXED_CODE_H__ - -#ifndef CONFIG_PHY_RAM_BASE_ADDRESS -#define CONFIG_PHY_RAM_BASE_ADDRESS 0x0 +#ifndef PHY_RAM_BASE_ADDRESS +#ifdef __KERNEL__ +#error "Don't include <uapi/asm/fixed_code.h>, include <asm/fixed_code.h>" +#else +#define PHY_RAM_BASE_ADDRESS 0x0 +#endif #endif -#define FIXED_CODE_START (CONFIG_PHY_RAM_BASE_ADDRESS + 0x400) +#define FIXED_CODE_START (PHY_RAM_BASE_ADDRESS + 0x400) -#define SIGRETURN_STUB (CONFIG_PHY_RAM_BASE_ADDRESS + 0x400) +#define SIGRETURN_STUB (PHY_RAM_BASE_ADDRESS + 0x400) -#define ATOMIC_SEQS_START (CONFIG_PHY_RAM_BASE_ADDRESS + 0x410) +#define ATOMIC_SEQS_START (PHY_RAM_BASE_ADDRESS + 0x410) -#define ATOMIC_XCHG32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x410) -#define ATOMIC_CAS32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x420) -#define ATOMIC_ADD32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x430) -#define ATOMIC_SUB32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x440) -#define ATOMIC_IOR32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x450) -#define ATOMIC_AND32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x460) -#define ATOMIC_XOR32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x470) +#define ATOMIC_XCHG32 (PHY_RAM_BASE_ADDRESS + 0x410) +#define ATOMIC_CAS32 (PHY_RAM_BASE_ADDRESS + 0x420) +#define ATOMIC_ADD32 (PHY_RAM_BASE_ADDRESS + 0x430) +#define ATOMIC_SUB32 (PHY_RAM_BASE_ADDRESS + 0x440) +#define ATOMIC_IOR32 (PHY_RAM_BASE_ADDRESS + 0x450) +#define ATOMIC_AND32 (PHY_RAM_BASE_ADDRESS + 0x460) +#define ATOMIC_XOR32 (PHY_RAM_BASE_ADDRESS + 0x470) -#define ATOMIC_SEQS_END (CONFIG_PHY_RAM_BASE_ADDRESS + 0x480) +#define ATOMIC_SEQS_END (PHY_RAM_BASE_ADDRESS + 0x480) -#define SAFE_USER_INSTRUCTION (CONFIG_PHY_RAM_BASE_ADDRESS + 0x480) +#define SAFE_USER_INSTRUCTION (PHY_RAM_BASE_ADDRESS + 0x480) -#define FIXED_CODE_END (CONFIG_PHY_RAM_BASE_ADDRESS + 0x490) +#define FIXED_CODE_END (PHY_RAM_BASE_ADDRESS + 0x490) #endif /* _UAPI__BFIN_ASM_FIXED_CODE_H__ */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 14/14] Re-enable and clean up "check_config()" in headers_check.pl [not found] ` <1447119071-19392-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (12 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 13/14] Hide CONFIG_PHY_RAM_BASE_ADDRESS from userspace Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 13 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA, peterz-wEGCiKHe2LqWVfeAwA7xHQ Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt I recently got bit by a CONFIG_ in userspace bug. This has apparently happened before, but the check got disabled for triggering too much. In order to reduce false positives, I added some hueristics to avoid detecting comments. Since these tests all pass, I've now re-enabled them. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- scripts/headers_check.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 62320f9..1634b51 100755 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl @@ -27,6 +27,7 @@ my $ret = 0; my $line; my $lineno = 0; my $filename; +my $check_config_in_multiline_comment = 0; foreach my $file (@files) { $filename = $file; @@ -40,7 +41,7 @@ foreach my $file (@files) { &check_asm_types(); &check_sizetypes(); &check_declarations(); - # Dropped for now. Too much noise &check_config(); + &check_config(); } close $fh; } @@ -78,7 +79,21 @@ sub check_declarations sub check_config { - if ($line =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { + my $nocomments = $line; + $nocomments =~ s/\/\*.*\*\///; # Remove ANSI-style comments (/* to */) + $nocomments =~ s/\/\/.*//; # Remove C99-style comments (// to EOL) + + # Check to see if we're within a multiline comment, and if so + # just remove the whole line. I tried matching on '^ * ', but + # there's one header that doesn't prepend multi-line comments + # with * so that won't work. + if ($nocomments =~ m/\/\*/) { $check_config_in_multiline_comment = 1; } + if ($nocomments =~ m/\*\//) { $check_config_in_multiline_comment = 0; } + if ($check_config_in_multiline_comment == 1) { $nocomments = "" } + + # Check to see if there is something that looks like CONFIG_ + # inside a userspace-accessible header file and if so, print that out. + if ($nocomments =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n"; } } -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 12/14] Remove AT_VECTOR_SIZE_ARCH on x86 2015-11-10 1:30 ` Palmer Dabbelt ` (34 preceding siblings ...) [not found] ` <1447119071-19392-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (7 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt It looks like there aren't actually users of this macro anywhere: * The kernel doesn't use it on x86 because we don't suppor ELF FDPIC. * The only Google results point to LMKL patches, both the one that wrote this (from 2010) and my patch to hide it behind __KERNEL__. * I grep'd through all the source tarballs on my machine, and the only packages that matched were the kernel and crui (which copied a PPC kernel header). Since I'm not sure how to actually provide the right answer (if I understand correctly, CONFIG_IA32_EMULATION is not __i386__), the only thing I can think of to do is to just remove the definition. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- arch/x86/include/uapi/asm/auxvec.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm/auxvec.h index 77203ac..1316b4c 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -9,11 +9,4 @@ #endif #define AT_SYSINFO_EHDR 33 -/* entries in ARCH_DLINFO: */ -#if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) -# define AT_VECTOR_SIZE_ARCH 2 -#else /* else it's non-compat x86-64 */ -# define AT_VECTOR_SIZE_ARCH 1 -#endif - #endif /* _ASM_X86_AUXVEC_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 12/14] Remove AT_VECTOR_SIZE_ARCH on x86 2015-11-10 1:30 ` Palmer Dabbelt ` (35 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 12/14] Remove AT_VECTOR_SIZE_ARCH on x86 Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (6 subsequent siblings) 43 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt It looks like there aren't actually users of this macro anywhere: * The kernel doesn't use it on x86 because we don't suppor ELF FDPIC. * The only Google results point to LMKL patches, both the one that wrote this (from 2010) and my patch to hide it behind __KERNEL__. * I grep'd through all the source tarballs on my machine, and the only packages that matched were the kernel and crui (which copied a PPC kernel header). Since I'm not sure how to actually provide the right answer (if I understand correctly, CONFIG_IA32_EMULATION is not __i386__), the only thing I can think of to do is to just remove the definition. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- arch/x86/include/uapi/asm/auxvec.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm/auxvec.h index 77203ac..1316b4c 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -9,11 +9,4 @@ #endif #define AT_SYSINFO_EHDR 33 -/* entries in ARCH_DLINFO: */ -#if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) -# define AT_VECTOR_SIZE_ARCH 2 -#else /* else it's non-compat x86-64 */ -# define AT_VECTOR_SIZE_ARCH 1 -#endif - #endif /* _ASM_X86_AUXVEC_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 12/14] Remove AT_VECTOR_SIZE_ARCH on x86 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt It looks like there aren't actually users of this macro anywhere: * The kernel doesn't use it on x86 because we don't suppor ELF FDPIC. * The only Google results point to LMKL patches, both the one that wrote this (from 2010) and my patch to hide it behind __KERNEL__. * I grep'd through all the source tarballs on my machine, and the only packages that matched were the kernel and crui (which copied a PPC kernel header). Since I'm not sure how to actually provide the right answer (if I understand correctly, CONFIG_IA32_EMULATION is not __i386__), the only thing I can think of to do is to just remove the definition. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- arch/x86/include/uapi/asm/auxvec.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm/auxvec.h index 77203ac..1316b4c 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -9,11 +9,4 @@ #endif #define AT_SYSINFO_EHDR 33 -/* entries in ARCH_DLINFO: */ -#if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) -# define AT_VECTOR_SIZE_ARCH 2 -#else /* else it's non-compat x86-64 */ -# define AT_VECTOR_SIZE_ARCH 1 -#endif - #endif /* _ASM_X86_AUXVEC_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 12/14] Remove AT_VECTOR_SIZE_ARCH on x86 2015-11-10 1:30 ` Palmer Dabbelt ` (36 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 13/14] Hide CONFIG_PHY_RAM_BASE_ADDRESS from userspace Palmer Dabbelt ` (5 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt It looks like there aren't actually users of this macro anywhere: * The kernel doesn't use it on x86 because we don't suppor ELF FDPIC. * The only Google results point to LMKL patches, both the one that wrote this (from 2010) and my patch to hide it behind __KERNEL__. * I grep'd through all the source tarballs on my machine, and the only packages that matched were the kernel and crui (which copied a PPC kernel header). Since I'm not sure how to actually provide the right answer (if I understand correctly, CONFIG_IA32_EMULATION is not __i386__), the only thing I can think of to do is to just remove the definition. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- arch/x86/include/uapi/asm/auxvec.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm/auxvec.h index 77203ac..1316b4c 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -9,11 +9,4 @@ #endif #define AT_SYSINFO_EHDR 33 -/* entries in ARCH_DLINFO: */ -#if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) -# define AT_VECTOR_SIZE_ARCH 2 -#else /* else it's non-compat x86-64 */ -# define AT_VECTOR_SIZE_ARCH 1 -#endif - #endif /* _ASM_X86_AUXVEC_H */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 13/14] Hide CONFIG_PHY_RAM_BASE_ADDRESS from userspace 2015-11-10 1:30 ` Palmer Dabbelt ` (37 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (4 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This feels a bit odd, but I couldn't really come up with a better way to do it. There already appears to be a workaround for this macro not being defined in userspace, so I figured I'd better leave that in place, since someone is probably using it. The result is that unless you include <asm/fixed_code.h> before <uapi/asm/fixed_code.h> then you'll get the wrong offsets. The only user of <uapi/asm/fixed_code.h> is currently <asm/fixed_code.h>, so it's at least safe for now. There's a CPP error in there to check for this. --- arch/blackfin/include/asm/fixed_code.h | 6 +++++ arch/blackfin/include/uapi/asm/fixed_code.h | 35 ++++++++++++++++------------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/arch/blackfin/include/asm/fixed_code.h b/arch/blackfin/include/asm/fixed_code.h index bc330f0..7e03b9b 100644 --- a/arch/blackfin/include/asm/fixed_code.h +++ b/arch/blackfin/include/asm/fixed_code.h @@ -9,6 +9,12 @@ #ifndef __BFIN_ASM_FIXED_CODE_H__ #define __BFIN_ASM_FIXED_CODE_H__ +#ifdef CONFIG_PHY_RAM_BASE_ADDRESS +#define CONFIG_PHY_RAM_BASE_ADDRESS 0x0 +#endif + +#define PHY_RAM_BASE_ADDRESS CONFIG_PHY_RAM_BASE_ADDRESS + #include <uapi/asm/fixed_code.h> #ifndef __ASSEMBLY__ diff --git a/arch/blackfin/include/uapi/asm/fixed_code.h b/arch/blackfin/include/uapi/asm/fixed_code.h index 3bef1dc..50b70a0 100644 --- a/arch/blackfin/include/uapi/asm/fixed_code.h +++ b/arch/blackfin/include/uapi/asm/fixed_code.h @@ -10,29 +10,32 @@ #ifndef _UAPI__BFIN_ASM_FIXED_CODE_H__ #define _UAPI__BFIN_ASM_FIXED_CODE_H__ - -#ifndef CONFIG_PHY_RAM_BASE_ADDRESS -#define CONFIG_PHY_RAM_BASE_ADDRESS 0x0 +#ifndef PHY_RAM_BASE_ADDRESS +#ifdef __KERNEL__ +#error "Don't include <uapi/asm/fixed_code.h>, include <asm/fixed_code.h>" +#else +#define PHY_RAM_BASE_ADDRESS 0x0 +#endif #endif -#define FIXED_CODE_START (CONFIG_PHY_RAM_BASE_ADDRESS + 0x400) +#define FIXED_CODE_START (PHY_RAM_BASE_ADDRESS + 0x400) -#define SIGRETURN_STUB (CONFIG_PHY_RAM_BASE_ADDRESS + 0x400) +#define SIGRETURN_STUB (PHY_RAM_BASE_ADDRESS + 0x400) -#define ATOMIC_SEQS_START (CONFIG_PHY_RAM_BASE_ADDRESS + 0x410) +#define ATOMIC_SEQS_START (PHY_RAM_BASE_ADDRESS + 0x410) -#define ATOMIC_XCHG32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x410) -#define ATOMIC_CAS32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x420) -#define ATOMIC_ADD32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x430) -#define ATOMIC_SUB32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x440) -#define ATOMIC_IOR32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x450) -#define ATOMIC_AND32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x460) -#define ATOMIC_XOR32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x470) +#define ATOMIC_XCHG32 (PHY_RAM_BASE_ADDRESS + 0x410) +#define ATOMIC_CAS32 (PHY_RAM_BASE_ADDRESS + 0x420) +#define ATOMIC_ADD32 (PHY_RAM_BASE_ADDRESS + 0x430) +#define ATOMIC_SUB32 (PHY_RAM_BASE_ADDRESS + 0x440) +#define ATOMIC_IOR32 (PHY_RAM_BASE_ADDRESS + 0x450) +#define ATOMIC_AND32 (PHY_RAM_BASE_ADDRESS + 0x460) +#define ATOMIC_XOR32 (PHY_RAM_BASE_ADDRESS + 0x470) -#define ATOMIC_SEQS_END (CONFIG_PHY_RAM_BASE_ADDRESS + 0x480) +#define ATOMIC_SEQS_END (PHY_RAM_BASE_ADDRESS + 0x480) -#define SAFE_USER_INSTRUCTION (CONFIG_PHY_RAM_BASE_ADDRESS + 0x480) +#define SAFE_USER_INSTRUCTION (PHY_RAM_BASE_ADDRESS + 0x480) -#define FIXED_CODE_END (CONFIG_PHY_RAM_BASE_ADDRESS + 0x490) +#define FIXED_CODE_END (PHY_RAM_BASE_ADDRESS + 0x490) #endif /* _UAPI__BFIN_ASM_FIXED_CODE_H__ */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 13/14] Hide CONFIG_PHY_RAM_BASE_ADDRESS from userspace 2015-11-10 1:30 ` Palmer Dabbelt ` (38 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 13/14] Hide CONFIG_PHY_RAM_BASE_ADDRESS from userspace Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt ` (3 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This feels a bit odd, but I couldn't really come up with a better way to do it. There already appears to be a workaround for this macro not being defined in userspace, so I figured I'd better leave that in place, since someone is probably using it. The result is that unless you include <asm/fixed_code.h> before <uapi/asm/fixed_code.h> then you'll get the wrong offsets. The only user of <uapi/asm/fixed_code.h> is currently <asm/fixed_code.h>, so it's at least safe for now. There's a CPP error in there to check for this. --- arch/blackfin/include/asm/fixed_code.h | 6 +++++ arch/blackfin/include/uapi/asm/fixed_code.h | 35 ++++++++++++++++------------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/arch/blackfin/include/asm/fixed_code.h b/arch/blackfin/include/asm/fixed_code.h index bc330f0..7e03b9b 100644 --- a/arch/blackfin/include/asm/fixed_code.h +++ b/arch/blackfin/include/asm/fixed_code.h @@ -9,6 +9,12 @@ #ifndef __BFIN_ASM_FIXED_CODE_H__ #define __BFIN_ASM_FIXED_CODE_H__ +#ifdef CONFIG_PHY_RAM_BASE_ADDRESS +#define CONFIG_PHY_RAM_BASE_ADDRESS 0x0 +#endif + +#define PHY_RAM_BASE_ADDRESS CONFIG_PHY_RAM_BASE_ADDRESS + #include <uapi/asm/fixed_code.h> #ifndef __ASSEMBLY__ diff --git a/arch/blackfin/include/uapi/asm/fixed_code.h b/arch/blackfin/include/uapi/asm/fixed_code.h index 3bef1dc..50b70a0 100644 --- a/arch/blackfin/include/uapi/asm/fixed_code.h +++ b/arch/blackfin/include/uapi/asm/fixed_code.h @@ -10,29 +10,32 @@ #ifndef _UAPI__BFIN_ASM_FIXED_CODE_H__ #define _UAPI__BFIN_ASM_FIXED_CODE_H__ - -#ifndef CONFIG_PHY_RAM_BASE_ADDRESS -#define CONFIG_PHY_RAM_BASE_ADDRESS 0x0 +#ifndef PHY_RAM_BASE_ADDRESS +#ifdef __KERNEL__ +#error "Don't include <uapi/asm/fixed_code.h>, include <asm/fixed_code.h>" +#else +#define PHY_RAM_BASE_ADDRESS 0x0 +#endif #endif -#define FIXED_CODE_START (CONFIG_PHY_RAM_BASE_ADDRESS + 0x400) +#define FIXED_CODE_START (PHY_RAM_BASE_ADDRESS + 0x400) -#define SIGRETURN_STUB (CONFIG_PHY_RAM_BASE_ADDRESS + 0x400) +#define SIGRETURN_STUB (PHY_RAM_BASE_ADDRESS + 0x400) -#define ATOMIC_SEQS_START (CONFIG_PHY_RAM_BASE_ADDRESS + 0x410) +#define ATOMIC_SEQS_START (PHY_RAM_BASE_ADDRESS + 0x410) -#define ATOMIC_XCHG32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x410) -#define ATOMIC_CAS32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x420) -#define ATOMIC_ADD32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x430) -#define ATOMIC_SUB32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x440) -#define ATOMIC_IOR32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x450) -#define ATOMIC_AND32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x460) -#define ATOMIC_XOR32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x470) +#define ATOMIC_XCHG32 (PHY_RAM_BASE_ADDRESS + 0x410) +#define ATOMIC_CAS32 (PHY_RAM_BASE_ADDRESS + 0x420) +#define ATOMIC_ADD32 (PHY_RAM_BASE_ADDRESS + 0x430) +#define ATOMIC_SUB32 (PHY_RAM_BASE_ADDRESS + 0x440) +#define ATOMIC_IOR32 (PHY_RAM_BASE_ADDRESS + 0x450) +#define ATOMIC_AND32 (PHY_RAM_BASE_ADDRESS + 0x460) +#define ATOMIC_XOR32 (PHY_RAM_BASE_ADDRESS + 0x470) -#define ATOMIC_SEQS_END (CONFIG_PHY_RAM_BASE_ADDRESS + 0x480) +#define ATOMIC_SEQS_END (PHY_RAM_BASE_ADDRESS + 0x480) -#define SAFE_USER_INSTRUCTION (CONFIG_PHY_RAM_BASE_ADDRESS + 0x480) +#define SAFE_USER_INSTRUCTION (PHY_RAM_BASE_ADDRESS + 0x480) -#define FIXED_CODE_END (CONFIG_PHY_RAM_BASE_ADDRESS + 0x490) +#define FIXED_CODE_END (PHY_RAM_BASE_ADDRESS + 0x490) #endif /* _UAPI__BFIN_ASM_FIXED_CODE_H__ */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 13/14] Hide CONFIG_PHY_RAM_BASE_ADDRESS from userspace 2015-11-10 1:30 ` Palmer Dabbelt ` (39 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` [PATCH 14/14] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt ` (2 subsequent siblings) 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt This feels a bit odd, but I couldn't really come up with a better way to do it. There already appears to be a workaround for this macro not being defined in userspace, so I figured I'd better leave that in place, since someone is probably using it. The result is that unless you include <asm/fixed_code.h> before <uapi/asm/fixed_code.h> then you'll get the wrong offsets. The only user of <uapi/asm/fixed_code.h> is currently <asm/fixed_code.h>, so it's at least safe for now. There's a CPP error in there to check for this. --- arch/blackfin/include/asm/fixed_code.h | 6 +++++ arch/blackfin/include/uapi/asm/fixed_code.h | 35 ++++++++++++++++------------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/arch/blackfin/include/asm/fixed_code.h b/arch/blackfin/include/asm/fixed_code.h index bc330f0..7e03b9b 100644 --- a/arch/blackfin/include/asm/fixed_code.h +++ b/arch/blackfin/include/asm/fixed_code.h @@ -9,6 +9,12 @@ #ifndef __BFIN_ASM_FIXED_CODE_H__ #define __BFIN_ASM_FIXED_CODE_H__ +#ifdef CONFIG_PHY_RAM_BASE_ADDRESS +#define CONFIG_PHY_RAM_BASE_ADDRESS 0x0 +#endif + +#define PHY_RAM_BASE_ADDRESS CONFIG_PHY_RAM_BASE_ADDRESS + #include <uapi/asm/fixed_code.h> #ifndef __ASSEMBLY__ diff --git a/arch/blackfin/include/uapi/asm/fixed_code.h b/arch/blackfin/include/uapi/asm/fixed_code.h index 3bef1dc..50b70a0 100644 --- a/arch/blackfin/include/uapi/asm/fixed_code.h +++ b/arch/blackfin/include/uapi/asm/fixed_code.h @@ -10,29 +10,32 @@ #ifndef _UAPI__BFIN_ASM_FIXED_CODE_H__ #define _UAPI__BFIN_ASM_FIXED_CODE_H__ - -#ifndef CONFIG_PHY_RAM_BASE_ADDRESS -#define CONFIG_PHY_RAM_BASE_ADDRESS 0x0 +#ifndef PHY_RAM_BASE_ADDRESS +#ifdef __KERNEL__ +#error "Don't include <uapi/asm/fixed_code.h>, include <asm/fixed_code.h>" +#else +#define PHY_RAM_BASE_ADDRESS 0x0 +#endif #endif -#define FIXED_CODE_START (CONFIG_PHY_RAM_BASE_ADDRESS + 0x400) +#define FIXED_CODE_START (PHY_RAM_BASE_ADDRESS + 0x400) -#define SIGRETURN_STUB (CONFIG_PHY_RAM_BASE_ADDRESS + 0x400) +#define SIGRETURN_STUB (PHY_RAM_BASE_ADDRESS + 0x400) -#define ATOMIC_SEQS_START (CONFIG_PHY_RAM_BASE_ADDRESS + 0x410) +#define ATOMIC_SEQS_START (PHY_RAM_BASE_ADDRESS + 0x410) -#define ATOMIC_XCHG32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x410) -#define ATOMIC_CAS32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x420) -#define ATOMIC_ADD32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x430) -#define ATOMIC_SUB32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x440) -#define ATOMIC_IOR32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x450) -#define ATOMIC_AND32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x460) -#define ATOMIC_XOR32 (CONFIG_PHY_RAM_BASE_ADDRESS + 0x470) +#define ATOMIC_XCHG32 (PHY_RAM_BASE_ADDRESS + 0x410) +#define ATOMIC_CAS32 (PHY_RAM_BASE_ADDRESS + 0x420) +#define ATOMIC_ADD32 (PHY_RAM_BASE_ADDRESS + 0x430) +#define ATOMIC_SUB32 (PHY_RAM_BASE_ADDRESS + 0x440) +#define ATOMIC_IOR32 (PHY_RAM_BASE_ADDRESS + 0x450) +#define ATOMIC_AND32 (PHY_RAM_BASE_ADDRESS + 0x460) +#define ATOMIC_XOR32 (PHY_RAM_BASE_ADDRESS + 0x470) -#define ATOMIC_SEQS_END (CONFIG_PHY_RAM_BASE_ADDRESS + 0x480) +#define ATOMIC_SEQS_END (PHY_RAM_BASE_ADDRESS + 0x480) -#define SAFE_USER_INSTRUCTION (CONFIG_PHY_RAM_BASE_ADDRESS + 0x480) +#define SAFE_USER_INSTRUCTION (PHY_RAM_BASE_ADDRESS + 0x480) -#define FIXED_CODE_END (CONFIG_PHY_RAM_BASE_ADDRESS + 0x490) +#define FIXED_CODE_END (PHY_RAM_BASE_ADDRESS + 0x490) #endif /* _UAPI__BFIN_ASM_FIXED_CODE_H__ */ -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 14/14] Re-enable and clean up "check_config()" in headers_check.pl 2015-11-10 1:30 ` Palmer Dabbelt ` (40 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I recently got bit by a CONFIG_ in userspace bug. This has apparently happened before, but the check got disabled for triggering too much. In order to reduce false positives, I added some hueristics to avoid detecting comments. Since these tests all pass, I've now re-enabled them. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- scripts/headers_check.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 62320f9..1634b51 100755 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl @@ -27,6 +27,7 @@ my $ret = 0; my $line; my $lineno = 0; my $filename; +my $check_config_in_multiline_comment = 0; foreach my $file (@files) { $filename = $file; @@ -40,7 +41,7 @@ foreach my $file (@files) { &check_asm_types(); &check_sizetypes(); &check_declarations(); - # Dropped for now. Too much noise &check_config(); + &check_config(); } close $fh; } @@ -78,7 +79,21 @@ sub check_declarations sub check_config { - if ($line =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { + my $nocomments = $line; + $nocomments =~ s/\/\*.*\*\///; # Remove ANSI-style comments (/* to */) + $nocomments =~ s/\/\/.*//; # Remove C99-style comments (// to EOL) + + # Check to see if we're within a multiline comment, and if so + # just remove the whole line. I tried matching on '^ * ', but + # there's one header that doesn't prepend multi-line comments + # with * so that won't work. + if ($nocomments =~ m/\/\*/) { $check_config_in_multiline_comment = 1; } + if ($nocomments =~ m/\*\//) { $check_config_in_multiline_comment = 0; } + if ($check_config_in_multiline_comment == 1) { $nocomments = "" } + + # Check to see if there is something that looks like CONFIG_ + # inside a userspace-accessible header file and if so, print that out. + if ($nocomments =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n"; } } -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 14/14] Re-enable and clean up "check_config()" in headers_check.pl 2015-11-10 1:30 ` Palmer Dabbelt ` (41 preceding siblings ...) 2015-11-10 1:31 ` [PATCH 14/14] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 2015-11-10 1:31 ` Palmer Dabbelt 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I recently got bit by a CONFIG_ in userspace bug. This has apparently happened before, but the check got disabled for triggering too much. In order to reduce false positives, I added some hueristics to avoid detecting comments. Since these tests all pass, I've now re-enabled them. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- scripts/headers_check.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 62320f9..1634b51 100755 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl @@ -27,6 +27,7 @@ my $ret = 0; my $line; my $lineno = 0; my $filename; +my $check_config_in_multiline_comment = 0; foreach my $file (@files) { $filename = $file; @@ -40,7 +41,7 @@ foreach my $file (@files) { &check_asm_types(); &check_sizetypes(); &check_declarations(); - # Dropped for now. Too much noise &check_config(); + &check_config(); } close $fh; } @@ -78,7 +79,21 @@ sub check_declarations sub check_config { - if ($line =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { + my $nocomments = $line; + $nocomments =~ s/\/\*.*\*\///; # Remove ANSI-style comments (/* to */) + $nocomments =~ s/\/\/.*//; # Remove C99-style comments (// to EOL) + + # Check to see if we're within a multiline comment, and if so + # just remove the whole line. I tried matching on '^ * ', but + # there's one header that doesn't prepend multi-line comments + # with * so that won't work. + if ($nocomments =~ m/\/\*/) { $check_config_in_multiline_comment = 1; } + if ($nocomments =~ m/\*\//) { $check_config_in_multiline_comment = 0; } + if ($check_config_in_multiline_comment == 1) { $nocomments = "" } + + # Check to see if there is something that looks like CONFIG_ + # inside a userspace-accessible header file and if so, print that out. + if ($nocomments =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n"; } } -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 14/14] Re-enable and clean up "check_config()" in headers_check.pl 2015-11-10 1:30 ` Palmer Dabbelt ` (42 preceding siblings ...) 2015-11-10 1:31 ` Palmer Dabbelt @ 2015-11-10 1:31 ` Palmer Dabbelt 43 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:31 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86, Palmer Dabbelt I recently got bit by a CONFIG_ in userspace bug. This has apparently happened before, but the check got disabled for triggering too much. In order to reduce false positives, I added some hueristics to avoid detecting comments. Since these tests all pass, I've now re-enabled them. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- scripts/headers_check.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 62320f9..1634b51 100755 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl @@ -27,6 +27,7 @@ my $ret = 0; my $line; my $lineno = 0; my $filename; +my $check_config_in_multiline_comment = 0; foreach my $file (@files) { $filename = $file; @@ -40,7 +41,7 @@ foreach my $file (@files) { &check_asm_types(); &check_sizetypes(); &check_declarations(); - # Dropped for now. Too much noise &check_config(); + &check_config(); } close $fh; } @@ -78,7 +79,21 @@ sub check_declarations sub check_config { - if ($line =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { + my $nocomments = $line; + $nocomments =~ s/\/\*.*\*\///; # Remove ANSI-style comments (/* to */) + $nocomments =~ s/\/\/.*//; # Remove C99-style comments (// to EOL) + + # Check to see if we're within a multiline comment, and if so + # just remove the whole line. I tried matching on '^ * ', but + # there's one header that doesn't prepend multi-line comments + # with * so that won't work. + if ($nocomments =~ m/\/\*/) { $check_config_in_multiline_comment = 1; } + if ($nocomments =~ m/\*\//) { $check_config_in_multiline_comment = 0; } + if ($check_config_in_multiline_comment == 1) { $nocomments = "" } + + # Check to see if there is something that looks like CONFIG_ + # inside a userspace-accessible header file and if so, print that out. + if ($nocomments =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n"; } } -- 2.4.10 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH v5] Remove #ifdef CONFIG_* from all userspace headers 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt ` (41 preceding siblings ...) 2015-11-10 1:30 ` Palmer Dabbelt @ 2015-11-10 1:30 ` Palmer Dabbelt 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-10 1:30 UTC (permalink / raw) To: arnd, dhowells, peterz Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 I think this should _actually_ be ready to go this time, the buildbot found some errors in arches that I didn't test for. Changes since v4 (<1446579994-9937-1-git-send-email-palmer@dabbelt.com>) * #9 was changed to work on arm by moving the enum to an in-kernel header file. * #13 was added, this fixes a problem on blackfin. Changes since v3 (<1442271047-4908-1-git-send-email-palmer@dabbelt.com>) * #4 is very different: rather than defining a canonical value for MAP_UNINITIALIZED, it just punts on the problem and lets arch maintainers deal with it. There's still an #ifndef MAP_UNINITIALIZED in there, but that shouldn't get triggered by anything because the arch headers should set it to whatever they actually want. * #11 defines MAX_RAW_MINORS to 2^20 instead of 2^16. * #13 moves the variable around a bit so it gets initialized. I forgot I was in perl and not C :). Changes since v2 (<1441832902-28993-1-git-send-email-palmer@dabbelt.com>) * Patch set renamed. * #2 is rewritten to use sys_ni.c instead of an #ifdef * #3, #6, #8, #9, #10, and #11 no longer use "#ifdef __KERNEL__" but have instead moved the offending lines to the correct, kernel-only files. * #4 has been rewritten to always define MAP_UNINITIALIZED to non-zero, rather than defining it to zero when in userspace. * #5 got a whole lot longer -- rather than just always hiding these fields from userspace, there is now a second "struct elf_fdpic_prstatus" structure. This should allow userspace to parse core dumps correctly. * Rebased onto 9c488de24f7264f08d341024bffdd637b4d04c96. Changes since v1 (<1441152610-22566-1-git-send-email-palmer@dabbelt.com>) * All patches but #1 were added. ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers 2015-09-14 22:50 ` Palmer Dabbelt ` (40 preceding siblings ...) 2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 2015-11-03 19:46 ` Palmer Dabbelt 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 I think this is good to go. There are two acks, but I wasn't sure if I was supposed to collect them in the patches or not. Arnd Bergman acked #1 and #7. Changes since v3 (<1442271047-4908-1-git-send-email-palmer@dabbelt.com>) * #4 is very different: rather than defining a canonical value for MAP_UNINITIALIZED, it just punts on the problem and lets arch maintainers deal with it. There's still an #ifndef MAP_UNINITIALIZED in there, but that shouldn't get triggered by anything because the arch headers should set it to whatever they actually want. * #11 defines MAX_RAW_MINORS to 2^20 instead of 2^16. * #13 moves the variable around a bit so it gets initialized. I forgot I was in perl and not C :). Changes since v2 (<1441832902-28993-1-git-send-email-palmer@dabbelt.com>) * Patch set renamed. * #2 is rewritten to use sys_ni.c instead of an #ifdef * #3, #6, #8, #9, #10, and #11 no longer use "#ifdef __KERNEL__" but have instead moved the offending lines to the correct, kernel-only files. * #4 has been rewritten to always define MAP_UNINITIALIZED to non-zero, rather than defining it to zero when in userspace. * #5 got a whole lot longer -- rather than just always hiding these fields from userspace, there is now a second "struct elf_fdpic_prstatus" structure. This should allow userspace to parse core dumps correctly. * Rebased onto 9c488de24f7264f08d341024bffdd637b4d04c96. Changes since v1 (<1441152610-22566-1-git-send-email-palmer@dabbelt.com>) * All patches but #1 were added. ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers 2015-09-14 22:50 ` Palmer Dabbelt ` (41 preceding siblings ...) 2015-11-03 19:46 ` [PATCH v4] " Palmer Dabbelt @ 2015-11-03 19:46 ` Palmer Dabbelt 42 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-11-03 19:46 UTC (permalink / raw) To: arnd, dhowells Cc: viro, ast, aishchuk, aarcange, akpm, luto, acme, bhe, 3chas3, chris, dave, dyoung, drysdale, davem, ebiederm, geoff, gregkh, hpa, mingo, iulia.manda21, plagnioj, jikos, josh, kexec, linux-api, linux-arch, linux-fsdevel, linux-kernel, linux-xtensa, mathieu.desnoyers, jcmvbkbc, paulmck, a.p.zijlstra, tglx, tomi.valkeinen, vgoyal, x86 I think this is good to go. There are two acks, but I wasn't sure if I was supposed to collect them in the patches or not. Arnd Bergman acked #1 and #7. Changes since v3 (<1442271047-4908-1-git-send-email-palmer@dabbelt.com>) * #4 is very different: rather than defining a canonical value for MAP_UNINITIALIZED, it just punts on the problem and lets arch maintainers deal with it. There's still an #ifndef MAP_UNINITIALIZED in there, but that shouldn't get triggered by anything because the arch headers should set it to whatever they actually want. * #11 defines MAX_RAW_MINORS to 2^20 instead of 2^16. * #13 moves the variable around a bit so it gets initialized. I forgot I was in perl and not C :). Changes since v2 (<1441832902-28993-1-git-send-email-palmer@dabbelt.com>) * Patch set renamed. * #2 is rewritten to use sys_ni.c instead of an #ifdef * #3, #6, #8, #9, #10, and #11 no longer use "#ifdef __KERNEL__" but have instead moved the offending lines to the correct, kernel-only files. * #4 has been rewritten to always define MAP_UNINITIALIZED to non-zero, rather than defining it to zero when in userspace. * #5 got a whole lot longer -- rather than just always hiding these fields from userspace, there is now a second "struct elf_fdpic_prstatus" structure. This should allow userspace to parse core dumps correctly. * Rebased onto 9c488de24f7264f08d341024bffdd637b4d04c96. Changes since v1 (<1441152610-22566-1-git-send-email-palmer@dabbelt.com>) * All patches but #1 were added. ^ permalink raw reply [flat|nested] 327+ messages in thread
[parent not found: <1441832902-28993-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>]
* [PATCH 02/13] Always expose __SYSCALL(... fork ...) [not found] ` <1441832902-28993-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> @ 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt ` (3 subsequent siblings) 4 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd-r2nGTMty4D4 Cc: 3chas3-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-H+wXaHxf7aLQT0dZR+AlfA, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-atm-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, linux-fbdev-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, netdev-u79uwXL29TY76Z2rM5mHXA, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt I think this change actually doesn't do anything: __NR_fork was still being defined either way, and on my machine fork() in <unistd.h> comes from libc. That said, I don't think there's any way to determine this automatically, so this at least quiets the checker. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- include/uapi/asm-generic/unistd.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index e016bd9b1a04..e027ef7aa01f 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -865,11 +865,11 @@ __SYSCALL(__NR_uselib, sys_uselib) __SYSCALL(__NR__sysctl, sys_sysctl) #define __NR_fork 1079 -#ifdef CONFIG_MMU +#if !defined(__KERNEL__) || defined(CONFIG_MMU) __SYSCALL(__NR_fork, sys_fork) #else __SYSCALL(__NR_fork, sys_ni_syscall) -#endif /* CONFIG_MMU */ +#endif /* !__KERNEL__ || CONFIG_MMU */ #undef __NR_syscalls #define __NR_syscalls (__NR_fork+1) -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 02/13] Always expose __SYSCALL(... fork ...) 2015-09-09 21:08 ` [PATCH 02/13] Always expose __SYSCALL(... fork ...) Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt I think this change actually doesn't do anything: __NR_fork was still being defined either way, and on my machine fork() in <unistd.h> comes from libc. That said, I don't think there's any way to determine this automatically, so this at least quiets the checker. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- include/uapi/asm-generic/unistd.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index e016bd9b1a04..e027ef7aa01f 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -865,11 +865,11 @@ __SYSCALL(__NR_uselib, sys_uselib) __SYSCALL(__NR__sysctl, sys_sysctl) #define __NR_fork 1079 -#ifdef CONFIG_MMU +#if !defined(__KERNEL__) || defined(CONFIG_MMU) __SYSCALL(__NR_fork, sys_fork) #else __SYSCALL(__NR_fork, sys_ni_syscall) -#endif /* CONFIG_MMU */ +#endif /* !__KERNEL__ || CONFIG_MMU */ #undef __NR_syscalls #define __NR_syscalls (__NR_fork+1) -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl [not found] ` <1441832902-28993-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> 2015-09-09 21:08 ` [PATCH 02/13] Always expose __SYSCALL(... fork ...) Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-09 21:08 ` Palmer Dabbelt 2015-09-10 11:15 ` [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h David Howells ` (2 subsequent siblings) 4 siblings, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd-r2nGTMty4D4 Cc: 3chas3-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-H+wXaHxf7aLQT0dZR+AlfA, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-atm-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, linux-fbdev-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, netdev-u79uwXL29TY76Z2rM5mHXA, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, x86-DgEjT+Ai2ygdnm+yROfE0A, Palmer Dabbelt I recently got bit by a CONFIG_ in userspace bug. This has apparently happened before, but the check got disabled for triggering too much. In order to reduce false positives, I added some hueristics to avoid detecting comments. Since these tests all pass, I've now re-enabled them. Signed-off-by: Palmer Dabbelt <palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> Reviewed-by: Andrew Waterman <waterman-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> Reviewed-by: Albert Ou <aou-aFE07iDfcCIb0cFwG/AQJIdd74u8MsAO@public.gmane.org> --- scripts/headers_check.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 62320f93e903..dd413ad9c850 100755 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl @@ -40,7 +40,7 @@ foreach my $file (@files) { &check_asm_types(); &check_sizetypes(); &check_declarations(); - # Dropped for now. Too much noise &check_config(); + &check_config(); } close $fh; } @@ -76,9 +76,24 @@ sub check_declarations } } +my $check_config_in_multiline_comment = 0; sub check_config { - if ($line =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { + my $nocomments = $line; + $nocomments =~ s/\/\*.*\*\///; # Remove ANSI-style comments (/* to */) + $nocomments =~ s/\/\/.*//; # Remove C99-style comments (// to EOL) + + # Check to see if we're within a multiline comment, and if so + # just remove the whole line. I tried matching on '^ * ', but + # there's one header that doesn't prepend multi-line comments + # with * so that won't work. + if ($nocomments =~ m/\/\*/) { $check_config_in_multiline_comment = 1; } + if ($nocomments =~ m/\*\//) { $check_config_in_multiline_comment = 0; } + if ($check_config_in_multiline_comment == 1) { $nocomments = "" } + + # Check to see if there is something that looks like CONFIG_ + # inside a userspace-accessible header file and if so, print that out. + if ($nocomments =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n"; } } -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl 2015-09-09 21:08 ` [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt @ 2015-09-09 21:08 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-09 21:08 UTC (permalink / raw) To: arnd Cc: 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86, Palmer Dabbelt I recently got bit by a CONFIG_ in userspace bug. This has apparently happened before, but the check got disabled for triggering too much. In order to reduce false positives, I added some hueristics to avoid detecting comments. Since these tests all pass, I've now re-enabled them. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Reviewed-by: Andrew Waterman <waterman@eecs.berkeley.edu> Reviewed-by: Albert Ou <aou@eecs.berkeley.edu> --- scripts/headers_check.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 62320f93e903..dd413ad9c850 100755 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl @@ -40,7 +40,7 @@ foreach my $file (@files) { &check_asm_types(); &check_sizetypes(); &check_declarations(); - # Dropped for now. Too much noise &check_config(); + &check_config(); } close $fh; } @@ -76,9 +76,24 @@ sub check_declarations } } +my $check_config_in_multiline_comment = 0; sub check_config { - if ($line =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { + my $nocomments = $line; + $nocomments =~ s/\/\*.*\*\///; # Remove ANSI-style comments (/* to */) + $nocomments =~ s/\/\/.*//; # Remove C99-style comments (// to EOL) + + # Check to see if we're within a multiline comment, and if so + # just remove the whole line. I tried matching on '^ * ', but + # there's one header that doesn't prepend multi-line comments + # with * so that won't work. + if ($nocomments =~ m/\/\*/) { $check_config_in_multiline_comment = 1; } + if ($nocomments =~ m/\*\//) { $check_config_in_multiline_comment = 0; } + if ($check_config_in_multiline_comment == 1) { $nocomments = "" } + + # Check to see if there is something that looks like CONFIG_ + # inside a userspace-accessible header file and if so, print that out. + if ($nocomments =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9_]+)[^a-zA-Z0-9_]/) { printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n"; } } -- 2.4.6 ^ permalink raw reply related [flat|nested] 327+ messages in thread
* Re: [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h [not found] ` <1441832902-28993-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> 2015-09-09 21:08 ` [PATCH 02/13] Always expose __SYSCALL(... fork ...) Palmer Dabbelt 2015-09-09 21:08 ` [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt @ 2015-09-10 11:15 ` David Howells 2015-09-10 11:15 ` David Howells 2015-09-14 22:50 ` [PATCH v3] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt 4 siblings, 1 reply; 327+ messages in thread From: David Howells @ 2015-09-10 11:15 UTC (permalink / raw) To: Palmer Dabbelt Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA, arnd-r2nGTMty4D4, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-H+wXaHxf7aLQT0dZR+AlfA, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-atm-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, linux-fbdev-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, netdev-u79uwXL29TY76Z2rM5mHXA, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, x86-DgEjT+Ai2ygdnm+yROfE0A Rather than iterating through all the rest of your patches and saying the same thing, if there's something in a UAPI header that needs wrapping in __KERNEL__ to exclude it from userspace's use, then it should be transferred to the non-UAPI variant of that header (which should #include the UAPI variant). David ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-09-10 11:15 ` [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h David Howells @ 2015-09-10 11:15 ` David Howells 0 siblings, 0 replies; 327+ messages in thread From: David Howells @ 2015-09-10 11:15 UTC (permalink / raw) To: Palmer Dabbelt Cc: dhowells, arnd, 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86 Rather than iterating through all the rest of your patches and saying the same thing, if there's something in a UAPI header that needs wrapping in __KERNEL__ to exclude it from userspace's use, then it should be transferred to the non-UAPI variant of that header (which should #include the UAPI variant). David ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH v3] Remove #ifdef CONFIG_* from all userspace headers [not found] ` <1441832902-28993-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (2 preceding siblings ...) 2015-09-10 11:15 ` [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h David Howells @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt 4 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: dave-gkUM19QKKo4, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, ast-uqk4Ao+rVK5Wk0Htik3J/w, aarcange-H+wXaHxf7aLQT0dZR+AlfA, bhe-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A, tomi.valkeinen-l0cyMroinI0, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, plagnioj-sclMFOaUSTBWk0Htik3J/w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, linux-arch-u79uwXL29TY76Z2rM5mHXA, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, acme-DgEjT+Ai2ygdnm+yROfE0A, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, luto-DgEjT+Ai2ygdnm+yROfE0A, tglx-hfZtesqFncYOwBW4kG4KsQ, drysdale-hpIqsD4AKlfQT0dZR+AlfA, chris-YvXeqwSYzG2sTnJN9+BGXg, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, dyoung-H+wXaHxf7aLQT0dZR+AlfA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-kernel-u79uwXL29TY76Z2rM5mHXA, ebiederm-aS9lmoZGLiVWk0Htik3J/w, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, davem-fT/PcQaiUtIeIZ0/mPfg9Q This patch set used to be called "[PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h". This is version 3 of the patch set. I think things are kind of cleaning up, but there's still some questions I have: * #4 might be dangerous, but I think this is the best way to do it because otherwise arch maintainers will have to #define this to something. Since Xtensa already had exactly the same bug as the asm-generic header did, I think it'd be best to avoid those if possible. I'm OK changing this to define the value to 0 by default (though thinking now, I think it'd be better to not define it by default), since most kernels aren't going to have MAP_UNINITIALIZED do anything anyway. * #5 is big and I don't really understand what's going on, so it's probably broken somewhere. Also, there's some checkpatch warnings that I purposely haven't fixed: * In #5, there's a checkpatch.pl complaint about same-line struct braces. I've left that in to match the rest of the file, but I can also fix all of them if that would be better. * In #10, there's a checkpatch.pl complaint about a split printk format string, but that was there before and I don't see a way to make it a lot cleaner, so I'm leaving it alone. * In #13, there's two checkpatch.pl complains. One is about block comments that is bogus, and one is about long lines but there's more of those so I think it's OK. Thanks to everyone who looked at v2! Changes since v2 (<1441832902-28993-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>) * Patch set renamed. * #2 is rewritten to use sys_ni.c instead of an #ifdef * #3, #6, #8, #9, #10, and #11 no longer use "#ifdef __KERNEL__" but have instead moved the offending lines to the correct, kernel-only files. * #4 has been rewritten to always define MAP_UNINITIALIZED to non-zero, rather than defining it to zero when in userspace. * #5 got a whole lot longer -- rather than just always hiding these fields from userspace, there is now a second "struct elf_fdpic_prstatus" structure. This should allow userspace to parse core dumps correctly. * Rebased onto 9c488de24f7264f08d341024bffdd637b4d04c96. Changes since v1 (<1441152610-22566-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>) * All patches but #1 were added. ^ permalink raw reply [flat|nested] 327+ messages in thread
* [PATCH v3] Remove #ifdef CONFIG_* from all userspace headers [not found] ` <1441832902-28993-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org> ` (3 preceding siblings ...) 2015-09-14 22:50 ` [PATCH v3] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 4 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: arnd-r2nGTMty4D4, dhowells-H+wXaHxf7aLQT0dZR+AlfA Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn, ast-uqk4Ao+rVK5Wk0Htik3J/w, aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, aarcange-H+wXaHxf7aLQT0dZR+AlfA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, luto-DgEjT+Ai2ygdnm+yROfE0A, acme-DgEjT+Ai2ygdnm+yROfE0A, bhe-H+wXaHxf7aLQT0dZR+AlfA, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, chris-YvXeqwSYzG2sTnJN9+BGXg, dave-gkUM19QKKo4, dyoung-H+wXaHxf7aLQT0dZR+AlfA, drysdale-hpIqsD4AKlfQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, ebiederm-aS9lmoZGLiVWk0Htik3J/w, geoff-wEGCiKHe2LqWVfeAwA7xHQ, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-DgEjT+Ai2ygdnm+yROfE0A, iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w, jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w, paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, vgoyal-H+wXaHxf7aLQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A This patch set used to be called "[PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h". This is version 3 of the patch set. I think things are kind of cleaning up, but there's still some questions I have: * #4 might be dangerous, but I think this is the best way to do it because otherwise arch maintainers will have to #define this to something. Since Xtensa already had exactly the same bug as the asm-generic header did, I think it'd be best to avoid those if possible. I'm OK changing this to define the value to 0 by default (though thinking now, I think it'd be better to not define it by default), since most kernels aren't going to have MAP_UNINITIALIZED do anything anyway. * #5 is big and I don't really understand what's going on, so it's probably broken somewhere. Also, there's some checkpatch warnings that I purposely haven't fixed: * In #5, there's a checkpatch.pl complaint about same-line struct braces. I've left that in to match the rest of the file, but I can also fix all of them if that would be better. * In #10, there's a checkpatch.pl complaint about a split printk format string, but that was there before and I don't see a way to make it a lot cleaner, so I'm leaving it alone. * In #13, there's two checkpatch.pl complains. One is about block comments that is bogus, and one is about long lines but there's more of those so I think it's OK. Thanks to everyone who looked at v2! Changes since v2 (<1441832902-28993-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>) * Patch set renamed. * #2 is rewritten to use sys_ni.c instead of an #ifdef * #3, #6, #8, #9, #10, and #11 no longer use "#ifdef __KERNEL__" but have instead moved the offending lines to the correct, kernel-only files. * #4 has been rewritten to always define MAP_UNINITIALIZED to non-zero, rather than defining it to zero when in userspace. * #5 got a whole lot longer -- rather than just always hiding these fields from userspace, there is now a second "struct elf_fdpic_prstatus" structure. This should allow userspace to parse core dumps correctly. * Rebased onto 9c488de24f7264f08d341024bffdd637b4d04c96. Changes since v1 (<1441152610-22566-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>) * All patches but #1 were added. ^ permalink raw reply [flat|nested] 327+ messages in thread
[parent not found: <18147.1441883729-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>]
* Re: [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h [not found] ` <18147.1441883729-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org> @ 2015-09-10 11:18 ` David Howells 2015-09-10 11:18 ` David Howells 2015-09-14 22:50 ` Palmer Dabbelt 0 siblings, 2 replies; 327+ messages in thread From: David Howells @ 2015-09-10 11:18 UTC (permalink / raw) To: Palmer Dabbelt Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA, arnd-r2nGTMty4D4, 3chas3-Re5JQEeQqe8AvxtiuMwx3w, hpa-YMNOUZJC4hwAvxtiuMwx3w, mingo-H+wXaHxf7aLQT0dZR+AlfA, plagnioj-sclMFOaUSTBWk0Htik3J/w, jikos-DgEjT+Ai2ygdnm+yROfE0A, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-arch-u79uwXL29TY76Z2rM5mHXA, linux-atm-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, linux-fbdev-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, netdev-u79uwXL29TY76Z2rM5mHXA, tglx-hfZtesqFncYOwBW4kG4KsQ, tomi.valkeinen-l0cyMroinI0, x86-DgEjT+Ai2ygdnm+yROfE0A David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote: > Rather than iterating through all the rest of your patches and saying the same > thing, if there's something in a UAPI header that needs wrapping in __KERNEL__ > to exclude it from userspace's use, then it should be transferred to the > non-UAPI variant of that header (which should #include the UAPI variant). I should mention that there is the odd case where this is difficult to achieve. See include/uapi/linux/acct.h for an example... David ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-09-10 11:18 ` [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h David Howells @ 2015-09-10 11:18 ` David Howells 2015-09-14 22:50 ` Palmer Dabbelt 1 sibling, 0 replies; 327+ messages in thread From: David Howells @ 2015-09-10 11:18 UTC (permalink / raw) To: Palmer Dabbelt Cc: dhowells, arnd, 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86 David Howells <dhowells@redhat.com> wrote: > Rather than iterating through all the rest of your patches and saying the same > thing, if there's something in a UAPI header that needs wrapping in __KERNEL__ > to exclude it from userspace's use, then it should be transferred to the > non-UAPI variant of that header (which should #include the UAPI variant). I should mention that there is the odd case where this is difficult to achieve. See include/uapi/linux/acct.h for an example... David ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-09-10 11:18 ` [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h David Howells 2015-09-10 11:18 ` David Howells @ 2015-09-14 22:50 ` Palmer Dabbelt 2015-09-14 22:50 ` Palmer Dabbelt 1 sibling, 1 reply; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) Cc: dhowells, arnd, 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86 On Thu, 10 Sep 2015 04:18:05 PDT (-0700), dhowells@redhat.com wrote: > David Howells <dhowells@redhat.com> wrote: > >> Rather than iterating through all the rest of your patches and saying the same >> thing, if there's something in a UAPI header that needs wrapping in __KERNEL__ >> to exclude it from userspace's use, then it should be transferred to the >> non-UAPI variant of that header (which should #include the UAPI variant). > > I should mention that there is the odd case where this is difficult to > achieve. See include/uapi/linux/acct.h for an example... OK, sorry about that. I'm submitting a v3 that should fix these problems. ^ permalink raw reply [flat|nested] 327+ messages in thread
* Re: [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h 2015-09-14 22:50 ` Palmer Dabbelt @ 2015-09-14 22:50 ` Palmer Dabbelt 0 siblings, 0 replies; 327+ messages in thread From: Palmer Dabbelt @ 2015-09-14 22:50 UTC (permalink / raw) To: dhowells Cc: arnd, 3chas3, hpa, mingo, plagnioj, jikos, linux-api, linux-arch, linux-atm-general, linux-fbdev, linux-kernel, netdev, tglx, tomi.valkeinen, x86 On Thu, 10 Sep 2015 04:18:05 PDT (-0700), dhowells@redhat.com wrote: > David Howells <dhowells@redhat.com> wrote: > >> Rather than iterating through all the rest of your patches and saying the same >> thing, if there's something in a UAPI header that needs wrapping in __KERNEL__ >> to exclude it from userspace's use, then it should be transferred to the >> non-UAPI variant of that header (which should #include the UAPI variant). > > I should mention that there is the odd case where this is difficult to > achieve. See include/uapi/linux/acct.h for an example... OK, sorry about that. I'm submitting a v3 that should fix these problems. ^ permalink raw reply [flat|nested] 327+ messages in thread
end of thread, other threads:[~2023-02-10 15:35 UTC | newest]
Thread overview: 327+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-02 0:10 [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt
2015-09-07 13:16 ` Arnd Bergmann
2015-09-07 13:35 ` Palmer Dabbelt
2015-09-07 13:59 ` Arnd Bergmann
2015-09-09 21:08 ` Palmer Dabbelt
2015-09-09 21:08 ` [PATCH 01/13] " Palmer Dabbelt
2015-09-09 21:08 ` Palmer Dabbelt
2015-09-09 21:08 ` [PATCH 03/13] Hide COMPAT_ATM_ADDPARTY behind #ifdef __KERNEL__ Palmer Dabbelt
2015-09-09 21:08 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt
2015-09-09 21:08 ` Palmer Dabbelt
2015-09-09 21:08 ` [PATCH 05/13] Hide some of "struct elf_prstatus" behind #ifdef __KERNEL__ Palmer Dabbelt
2015-09-09 21:08 ` Palmer Dabbelt
2015-09-09 21:08 ` [PATCH 06/13] Hide ep_take_care_of_epollwakeup() " Palmer Dabbelt
2015-09-09 21:08 ` Palmer Dabbelt
2015-09-09 21:08 ` [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt
2015-09-09 21:08 ` Palmer Dabbelt
2015-09-09 21:08 ` [PATCH 08/13] Hide MAX_SHARED_LIBS behind #ifdef __KERNEL__ Palmer Dabbelt
2015-09-09 21:08 ` Palmer Dabbelt
2015-09-09 21:08 ` [PATCH 09/13] Hide bp_type_idx " Palmer Dabbelt
2015-09-10 11:11 ` David Howells
2015-09-09 21:08 ` [PATCH 10/13] Hide USE_WCACHING " Palmer Dabbelt
2015-09-09 21:08 ` Palmer Dabbelt
2015-09-10 11:12 ` David Howells
2015-09-09 21:08 ` [PATCH 11/13] Hide MAX_RAW_MINORS " Palmer Dabbelt
2015-09-09 21:08 ` Palmer Dabbelt
2015-09-10 11:13 ` David Howells
2015-09-10 11:13 ` David Howells
2015-09-09 21:08 ` [PATCH 12/13] Hide AT_VECTOR_SIZE_ARCH " Palmer Dabbelt
2015-09-09 21:08 ` Palmer Dabbelt
2015-09-10 11:14 ` David Howells
2015-09-10 11:14 ` David Howells
2015-09-14 22:50 ` [PATCH v3] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
[not found] ` <1442271047-4908-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>
2015-09-14 22:50 ` [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-17 9:57 ` David Howells
2015-09-17 9:57 ` David Howells
2015-09-17 20:53 ` Palmer Dabbelt
2015-09-17 20:53 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 11/13] Always define MAX_RAW_MINORS as 65535 in userspace Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-15 0:23 ` Kirill A. Shutemov
2015-09-15 0:23 ` Kirill A. Shutemov
2015-09-15 0:52 ` Palmer Dabbelt
2015-09-15 0:52 ` Palmer Dabbelt
2015-09-15 0:52 ` Palmer Dabbelt
2015-09-15 0:52 ` Palmer Dabbelt
[not found] ` <20150915002358.GA12618-nhfs4B5ZimeFUdmeq17FyvUpdFzICT1y@public.gmane.org>
2015-09-15 0:52 ` Palmer Dabbelt
2015-09-15 0:52 ` Palmer Dabbelt
2015-09-15 5:19 ` Josh Triplett
2015-09-15 5:19 ` Josh Triplett
2015-09-15 9:42 ` Kirill A. Shutemov
2015-09-15 9:42 ` Kirill A. Shutemov
2015-09-15 14:07 ` Josh Triplett
2015-09-15 14:07 ` Josh Triplett
2015-09-17 10:13 ` David Howells
2015-09-17 10:13 ` David Howells
2015-09-14 22:50 ` [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-17 10:17 ` David Howells
2015-09-14 22:50 ` [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-15 8:06 ` Peter Zijlstra
2015-09-15 8:06 ` Peter Zijlstra
2015-09-15 18:40 ` Palmer Dabbelt
2015-09-15 18:40 ` Palmer Dabbelt
2015-09-15 19:39 ` Peter Zijlstra
[not found] ` <20150915193910.GH16853-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2015-09-17 3:56 ` Palmer Dabbelt
2015-09-17 3:56 ` Palmer Dabbelt
2015-09-15 21:15 ` Arnd Bergmann
2015-09-17 10:28 ` David Howells
2015-09-17 10:28 ` David Howells
2015-09-24 12:15 ` Frederic Weisbecker
2015-09-24 12:15 ` Frederic Weisbecker
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 11/13] Always define MAX_RAW_MINORS as 65535 in userspace Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
[not found] ` <1442271047-4908-12-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>
2015-09-15 20:42 ` H. Peter Anvin
2015-09-15 20:42 ` H. Peter Anvin
2015-09-17 3:08 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH v4] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt
[not found] ` <1446579994-9937-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>
2015-11-03 19:46 ` [PATCH 01/13] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 02/13] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 11/13] Always define MAX_RAW_MINORS as 2**20 in userspace Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-10 1:30 ` [PATCH v5] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 03/13] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 04/13] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 05/13] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 06/13] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 07/13] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 08/13] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 09/13] Move bp_type_idx to kernel/event/hw_breakpoint.c Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
[not found] ` <1446579994-9937-10-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>
2015-11-03 21:28 ` kbuild test robot
2015-11-03 21:28 ` kbuild test robot
2015-11-03 21:29 ` kbuild test robot
2015-11-03 21:29 ` kbuild test robot
2015-11-04 11:41 ` Peter Zijlstra
[not found] ` <20151104114106.GJ17308-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2015-11-04 12:21 ` Peter Zijlstra
2015-11-04 12:21 ` Peter Zijlstra
[not found] ` <20151104122151.GB11639-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2015-11-07 6:44 ` Palmer Dabbelt
2015-11-07 6:44 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 10/13] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 11/13] Always define MAX_RAW_MINORS as 2**20 in userspace Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 20:11 ` kbuild test robot
2015-11-03 20:11 ` kbuild test robot
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 12/13] Remove AT_VECTOR_SIZE_ARCH on x86 Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
2015-11-03 20:25 ` kbuild test robot
2015-11-03 20:25 ` kbuild test robot
2015-11-03 20:26 ` kbuild test robot
2015-11-03 20:26 ` kbuild test robot
2015-11-10 1:30 ` [PATCH v5] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt
2015-11-10 1:30 ` Palmer Dabbelt
2015-11-10 1:30 ` Palmer Dabbelt
2015-11-10 1:30 ` [PATCH 01/14] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt
2015-11-10 1:30 ` Palmer Dabbelt
2015-11-10 1:30 ` Palmer Dabbelt
2015-11-10 1:30 ` [PATCH 02/14] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU Palmer Dabbelt
2015-11-10 1:30 ` Palmer Dabbelt
2015-11-10 1:30 ` Palmer Dabbelt
2015-11-10 1:30 ` Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 03/14] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2023-02-10 14:55 ` Thomas Huth
2023-02-10 15:10 ` Arnd Bergmann
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 04/14] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 05/14] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 06/14] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2023-02-10 14:45 ` Thomas Huth
2015-11-10 1:31 ` [PATCH 07/14] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 08/14] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 09/14] Move bp_type_idx to include/linux/hw_breakpoint.h Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 10/14] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 11/14] Always define MAX_RAW_MINORS as 2**20 in userspace Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
[not found] ` <1447119071-19392-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>
2015-11-10 1:30 ` [PATCH 01/14] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h Palmer Dabbelt
2015-11-10 1:30 ` [PATCH 02/14] Use sys_ni.c instead of #ifdef to disable fork on CONFIG_NOMMU Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 03/14] Move COMPAT_ATM_ADDPARTY to net/atm/svc.c Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 04/14] Always expose MAP_UNINITIALIZED to userspace Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 05/14] Split FDPIC "struct elf_prstatus" to "struct elf_fdpic_prstatus" Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 06/14] Move ep_take_care_of_epollwakeup() to fs/eventpoll.c Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 07/14] Make FB_BACKLIGHT_{LEVELS,MAX} always visible Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 08/14] Move MAX_SHARED_LIBS to fs/binfmt_flat.c Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 09/14] Move bp_type_idx to include/linux/hw_breakpoint.h Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 10/14] Move USE_WCACHING to drivers/block/pktcdvd.c Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 11/14] Always define MAX_RAW_MINORS as 2**20 in userspace Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 12/14] Remove AT_VECTOR_SIZE_ARCH on x86 Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 13/14] Hide CONFIG_PHY_RAM_BASE_ADDRESS from userspace Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 14/14] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 12/14] Remove AT_VECTOR_SIZE_ARCH on x86 Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 13/14] Hide CONFIG_PHY_RAM_BASE_ADDRESS from userspace Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` [PATCH 14/14] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:31 ` Palmer Dabbelt
2015-11-10 1:30 ` [PATCH v5] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt
2015-11-03 19:46 ` [PATCH v4] " Palmer Dabbelt
2015-11-03 19:46 ` Palmer Dabbelt
[not found] ` <1441832902-28993-1-git-send-email-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>
2015-09-09 21:08 ` [PATCH 02/13] Always expose __SYSCALL(... fork ...) Palmer Dabbelt
2015-09-09 21:08 ` Palmer Dabbelt
2015-09-09 21:08 ` [PATCH 13/13] Re-enable and clean up "check_config()" in headers_check.pl Palmer Dabbelt
2015-09-09 21:08 ` Palmer Dabbelt
2015-09-10 11:15 ` [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h David Howells
2015-09-10 11:15 ` David Howells
2015-09-14 22:50 ` [PATCH v3] Remove #ifdef CONFIG_* from all userspace headers Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
[not found] ` <18147.1441883729-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2015-09-10 11:18 ` [PATCH] Remove #ifdef CONFIG_64BIT from all asm-generic/fcntl.h David Howells
2015-09-10 11:18 ` David Howells
2015-09-14 22:50 ` Palmer Dabbelt
2015-09-14 22:50 ` Palmer Dabbelt
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox