Skip to content

Commit

Permalink
[PATCH] x86_64: Add boot option to disable randomized mappings and cl…
Browse files Browse the repository at this point in the history
…eanup

AMD SimNow!'s JIT doesn't like them at all in the guest. For distribution
installation it's easiest if it's a boot time option.

Also I moved the variable to a more appropiate place and make
it independent from sysctl

And marked __read_mostly which it is.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Andi Kleen authored and Linus Torvalds committed Feb 17, 2006
1 parent 99019e9 commit a62eaf1
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 8 deletions.
3 changes: 3 additions & 0 deletions Documentation/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1638,6 +1638,9 @@ running once the system is up.
Format:
<irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]]

norandmaps Don't use address space randomization
Equivalent to echo 0 > /proc/sys/kernel/randomize_va_space


______________________________________________________________________
Changelog:
Expand Down
1 change: 1 addition & 0 deletions arch/i386/kernel/cpu/transmeta.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/init.h>
#include <asm/processor.h>
#include <asm/msr.h>
Expand Down
6 changes: 0 additions & 6 deletions include/linux/kernel.h
Original file line number Diff line number Diff line change
Expand Up @@ -326,12 +326,6 @@ struct sysinfo {
/* Force a compilation error if condition is true */
#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)]))

#ifdef CONFIG_SYSCTL
extern int randomize_va_space;
#else
#define randomize_va_space 1
#endif

/* Trap pasters of __FUNCTION__ at compile-time */
#define __FUNCTION__ (__func__)

Expand Down
2 changes: 2 additions & 0 deletions include/linux/mm.h
Original file line number Diff line number Diff line change
Expand Up @@ -1051,5 +1051,7 @@ int shrink_slab(unsigned long scanned, gfp_t gfp_mask,
void drop_pagecache(void);
void drop_slab(void);

extern int randomize_va_space;

#endif /* __KERNEL__ */
#endif /* _LINUX_MM_H */
2 changes: 0 additions & 2 deletions kernel/sysctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,6 @@ extern int sysctl_hz_timer;
extern int acct_parm[];
#endif

int randomize_va_space = 1;

static int parse_table(int __user *, int, void __user *, size_t __user *, void __user *, size_t,
ctl_table *, void **);
static int proc_doutsstring(ctl_table *table, int write, struct file *filp,
Expand Down
10 changes: 10 additions & 0 deletions mm/memory.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,16 @@ EXPORT_SYMBOL(num_physpages);
EXPORT_SYMBOL(high_memory);
EXPORT_SYMBOL(vmalloc_earlyreserve);

int randomize_va_space __read_mostly = 1;

static int __init disable_randmaps(char *s)
{
randomize_va_space = 0;
return 0;
}
__setup("norandmaps", disable_randmaps);


/*
* If a p?d_bad entry is found while walking page tables, report
* the error, before resetting entry to p?d_none. Usually (but
Expand Down

0 comments on commit a62eaf1

Please sign in to comment.