* [PATCH] x86/EFI: properly init-annotate BGRT code
@ 2012-11-23 16:30 Jan Beulich
2013-01-24 20:34 ` [tip:x86/debug] x86/EFI: Properly " tip-bot for Jan Beulich
0 siblings, 1 reply; 7+ messages in thread
From: Jan Beulich @ 2012-11-23 16:30 UTC (permalink / raw)
To: mjg; +Cc: mingo, tglx, linux-kernel, hpa
These items are only ever referenced from initialization code.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
arch/x86/platform/efi/efi-bgrt.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
--- 3.7-rc6/arch/x86/platform/efi/efi-bgrt.c
+++ 3.7-rc6-x86-BGRT-init/arch/x86/platform/efi/efi-bgrt.c
@@ -11,20 +11,21 @@
* published by the Free Software Foundation.
*/
#include <linux/kernel.h>
+#include <linux/init.h>
#include <linux/acpi.h>
#include <linux/efi.h>
#include <linux/efi-bgrt.h>
struct acpi_table_bgrt *bgrt_tab;
-void *bgrt_image;
-size_t bgrt_image_size;
+void *__initdata bgrt_image;
+size_t __initdata bgrt_image_size;
struct bmp_header {
u16 id;
u32 size;
} __packed;
-void efi_bgrt_init(void)
+void __init efi_bgrt_init(void)
{
acpi_status status;
void __iomem *image;
^ permalink raw reply [flat|nested] 7+ messages in thread* [tip:x86/debug] x86/EFI: Properly init-annotate BGRT code 2012-11-23 16:30 [PATCH] x86/EFI: properly init-annotate BGRT code Jan Beulich @ 2013-01-24 20:34 ` tip-bot for Jan Beulich 2013-01-24 22:28 ` Josh Triplett 0 siblings, 1 reply; 7+ messages in thread From: tip-bot for Jan Beulich @ 2013-01-24 20:34 UTC (permalink / raw) To: linux-tip-commits; +Cc: linux-kernel, mjg, hpa, mingo, jbeulich, JBeulich, tglx Commit-ID: 13f0e4d2b9e2209f13d5a4122478eb79e6136870 Gitweb: http://git.kernel.org/tip/13f0e4d2b9e2209f13d5a4122478eb79e6136870 Author: Jan Beulich <JBeulich@suse.com> AuthorDate: Fri, 23 Nov 2012 16:30:07 +0000 Committer: Ingo Molnar <mingo@kernel.org> CommitDate: Thu, 24 Jan 2013 17:12:18 +0100 x86/EFI: Properly init-annotate BGRT code These items are only ever referenced from initialization code. Signed-off-by: Jan Beulich <jbeulich@suse.com> Cc: <mjg@redhat.com> Link: http://lkml.kernel.org/r/50AFB29F02000078000AAE8E@nat28.tlf.novell.com Signed-off-by: Ingo Molnar <mingo@kernel.org> --- arch/x86/platform/efi/efi-bgrt.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/arch/x86/platform/efi/efi-bgrt.c b/arch/x86/platform/efi/efi-bgrt.c index d9c1b95..7145ec6 100644 --- a/arch/x86/platform/efi/efi-bgrt.c +++ b/arch/x86/platform/efi/efi-bgrt.c @@ -11,20 +11,21 @@ * published by the Free Software Foundation. */ #include <linux/kernel.h> +#include <linux/init.h> #include <linux/acpi.h> #include <linux/efi.h> #include <linux/efi-bgrt.h> struct acpi_table_bgrt *bgrt_tab; -void *bgrt_image; -size_t bgrt_image_size; +void *__initdata bgrt_image; +size_t __initdata bgrt_image_size; struct bmp_header { u16 id; u32 size; } __packed; -void efi_bgrt_init(void) +void __init efi_bgrt_init(void) { acpi_status status; void __iomem *image; ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [tip:x86/debug] x86/EFI: Properly init-annotate BGRT code 2013-01-24 20:34 ` [tip:x86/debug] x86/EFI: Properly " tip-bot for Jan Beulich @ 2013-01-24 22:28 ` Josh Triplett 2013-01-25 7:45 ` Jan Beulich 0 siblings, 1 reply; 7+ messages in thread From: Josh Triplett @ 2013-01-24 22:28 UTC (permalink / raw) To: mingo, hpa, mjg, linux-kernel, JBeulich, tglx On Thu, Jan 24, 2013 at 12:34:21PM -0800, tip-bot for Jan Beulich wrote: > Commit-ID: 13f0e4d2b9e2209f13d5a4122478eb79e6136870 > Gitweb: http://git.kernel.org/tip/13f0e4d2b9e2209f13d5a4122478eb79e6136870 > Author: Jan Beulich <JBeulich@suse.com> > AuthorDate: Fri, 23 Nov 2012 16:30:07 +0000 > Committer: Ingo Molnar <mingo@kernel.org> > CommitDate: Thu, 24 Jan 2013 17:12:18 +0100 > > x86/EFI: Properly init-annotate BGRT code > > These items are only ever referenced from initialization code. Not true, and this patch will break the BGRT code. bgrt_init, which does indeed have an __init annotation, stores bgrt_image and bgrt_image_size into the .private and .size fields of a sysfs bin_attribute, which does *not* have an __initdata annotation, and which will get read whenever the user reads the corresponding sysfs attribute. > Signed-off-by: Jan Beulich <jbeulich@suse.com> > Cc: <mjg@redhat.com> > Link: http://lkml.kernel.org/r/50AFB29F02000078000AAE8E@nat28.tlf.novell.com > Signed-off-by: Ingo Molnar <mingo@kernel.org> > --- > arch/x86/platform/efi/efi-bgrt.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/platform/efi/efi-bgrt.c b/arch/x86/platform/efi/efi-bgrt.c > index d9c1b95..7145ec6 100644 > --- a/arch/x86/platform/efi/efi-bgrt.c > +++ b/arch/x86/platform/efi/efi-bgrt.c > @@ -11,20 +11,21 @@ > * published by the Free Software Foundation. > */ > #include <linux/kernel.h> > +#include <linux/init.h> > #include <linux/acpi.h> > #include <linux/efi.h> > #include <linux/efi-bgrt.h> > > struct acpi_table_bgrt *bgrt_tab; > -void *bgrt_image; > -size_t bgrt_image_size; > +void *__initdata bgrt_image; > +size_t __initdata bgrt_image_size; > > struct bmp_header { > u16 id; > u32 size; > } __packed; > > -void efi_bgrt_init(void) > +void __init efi_bgrt_init(void) > { > acpi_status status; > void __iomem *image; > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [tip:x86/debug] x86/EFI: Properly init-annotate BGRT code 2013-01-24 22:28 ` Josh Triplett @ 2013-01-25 7:45 ` Jan Beulich 2013-01-25 16:03 ` Josh Triplett 0 siblings, 1 reply; 7+ messages in thread From: Jan Beulich @ 2013-01-25 7:45 UTC (permalink / raw) To: Josh Triplett; +Cc: mingo, tglx, mjg, linux-kernel, hpa >>> On 24.01.13 at 23:28, Josh Triplett <josh@joshtriplett.org> wrote: > On Thu, Jan 24, 2013 at 12:34:21PM -0800, tip-bot for Jan Beulich wrote: >> Commit-ID: 13f0e4d2b9e2209f13d5a4122478eb79e6136870 >> Gitweb: > http://git.kernel.org/tip/13f0e4d2b9e2209f13d5a4122478eb79e6136870 >> Author: Jan Beulich <JBeulich@suse.com> >> AuthorDate: Fri, 23 Nov 2012 16:30:07 +0000 >> Committer: Ingo Molnar <mingo@kernel.org> >> CommitDate: Thu, 24 Jan 2013 17:12:18 +0100 >> >> x86/EFI: Properly init-annotate BGRT code >> >> These items are only ever referenced from initialization code. > > Not true, and this patch will break the BGRT code. bgrt_init, which > does indeed have an __init annotation, stores bgrt_image and > bgrt_image_size into the .private and .size fields of a sysfs > bin_attribute, which does *not* have an __initdata annotation, and which > will get read whenever the user reads the corresponding sysfs attribute. Copying init-only data into a sysfs structure is no problem at all - that structure obviously is non-__initdata and hence can be read at any time. It was a different thing if .private and/or .size stored _pointers_ to one of the two variables in question. Jan ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [tip:x86/debug] x86/EFI: Properly init-annotate BGRT code 2013-01-25 7:45 ` Jan Beulich @ 2013-01-25 16:03 ` Josh Triplett 2013-01-25 18:36 ` Ingo Molnar 0 siblings, 1 reply; 7+ messages in thread From: Josh Triplett @ 2013-01-25 16:03 UTC (permalink / raw) To: Jan Beulich; +Cc: mingo, tglx, mjg, linux-kernel, hpa On Fri, Jan 25, 2013 at 07:45:42AM +0000, Jan Beulich wrote: > >>> On 24.01.13 at 23:28, Josh Triplett <josh@joshtriplett.org> wrote: > > On Thu, Jan 24, 2013 at 12:34:21PM -0800, tip-bot for Jan Beulich wrote: > >> Commit-ID: 13f0e4d2b9e2209f13d5a4122478eb79e6136870 > >> Gitweb: > > http://git.kernel.org/tip/13f0e4d2b9e2209f13d5a4122478eb79e6136870 > >> Author: Jan Beulich <JBeulich@suse.com> > >> AuthorDate: Fri, 23 Nov 2012 16:30:07 +0000 > >> Committer: Ingo Molnar <mingo@kernel.org> > >> CommitDate: Thu, 24 Jan 2013 17:12:18 +0100 > >> > >> x86/EFI: Properly init-annotate BGRT code > >> > >> These items are only ever referenced from initialization code. > > > > Not true, and this patch will break the BGRT code. bgrt_init, which > > does indeed have an __init annotation, stores bgrt_image and > > bgrt_image_size into the .private and .size fields of a sysfs > > bin_attribute, which does *not* have an __initdata annotation, and which > > will get read whenever the user reads the corresponding sysfs attribute. > > Copying init-only data into a sysfs structure is no problem at all > - that structure obviously is non-__initdata and hence can be > read at any time. It was a different thing if .private and/or .size > stored _pointers_ to one of the two variables in question. Ah, I see; the data itself gets kmalloc'd, and you just want to discard the original pointer and size. Fair enough. Sorry for the false alarm. - Josh Triplett ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [tip:x86/debug] x86/EFI: Properly init-annotate BGRT code 2013-01-25 16:03 ` Josh Triplett @ 2013-01-25 18:36 ` Ingo Molnar 2013-01-25 19:18 ` Josh Triplett 0 siblings, 1 reply; 7+ messages in thread From: Ingo Molnar @ 2013-01-25 18:36 UTC (permalink / raw) To: Josh Triplett; +Cc: Jan Beulich, tglx, mjg, linux-kernel, hpa * Josh Triplett <josh@joshtriplett.org> wrote: > On Fri, Jan 25, 2013 at 07:45:42AM +0000, Jan Beulich wrote: > > >>> On 24.01.13 at 23:28, Josh Triplett <josh@joshtriplett.org> wrote: > > > On Thu, Jan 24, 2013 at 12:34:21PM -0800, tip-bot for Jan Beulich wrote: > > >> Commit-ID: 13f0e4d2b9e2209f13d5a4122478eb79e6136870 > > >> Gitweb: > > > http://git.kernel.org/tip/13f0e4d2b9e2209f13d5a4122478eb79e6136870 > > >> Author: Jan Beulich <JBeulich@suse.com> > > >> AuthorDate: Fri, 23 Nov 2012 16:30:07 +0000 > > >> Committer: Ingo Molnar <mingo@kernel.org> > > >> CommitDate: Thu, 24 Jan 2013 17:12:18 +0100 > > >> > > >> x86/EFI: Properly init-annotate BGRT code > > >> > > >> These items are only ever referenced from initialization code. > > > > > > Not true, and this patch will break the BGRT code. bgrt_init, which > > > does indeed have an __init annotation, stores bgrt_image and > > > bgrt_image_size into the .private and .size fields of a sysfs > > > bin_attribute, which does *not* have an __initdata annotation, and which > > > will get read whenever the user reads the corresponding sysfs attribute. > > > > Copying init-only data into a sysfs structure is no problem at all > > - that structure obviously is non-__initdata and hence can be > > read at any time. It was a different thing if .private and/or .size > > stored _pointers_ to one of the two variables in question. > > Ah, I see; the data itself gets kmalloc'd, and you just want > to discard the original pointer and size. Fair enough. Sorry > for the false alarm. Ok - thanks for the clarification - I'll keep the commit as-is, agreed? Thanks, Ingo ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [tip:x86/debug] x86/EFI: Properly init-annotate BGRT code 2013-01-25 18:36 ` Ingo Molnar @ 2013-01-25 19:18 ` Josh Triplett 0 siblings, 0 replies; 7+ messages in thread From: Josh Triplett @ 2013-01-25 19:18 UTC (permalink / raw) To: Ingo Molnar; +Cc: Jan Beulich, tglx, mjg, linux-kernel, hpa On Fri, Jan 25, 2013 at 07:36:57PM +0100, Ingo Molnar wrote: > > * Josh Triplett <josh@joshtriplett.org> wrote: > > > On Fri, Jan 25, 2013 at 07:45:42AM +0000, Jan Beulich wrote: > > > >>> On 24.01.13 at 23:28, Josh Triplett <josh@joshtriplett.org> wrote: > > > > On Thu, Jan 24, 2013 at 12:34:21PM -0800, tip-bot for Jan Beulich wrote: > > > >> Commit-ID: 13f0e4d2b9e2209f13d5a4122478eb79e6136870 > > > >> Gitweb: > > > > http://git.kernel.org/tip/13f0e4d2b9e2209f13d5a4122478eb79e6136870 > > > >> Author: Jan Beulich <JBeulich@suse.com> > > > >> AuthorDate: Fri, 23 Nov 2012 16:30:07 +0000 > > > >> Committer: Ingo Molnar <mingo@kernel.org> > > > >> CommitDate: Thu, 24 Jan 2013 17:12:18 +0100 > > > >> > > > >> x86/EFI: Properly init-annotate BGRT code > > > >> > > > >> These items are only ever referenced from initialization code. > > > > > > > > Not true, and this patch will break the BGRT code. bgrt_init, which > > > > does indeed have an __init annotation, stores bgrt_image and > > > > bgrt_image_size into the .private and .size fields of a sysfs > > > > bin_attribute, which does *not* have an __initdata annotation, and which > > > > will get read whenever the user reads the corresponding sysfs attribute. > > > > > > Copying init-only data into a sysfs structure is no problem at all > > > - that structure obviously is non-__initdata and hence can be > > > read at any time. It was a different thing if .private and/or .size > > > stored _pointers_ to one of the two variables in question. > > > > Ah, I see; the data itself gets kmalloc'd, and you just want > > to discard the original pointer and size. Fair enough. Sorry > > for the false alarm. > > Ok - thanks for the clarification - I'll keep the commit as-is, > agreed? > > Thanks, Yeah. In fact: Reviewed-by: Josh Triplett <josh@joshtriplett.org> ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-01-25 19:18 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-11-23 16:30 [PATCH] x86/EFI: properly init-annotate BGRT code Jan Beulich 2013-01-24 20:34 ` [tip:x86/debug] x86/EFI: Properly " tip-bot for Jan Beulich 2013-01-24 22:28 ` Josh Triplett 2013-01-25 7:45 ` Jan Beulich 2013-01-25 16:03 ` Josh Triplett 2013-01-25 18:36 ` Ingo Molnar 2013-01-25 19:18 ` Josh Triplett
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox