Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 287644
b: refs/heads/master
c: 444080d
h: refs/heads/master
v: v3
  • Loading branch information
Brian King authored and Benjamin Herrenschmidt committed Feb 14, 2012
1 parent a8f78c2 commit 5ffcfbf
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 4 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: f1c853b53cf2b49eb32791072c8a8ee04f122f58
refs/heads/master: 444080d13d05dc38d07dd3bf751d38bce7ab7c72
5 changes: 3 additions & 2 deletions trunk/arch/powerpc/kernel/rtas.c
Original file line number Diff line number Diff line change
Expand Up @@ -716,7 +716,6 @@ static int __rtas_suspend_last_cpu(struct rtas_suspend_me_data *data, int wake_w
int cpu;

slb_set_size(SLB_MIN_SIZE);
stop_topology_update();
printk(KERN_DEBUG "calling ibm,suspend-me on cpu %i\n", smp_processor_id());

while (rc == H_MULTI_THREADS_ACTIVE && !atomic_read(&data->done) &&
Expand All @@ -732,7 +731,6 @@ static int __rtas_suspend_last_cpu(struct rtas_suspend_me_data *data, int wake_w
rc = atomic_read(&data->error);

atomic_set(&data->error, rc);
start_topology_update();
pSeries_coalesce_init();

if (wake_when_done) {
Expand Down Expand Up @@ -846,6 +844,7 @@ int rtas_ibm_suspend_me(struct rtas_args *args)
atomic_set(&data.error, 0);
data.token = rtas_token("ibm,suspend-me");
data.complete = &done;
stop_topology_update();

/* Call function on all CPUs. One of us will make the
* rtas call
Expand All @@ -858,6 +857,8 @@ int rtas_ibm_suspend_me(struct rtas_args *args)
if (atomic_read(&data.error) != 0)
printk(KERN_ERR "Error doing global join\n");

start_topology_update();

return atomic_read(&data.error);
}
#else /* CONFIG_PPC_PSERIES */
Expand Down
6 changes: 5 additions & 1 deletion trunk/arch/powerpc/platforms/pseries/suspend.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include <asm/machdep.h>
#include <asm/mmu.h>
#include <asm/rtas.h>
#include <asm/topology.h>

static u64 stream_id;
static struct device suspend_dev;
Expand Down Expand Up @@ -138,8 +139,11 @@ static ssize_t store_hibernate(struct device *dev,
ssleep(1);
} while (rc == -EAGAIN);

if (!rc)
if (!rc) {
stop_topology_update();
rc = pm_suspend(PM_SUSPEND_MEM);
start_topology_update();
}

stream_id = 0;

Expand Down

0 comments on commit 5ffcfbf

Please sign in to comment.