Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 165347
b: refs/heads/master
c: 3fd26a7
h: refs/heads/master
i:
  165345: 84cb766
  165343: 0304309
v: v3
  • Loading branch information
Heiko Carstens authored and Martin Schwidefsky committed Sep 22, 2009
1 parent af4cbaa commit 01ff901
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 11 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 07805ac81c81634623042408ffea6bbad3160bfa
refs/heads/master: 3fd26a7793fb21b88ccf1e238670b2a508fcf835
6 changes: 6 additions & 0 deletions trunk/arch/s390/include/asm/lowcore.h
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,12 @@ union save_area {
#define SAVE_AREA_BASE SAVE_AREA_BASE_S390X
#endif

#ifndef __s390x__
#define LC_ORDER 0
#else
#define LC_ORDER 1
#endif

struct _lowcore
{
#ifndef __s390x__
Expand Down
14 changes: 4 additions & 10 deletions trunk/arch/s390/kernel/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -475,10 +475,8 @@ static int __cpuinit smp_alloc_lowcore(int cpu)
{
unsigned long async_stack, panic_stack;
struct _lowcore *lowcore;
int lc_order;

lc_order = sizeof(long) == 8 ? 1 : 0;
lowcore = (void *) __get_free_pages(GFP_KERNEL | GFP_DMA, lc_order);
lowcore = (void *) __get_free_pages(GFP_KERNEL | GFP_DMA, LC_ORDER);
if (!lowcore)
return -ENOMEM;
async_stack = __get_free_pages(GFP_KERNEL, ASYNC_ORDER);
Expand Down Expand Up @@ -509,16 +507,14 @@ static int __cpuinit smp_alloc_lowcore(int cpu)
out:
free_page(panic_stack);
free_pages(async_stack, ASYNC_ORDER);
free_pages((unsigned long) lowcore, lc_order);
free_pages((unsigned long) lowcore, LC_ORDER);
return -ENOMEM;
}

static void smp_free_lowcore(int cpu)
{
struct _lowcore *lowcore;
int lc_order;

lc_order = sizeof(long) == 8 ? 1 : 0;
lowcore = lowcore_ptr[cpu];
#ifndef CONFIG_64BIT
if (MACHINE_HAS_IEEE)
Expand All @@ -528,7 +524,7 @@ static void smp_free_lowcore(int cpu)
#endif
free_page(lowcore->panic_stack - PAGE_SIZE);
free_pages(lowcore->async_stack - ASYNC_SIZE, ASYNC_ORDER);
free_pages((unsigned long) lowcore, lc_order);
free_pages((unsigned long) lowcore, LC_ORDER);
lowcore_ptr[cpu] = NULL;
}

Expand Down Expand Up @@ -664,7 +660,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
unsigned long async_stack, panic_stack;
struct _lowcore *lowcore;
unsigned int cpu;
int lc_order;

smp_detect_cpus();

Expand All @@ -674,8 +669,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
print_cpu_info();

/* Reallocate current lowcore, but keep its contents. */
lc_order = sizeof(long) == 8 ? 1 : 0;
lowcore = (void *) __get_free_pages(GFP_KERNEL | GFP_DMA, lc_order);
lowcore = (void *) __get_free_pages(GFP_KERNEL | GFP_DMA, LC_ORDER);
panic_stack = __get_free_page(GFP_KERNEL);
async_stack = __get_free_pages(GFP_KERNEL, ASYNC_ORDER);
BUG_ON(!lowcore || !panic_stack || !async_stack);
Expand Down

0 comments on commit 01ff901

Please sign in to comment.