diff options
Diffstat (limited to 'arch/powerpc/platforms/pseries/mobility.c')
-rw-r--r-- | arch/powerpc/platforms/pseries/mobility.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/arch/powerpc/platforms/pseries/mobility.c b/arch/powerpc/platforms/pseries/mobility.c index 03a428e87b14..38db1b9f2ac3 100644 --- a/arch/powerpc/platforms/pseries/mobility.c +++ b/arch/powerpc/platforms/pseries/mobility.c | |||
@@ -318,22 +318,19 @@ static ssize_t migrate_store(struct class *class, struct class_attribute *attr, | |||
318 | { | 318 | { |
319 | u64 streamid; | 319 | u64 streamid; |
320 | int rc; | 320 | int rc; |
321 | int vasi_rc = 0; | ||
322 | 321 | ||
323 | rc = kstrtou64(buf, 0, &streamid); | 322 | rc = kstrtou64(buf, 0, &streamid); |
324 | if (rc) | 323 | if (rc) |
325 | return rc; | 324 | return rc; |
326 | 325 | ||
327 | do { | 326 | do { |
328 | rc = rtas_ibm_suspend_me(streamid, &vasi_rc); | 327 | rc = rtas_ibm_suspend_me(streamid); |
329 | if (!rc && vasi_rc == RTAS_NOT_SUSPENDABLE) | 328 | if (rc == -EAGAIN) |
330 | ssleep(1); | 329 | ssleep(1); |
331 | } while (!rc && vasi_rc == RTAS_NOT_SUSPENDABLE); | 330 | } while (rc == -EAGAIN); |
332 | 331 | ||
333 | if (rc) | 332 | if (rc) |
334 | return rc; | 333 | return rc; |
335 | if (vasi_rc) | ||
336 | return vasi_rc; | ||
337 | 334 | ||
338 | post_mobility_fixup(); | 335 | post_mobility_fixup(); |
339 | return count; | 336 | return count; |