diff options
-rw-r--r-- | arch/powerpc/platforms/cell/spufs/coredump.c | 8 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/spufs/file.c | 4 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/spufs/run.c | 4 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/spufs/switch.c | 2 |
4 files changed, 13 insertions, 5 deletions
diff --git a/arch/powerpc/platforms/cell/spufs/coredump.c b/arch/powerpc/platforms/cell/spufs/coredump.c index 0c6a96b82b2d..b962c3ab470c 100644 --- a/arch/powerpc/platforms/cell/spufs/coredump.c +++ b/arch/powerpc/platforms/cell/spufs/coredump.c | |||
@@ -133,8 +133,6 @@ static struct spu_context *coredump_next_context(int *fd) | |||
133 | if (ctx->flags & SPU_CREATE_NOSCHED) | 133 | if (ctx->flags & SPU_CREATE_NOSCHED) |
134 | continue; | 134 | continue; |
135 | 135 | ||
136 | /* start searching the next fd next time we're called */ | ||
137 | (*fd)++; | ||
138 | break; | 136 | break; |
139 | } | 137 | } |
140 | 138 | ||
@@ -157,6 +155,9 @@ int spufs_coredump_extra_notes_size(void) | |||
157 | break; | 155 | break; |
158 | 156 | ||
159 | size += rc; | 157 | size += rc; |
158 | |||
159 | /* start searching the next fd next time */ | ||
160 | fd++; | ||
160 | } | 161 | } |
161 | 162 | ||
162 | return size; | 163 | return size; |
@@ -239,6 +240,9 @@ int spufs_coredump_extra_notes_write(struct file *file, loff_t *foffset) | |||
239 | } | 240 | } |
240 | 241 | ||
241 | spu_release_saved(ctx); | 242 | spu_release_saved(ctx); |
243 | |||
244 | /* start searching the next fd next time */ | ||
245 | fd++; | ||
242 | } | 246 | } |
243 | 247 | ||
244 | return 0; | 248 | return 0; |
diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c index f14d3a0a8615..ba791e931bd6 100644 --- a/arch/powerpc/platforms/cell/spufs/file.c +++ b/arch/powerpc/platforms/cell/spufs/file.c | |||
@@ -1337,7 +1337,7 @@ static u64 spufs_signal1_type_get(struct spu_context *ctx) | |||
1337 | return ctx->ops->signal1_type_get(ctx); | 1337 | return ctx->ops->signal1_type_get(ctx); |
1338 | } | 1338 | } |
1339 | DEFINE_SPUFS_ATTRIBUTE(spufs_signal1_type, spufs_signal1_type_get, | 1339 | DEFINE_SPUFS_ATTRIBUTE(spufs_signal1_type, spufs_signal1_type_get, |
1340 | spufs_signal1_type_set, "%llu", SPU_ATTR_ACQUIRE); | 1340 | spufs_signal1_type_set, "%llu\n", SPU_ATTR_ACQUIRE); |
1341 | 1341 | ||
1342 | 1342 | ||
1343 | static int spufs_signal2_type_set(void *data, u64 val) | 1343 | static int spufs_signal2_type_set(void *data, u64 val) |
@@ -1359,7 +1359,7 @@ static u64 spufs_signal2_type_get(struct spu_context *ctx) | |||
1359 | return ctx->ops->signal2_type_get(ctx); | 1359 | return ctx->ops->signal2_type_get(ctx); |
1360 | } | 1360 | } |
1361 | DEFINE_SPUFS_ATTRIBUTE(spufs_signal2_type, spufs_signal2_type_get, | 1361 | DEFINE_SPUFS_ATTRIBUTE(spufs_signal2_type, spufs_signal2_type_get, |
1362 | spufs_signal2_type_set, "%llu", SPU_ATTR_ACQUIRE); | 1362 | spufs_signal2_type_set, "%llu\n", SPU_ATTR_ACQUIRE); |
1363 | 1363 | ||
1364 | #if SPUFS_MMAP_4K | 1364 | #if SPUFS_MMAP_4K |
1365 | static unsigned long spufs_mss_mmap_nopfn(struct vm_area_struct *vma, | 1365 | static unsigned long spufs_mss_mmap_nopfn(struct vm_area_struct *vma, |
diff --git a/arch/powerpc/platforms/cell/spufs/run.c b/arch/powerpc/platforms/cell/spufs/run.c index 5986d08115af..96bf7c2b86fc 100644 --- a/arch/powerpc/platforms/cell/spufs/run.c +++ b/arch/powerpc/platforms/cell/spufs/run.c | |||
@@ -323,6 +323,10 @@ static int spu_process_callback(struct spu_context *ctx) | |||
323 | return -EINTR; | 323 | return -EINTR; |
324 | } | 324 | } |
325 | 325 | ||
326 | /* need to re-get the ls, as it may have changed when we released the | ||
327 | * spu */ | ||
328 | ls = (void __iomem *)ctx->ops->get_ls(ctx); | ||
329 | |||
326 | /* write result, jump over indirect pointer */ | 330 | /* write result, jump over indirect pointer */ |
327 | memcpy_toio(ls + ls_pointer, &spu_ret, sizeof(spu_ret)); | 331 | memcpy_toio(ls + ls_pointer, &spu_ret, sizeof(spu_ret)); |
328 | ctx->ops->npc_write(ctx, npc); | 332 | ctx->ops->npc_write(ctx, npc); |
diff --git a/arch/powerpc/platforms/cell/spufs/switch.c b/arch/powerpc/platforms/cell/spufs/switch.c index e9dc7a55d1b9..d2a1249d36dd 100644 --- a/arch/powerpc/platforms/cell/spufs/switch.c +++ b/arch/powerpc/platforms/cell/spufs/switch.c | |||
@@ -1815,6 +1815,7 @@ static void save_csa(struct spu_state *prev, struct spu *spu) | |||
1815 | save_mfc_csr_ato(prev, spu); /* Step 24. */ | 1815 | save_mfc_csr_ato(prev, spu); /* Step 24. */ |
1816 | save_mfc_tclass_id(prev, spu); /* Step 25. */ | 1816 | save_mfc_tclass_id(prev, spu); /* Step 25. */ |
1817 | set_mfc_tclass_id(prev, spu); /* Step 26. */ | 1817 | set_mfc_tclass_id(prev, spu); /* Step 26. */ |
1818 | save_mfc_cmd(prev, spu); /* Step 26a - moved from 44. */ | ||
1818 | purge_mfc_queue(prev, spu); /* Step 27. */ | 1819 | purge_mfc_queue(prev, spu); /* Step 27. */ |
1819 | wait_purge_complete(prev, spu); /* Step 28. */ | 1820 | wait_purge_complete(prev, spu); /* Step 28. */ |
1820 | setup_mfc_sr1(prev, spu); /* Step 30. */ | 1821 | setup_mfc_sr1(prev, spu); /* Step 30. */ |
@@ -1831,7 +1832,6 @@ static void save_csa(struct spu_state *prev, struct spu *spu) | |||
1831 | save_ppuint_mb(prev, spu); /* Step 41. */ | 1832 | save_ppuint_mb(prev, spu); /* Step 41. */ |
1832 | save_ch_part1(prev, spu); /* Step 42. */ | 1833 | save_ch_part1(prev, spu); /* Step 42. */ |
1833 | save_spu_mb(prev, spu); /* Step 43. */ | 1834 | save_spu_mb(prev, spu); /* Step 43. */ |
1834 | save_mfc_cmd(prev, spu); /* Step 44. */ | ||
1835 | reset_ch(prev, spu); /* Step 45. */ | 1835 | reset_ch(prev, spu); /* Step 45. */ |
1836 | } | 1836 | } |
1837 | 1837 | ||