diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2013-04-22 00:40:42 -0400 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2013-04-22 02:15:03 -0400 |
commit | 6b39271746de131366a14bcf04f5740cdc4abdef (patch) | |
tree | a2f8875e7186df5a801345a61b01b9b2eab9bbca /drivers/lguest | |
parent | 6d0cda93c0d3c8bb0a553047c10f114c88c8af89 (diff) |
lguest: map Switcher below fixmap.
Now we've adjusted all the code, we can simply set switcher_addr to
wherever it needs to go below the fixmaps, rather than asserting that
it should be so.
With large NR_CPUS and PAE, people were hitting the "mapping switcher
would thwack fixmap" message.
Reported-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'drivers/lguest')
-rw-r--r-- | drivers/lguest/core.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/drivers/lguest/core.c b/drivers/lguest/core.c index 7e1d7ee36478..0bf1e4edf04d 100644 --- a/drivers/lguest/core.c +++ b/drivers/lguest/core.c | |||
@@ -83,18 +83,13 @@ static __init int map_switcher(void) | |||
83 | } | 83 | } |
84 | } | 84 | } |
85 | 85 | ||
86 | switcher_addr = SWITCHER_ADDR; | ||
87 | |||
88 | /* | 86 | /* |
89 | * First we check that the Switcher won't overlap the fixmap area at | 87 | * We place the Switcher underneath the fixmap area, which is the |
90 | * the top of memory. It's currently nowhere near, but it could have | 88 | * highest virtual address we can get. This is important, since we |
91 | * very strange effects if it ever happened. | 89 | * tell the Guest it can't access this memory, so we want its ceiling |
90 | * as high as possible. | ||
92 | */ | 91 | */ |
93 | if (switcher_addr + (TOTAL_SWITCHER_PAGES+1)*PAGE_SIZE > FIXADDR_START){ | 92 | switcher_addr = FIXADDR_START - (TOTAL_SWITCHER_PAGES+1)*PAGE_SIZE; |
94 | err = -ENOMEM; | ||
95 | printk("lguest: mapping switcher would thwack fixmap\n"); | ||
96 | goto free_pages; | ||
97 | } | ||
98 | 93 | ||
99 | /* | 94 | /* |
100 | * Now we reserve the "virtual memory area" we want. We might | 95 | * Now we reserve the "virtual memory area" we want. We might |