* [PATCH 33/34] __initdata cleanup - serial [not found] <200702091711.34441.alon.barlev@gmail.com> @ 2007-02-09 15:35 ` Alon Bar-Lev 2007-02-09 17:00 ` [PATCH 00/34] __initdata cleanup Heiko Carstens 1 sibling, 0 replies; 5+ messages in thread From: Alon Bar-Lev @ 2007-02-09 15:35 UTC (permalink / raw) To: linux-kernel, akpm, bwalle, rmk+lkml, linux-serial Trivial. Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com> Signed-off-by: Bernhard Walle <bwalle@suse.de> --- diff -urNp linux-2.6.20-rc6-mm3.org/drivers/serial/8250_early.c linux-2.6.20-rc6-mm3/drivers/serial/8250_early.c --- linux-2.6.20-rc6-mm3.org/drivers/serial/8250_early.c 2007-01-25 04:19:28.000000000 +0200 +++ linux-2.6.20-rc6-mm3/drivers/serial/8250_early.c 2007-01-31 22:19:30.000000000 +0200 @@ -41,8 +41,8 @@ struct early_uart_device { unsigned int baud; }; -static struct early_uart_device early_device __initdata; -static int early_uart_registered __initdata; +static struct early_uart_device early_device __initdata = {{{{0}}}}; +static int early_uart_registered __initdata = 0; static unsigned int __init serial_in(struct uart_port *port, int offset) { ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 00/34] __initdata cleanup [not found] <200702091711.34441.alon.barlev@gmail.com> 2007-02-09 15:35 ` [PATCH 33/34] __initdata cleanup - serial Alon Bar-Lev @ 2007-02-09 17:00 ` Heiko Carstens 2007-02-09 17:25 ` Alon Bar-Lev 2007-02-09 17:37 ` Roman Zippel 1 sibling, 2 replies; 5+ messages in thread From: Heiko Carstens @ 2007-02-09 17:00 UTC (permalink / raw) To: Alon Bar-Lev Cc: linux-kernel, akpm, bwalle, rmk+lkml, spyro, davej, hpa, Riley, tony.luck, geert, zippel, ralf, matthew, grundler, kyle, paulus, schwidefsky, lethal, davem, uclinux-v850, ak, vojtech, chris, len.brown, lenb, herbert, viro, bzolnier, dmitry.torokhov, dtor, jgarzik, linux-mm, dwmw2, patrick, kuznet, pekkas, jmorris, philb, tim, andrea, ambx1, James.Bottomley, linux-serial On Fri, Feb 09, 2007 at 05:11:32PM +0200, Alon Bar-Lev wrote: > > Follow-up Russell King comment at http://lkml.org/lkml/2007/1/22/267 > > All __initdata variables should be initialized so they won't end up > in BSS. > > There is no dependency between patches or even hunks. > > Some architecture patches are untested, this is documented as "UNTESTED" > > Against 2.6.20-rc6-mm3. To quote parts of that: Anyway, here's what the GCC manual has to say about use of __attribute__((section)) on variables: `section ("SECTION-NAME")' Use the `section' attribute with an _initialized_ definition of a _global_ variable, as shown in the example. GCC issues a warning and otherwise ignores the `section' attribute in uninitialized variable declarations. You may only use the `section' attribute with a fully initialized global definition because of the way linkers work. The linker requires each object be defined once, with the exception that uninitialized variables tentatively go in the `common' (or `bss') section and can be multiply "defined". You can force a variable to be initialized with the `-fno-common' flag or the `nocommon' attribute. And the top-level Makefile has: CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ -fno-strict-aliasing -fno-common Note the -fno-common. And indeed all the __initdata annotated local and global variables on s390 are in the init.data section. So I'm wondering what this patch series is about. Or I must have missed something. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 00/34] __initdata cleanup 2007-02-09 17:00 ` [PATCH 00/34] __initdata cleanup Heiko Carstens @ 2007-02-09 17:25 ` Alon Bar-Lev 2007-02-09 17:37 ` Roman Zippel 1 sibling, 0 replies; 5+ messages in thread From: Alon Bar-Lev @ 2007-02-09 17:25 UTC (permalink / raw) To: Heiko Carstens Cc: linux-kernel, akpm, bwalle, rmk+lkml, spyro, davej, hpa, Riley, tony.luck, geert, zippel, ralf, matthew, grundler, kyle, paulus, schwidefsky, lethal, davem, uclinux-v850, ak, vojtech, chris, len.brown, lenb, herbert, viro, bzolnier, dmitry.torokhov, dtor, jgarzik, linux-mm, dwmw2, patrick, kuznet, pekkas, jmorris, philb, tim, andrea, ambx1, James.Bottomley, linux-serial On Friday 09 February 2007, Heiko Carstens wrote: > And the top-level Makefile has: > > CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ > -fno-strict-aliasing -fno-common > > Note the -fno-common. > > And indeed all the __initdata annotated local and global variables on > s390 are in the init.data section. So I'm wondering what this patch > series is about. Or I must have missed something. > Hmmm... You have a valid point! So it reduces the patch to the following. >From the previous discussion I was afraid that I added some invalid variables. Thanks! Best Regards, Alon Bar-Lev. --- diff -urNp linux-2.6.20-rc6-mm3.org/arch/x86_64/kernel/e820.c linux-2.6.20-rc6-mm3/arch/x86_64/kernel/e820.c --- linux-2.6.20-rc6-mm3.org/arch/x86_64/kernel/e820.c +++ linux-2.6.20-rc6-mm3/arch/x86_64/kernel/e820.c @@ -402,10 +402,10 @@ static int __init sanitize_e820_map(stru struct e820entry *pbios; /* pointer to original bios entry */ unsigned long long addr; /* address for this change point */ }; - static struct change_member change_point_list[2*E820MAX] __initdata; - static struct change_member *change_point[2*E820MAX] __initdata; - static struct e820entry *overlap_list[E820MAX] __initdata; - static struct e820entry new_bios[E820MAX] __initdata; + static struct change_member change_point_list[2*E820MAX] __initdata = {{0}}; + static struct change_member *change_point[2*E820MAX] __initdata = {0}; + static struct e820entry *overlap_list[E820MAX] __initdata = {0}; + static struct e820entry new_bios[E820MAX] __initdata = {{0}}; struct change_member *change_tmp; unsigned long current_type, last_type; unsigned long long last_addr; diff -urNp linux-2.6.20-rc6-mm3.org/fs/nfs/nfsroot.c linux-2.6.20-rc6-mm3/fs/nfs/nfsroot.c --- linux-2.6.20-rc6-mm3.org/fs/nfs/nfsroot.c 2007-01-25 04:19:28.000000000 +0200 +++ linux-2.6.20-rc6-mm3/fs/nfs/nfsroot.c 2007-01-31 22:19:30.000000000 +0200 @@ -289,7 +289,7 @@ static int __init root_nfs_parse(char *n */ static int __init root_nfs_name(char *name) { - static char buf[NFS_MAXPATHLEN] __initdata; + static char buf[NFS_MAXPATHLEN] __initdata = { 0, }; char *cp; /* Set some default values */ diff -urNp linux-2.6.20-rc6-mm3.org/init/main.c linux-2.6.20-rc6-mm3/init/main.c --- linux-2.6.20-rc6-mm3.org/init/main.c 2007-01-31 22:15:41.000000000 +0200 +++ linux-2.6.20-rc6-mm3/init/main.c 2007-01-31 22:19:30.000000000 +0200 @@ -470,7 +470,7 @@ static int __init do_early_param(char *p void __init parse_early_param(void) { static __initdata int done = 0; - static __initdata char tmp_cmdline[COMMAND_LINE_SIZE]; + static __initdata char tmp_cmdline[COMMAND_LINE_SIZE] = ""; if (done) return; diff -urNp linux-2.6.20-rc6-mm3.org/drivers/input/keyboard/amikbd.c linux-2.6.20-rc6-mm3/drivers/input/keyboard/amikbd.c --- linux-2.6.20-rc6-mm3.org/drivers/input/keyboard/amikbd.c 2007-01-25 04:19:28.000000000 +0200 +++ linux-2.6.20-rc6-mm3/drivers/input/keyboard/amikbd.c 2007-01-31 22:19:30.000000000 +0200 @@ -215,7 +215,7 @@ static int __init amikbd_init(void) set_bit(i, amikbd_dev->keybit); for (i = 0; i < MAX_NR_KEYMAPS; i++) { - static u_short temp_map[NR_KEYS] __initdata; + static u_short temp_map[NR_KEYS] __initdata = {0}; if (!key_maps[i]) continue; memset(temp_map, 0, sizeof(temp_map)); ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 00/34] __initdata cleanup 2007-02-09 17:00 ` [PATCH 00/34] __initdata cleanup Heiko Carstens 2007-02-09 17:25 ` Alon Bar-Lev @ 2007-02-09 17:37 ` Roman Zippel 2007-02-09 21:33 ` Andrew Morton 1 sibling, 1 reply; 5+ messages in thread From: Roman Zippel @ 2007-02-09 17:37 UTC (permalink / raw) To: Heiko Carstens Cc: Alon Bar-Lev, linux-kernel, akpm, bwalle, rmk+lkml, spyro, davej, hpa, Riley, tony.luck, geert, ralf, matthew, grundler, kyle, paulus, schwidefsky, lethal, davem, uclinux-v850, ak, vojtech, chris, len.brown, lenb, herbert, viro, bzolnier, dmitry.torokhov, dtor, jgarzik, linux-mm, dwmw2, patrick, kuznet, pekkas, jmorris, philb, tim, andrea, ambx1, James.Bottomley Hi, On Fri, 9 Feb 2007, Heiko Carstens wrote: > And indeed all the __initdata annotated local and global variables on > s390 are in the init.data section. So I'm wondering what this patch > series is about. Or I must have missed something. I think it reaches back to times when gcc 2.7.* was still supported, which does behave as described in the documentation. gcc 2.95 and newer don't require explicit initialization anymore, so this has become a non-issue. bye, Roman ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 00/34] __initdata cleanup 2007-02-09 17:37 ` Roman Zippel @ 2007-02-09 21:33 ` Andrew Morton 0 siblings, 0 replies; 5+ messages in thread From: Andrew Morton @ 2007-02-09 21:33 UTC (permalink / raw) To: Roman Zippel Cc: Heiko Carstens, Alon Bar-Lev, linux-kernel, bwalle, rmk+lkml, spyro, davej, hpa, Riley, tony.luck, geert, ralf, matthew, grundler, kyle, paulus, schwidefsky, lethal, davem, uclinux-v850, ak, vojtech, chris, len.brown, lenb, herbert, viro, bzolnier, dmitry.torokhov, dtor, jgarzik, linux-mm, dwmw2, patrick, kuznet, pekkas, jmorris, philb, tim, andrea, ambx1 On Fri, 9 Feb 2007 18:37:34 +0100 (CET) Roman Zippel <zippel@linux-m68k.org> wrote: > Hi, > > On Fri, 9 Feb 2007, Heiko Carstens wrote: > > > And indeed all the __initdata annotated local and global variables on > > s390 are in the init.data section. So I'm wondering what this patch > > series is about. Or I must have missed something. > > I think it reaches back to times when gcc 2.7.* was still supported, which > does behave as described in the documentation. gcc 2.95 and newer don't > require explicit initialization anymore, so this has become a non-issue. > Yes, nobody's been observing any problems arising from this, and if this memory was really uninitialised, people would be hitting problems. I don't want to have to require that all __attribute__((section)) storage be initialised - people will surely forget to do it and things will slip through. If we really do have a problem here it'd be better to fix it in some central and global fashion: either by ensuring that each architecture's startup code will zero this memory or by some compiler/linker option such as -fno-common. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-02-09 21:51 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <200702091711.34441.alon.barlev@gmail.com>
2007-02-09 15:35 ` [PATCH 33/34] __initdata cleanup - serial Alon Bar-Lev
2007-02-09 17:00 ` [PATCH 00/34] __initdata cleanup Heiko Carstens
2007-02-09 17:25 ` Alon Bar-Lev
2007-02-09 17:37 ` Roman Zippel
2007-02-09 21:33 ` Andrew Morton
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).