linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* module bustage - git v2.6.29-9516-g0221c81 and tip v2.6.29-10558-g44f4bd6 unbootable
@ 2009-04-06  9:08 Mike Galbraith
  2009-04-07  7:52 ` [PULL] module bogus patch revert Rusty Russell
  0 siblings, 1 reply; 3+ messages in thread
From: Mike Galbraith @ 2009-04-06  9:08 UTC (permalink / raw)
  To: rusty; +Cc: Ingo Molnar, LKML

[-- Attachment #1: Type: text/plain, Size: 1334 bytes --]

Hi Rusty,

The below rendered modules unloadable, and my bog standard opensuse 11.0
x86_64 box became a doorstop.

module-init-tools version 3.4, config attached.

(nobody else has griped yet and it's already 11:08.  hm)

commit 9cb610d8e35fe3ec95a2fe2030b02f85aeea83c1
Author: Rusty Russell <rusty@rustcorp.com.au>
Date:   Tue Mar 31 13:05:33 2009 -0600

    module: remove the SHF_ALLOC flag on the __versions section.
    
    Impact: reduce kernel memory usage
    
    This patch just takes off the SHF_ALLOC flag on __versions so we don't
    keep them around after module load.
    
    This saves about 7% of module memory if CONFIG_MODVERSIONS=y.
    
    Cc: Shawn Bohrer <shawn.bohrer@gmail.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

diff --git a/kernel/module.c b/kernel/module.c
index 599fc85..784bf6d 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -1961,6 +1961,9 @@ static noinline struct module *load_module(void __user *umod,
 		if (strncmp(secstrings+sechdrs[i].sh_name, ".exit", 5) == 0)
 			sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC;
 #endif
+		/* Don't keep __versions around; it's just for loading. */
+		if (strcmp(secstrings + sechdrs[i].sh_name, "__versions") == 0)
+			sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC;
 	}
 
 	modindex = find_sec(hdr, sechdrs, secstrings,


[-- Attachment #2: config.gz --]
[-- Type: application/x-gzip, Size: 14788 bytes --]

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PULL] module bogus patch revert
  2009-04-06  9:08 module bustage - git v2.6.29-9516-g0221c81 and tip v2.6.29-10558-g44f4bd6 unbootable Mike Galbraith
@ 2009-04-07  7:52 ` Rusty Russell
  2009-04-08 12:23   ` Ingo Molnar
  0 siblings, 1 reply; 3+ messages in thread
From: Rusty Russell @ 2009-04-07  7:52 UTC (permalink / raw)
  To: Mike Galbraith; +Cc: Ingo Molnar, LKML, Linus Torvalds

On Monday 06 April 2009 18:38:48 Mike Galbraith wrote:
> Hi Rusty,
> 
> The below rendered modules unloadable, and my bog standard opensuse 11.0
> x86_64 box became a doorstop.
...
> (nobody else has griped yet and it's already 11:08.  hm)

Needs MODVERSIONS=y + MODULE_FORCE_UNLOAD=n.

Thanks for report!
Rusty.
---

The following changes since commit d508afb437daee7cf07da085b635c44a4ebf9b38:
  Trond Myklebust (1):
        NFS: Fix a double free in nfs_parse_mount_options()

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-module-and-param.git master

Rusty Russell (1):
      Revert "module: remove the SHF_ALLOC flag on the __versions section."

 kernel/module.c |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)


commit 2e45e77787c9d0720b046eb69856edf43b17e33e
Author: Rusty Russell <rusty@rustcorp.com.au>
Date:   Tue Apr 7 17:12:43 2009 +0930

    Revert "module: remove the SHF_ALLOC flag on the __versions section."
    
    This reverts commit 9cb610d8e35fe3ec95a2fe2030b02f85aeea83c1.
    
    This was an impressively stupid patch.  Firstly, we reset the SHF_ALLOC
    flag lower down in the same function, so the patch was useless.  Even
    better, find_sec() ignores sections with SHF_ALLOC not set, so
    it breaks CONFIG_MODVERSIONS=y with CONFIG_MODULE_FORCE_LOAD=n, which
    refuses to load the module since it can't find the __versions section.
    
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
---
 kernel/module.c |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)

diff --git a/kernel/module.c b/kernel/module.c
index c268a77..05f014e 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -1952,9 +1952,6 @@ static noinline struct module *load_module(void __user *umod,
 		if (strstarts(secstrings+sechdrs[i].sh_name, ".exit"))
 			sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC;
 #endif
-		/* Don't keep __versions around; it's just for loading. */
-		if (strcmp(secstrings + sechdrs[i].sh_name, "__versions") == 0)
-			sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC;
 	}
 
 	modindex = find_sec(hdr, sechdrs, secstrings,

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PULL] module bogus patch revert
  2009-04-07  7:52 ` [PULL] module bogus patch revert Rusty Russell
@ 2009-04-08 12:23   ` Ingo Molnar
  0 siblings, 0 replies; 3+ messages in thread
From: Ingo Molnar @ 2009-04-08 12:23 UTC (permalink / raw)
  To: Rusty Russell; +Cc: Mike Galbraith, LKML, Linus Torvalds


* Rusty Russell <rusty@rustcorp.com.au> wrote:

> On Monday 06 April 2009 18:38:48 Mike Galbraith wrote:
> > Hi Rusty,
> > 
> > The below rendered modules unloadable, and my bog standard opensuse 11.0
> > x86_64 box became a doorstop.
> ...
> > (nobody else has griped yet and it's already 11:08.  hm)
> 
> Needs MODVERSIONS=y + MODULE_FORCE_UNLOAD=n.
> 
> Thanks for report!
> Rusty.

FYI, this has been in -tip:out-of-tree for two days as 0bcb247, and 
i got no other modules-bustage reports.

	Ingo

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-04-08 12:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-04-06  9:08 module bustage - git v2.6.29-9516-g0221c81 and tip v2.6.29-10558-g44f4bd6 unbootable Mike Galbraith
2009-04-07  7:52 ` [PULL] module bogus patch revert Rusty Russell
2009-04-08 12:23   ` Ingo Molnar

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).