Commit 858c52d1 authored by Paul Mackerras's avatar Paul Mackerras
parents 77116849 ada397e9
...@@ -133,8 +133,6 @@ static struct spu_context *coredump_next_context(int *fd) ...@@ -133,8 +133,6 @@ static struct spu_context *coredump_next_context(int *fd)
if (ctx->flags & SPU_CREATE_NOSCHED) if (ctx->flags & SPU_CREATE_NOSCHED)
continue; continue;
/* start searching the next fd next time we're called */
(*fd)++;
break; break;
} }
...@@ -157,6 +155,9 @@ int spufs_coredump_extra_notes_size(void) ...@@ -157,6 +155,9 @@ int spufs_coredump_extra_notes_size(void)
break; break;
size += rc; size += rc;
/* start searching the next fd next time */
fd++;
} }
return size; return size;
...@@ -239,6 +240,9 @@ int spufs_coredump_extra_notes_write(struct file *file, loff_t *foffset) ...@@ -239,6 +240,9 @@ int spufs_coredump_extra_notes_write(struct file *file, loff_t *foffset)
} }
spu_release_saved(ctx); spu_release_saved(ctx);
/* start searching the next fd next time */
fd++;
} }
return 0; return 0;
......
...@@ -1337,7 +1337,7 @@ static u64 spufs_signal1_type_get(struct spu_context *ctx) ...@@ -1337,7 +1337,7 @@ static u64 spufs_signal1_type_get(struct spu_context *ctx)
return ctx->ops->signal1_type_get(ctx); return ctx->ops->signal1_type_get(ctx);
} }
DEFINE_SPUFS_ATTRIBUTE(spufs_signal1_type, spufs_signal1_type_get, DEFINE_SPUFS_ATTRIBUTE(spufs_signal1_type, spufs_signal1_type_get,
spufs_signal1_type_set, "%llu", SPU_ATTR_ACQUIRE); spufs_signal1_type_set, "%llu\n", SPU_ATTR_ACQUIRE);
static int spufs_signal2_type_set(void *data, u64 val) 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,7 +1359,7 @@ static u64 spufs_signal2_type_get(struct spu_context *ctx)
return ctx->ops->signal2_type_get(ctx); return ctx->ops->signal2_type_get(ctx);
} }
DEFINE_SPUFS_ATTRIBUTE(spufs_signal2_type, spufs_signal2_type_get, DEFINE_SPUFS_ATTRIBUTE(spufs_signal2_type, spufs_signal2_type_get,
spufs_signal2_type_set, "%llu", SPU_ATTR_ACQUIRE); spufs_signal2_type_set, "%llu\n", SPU_ATTR_ACQUIRE);
#if SPUFS_MMAP_4K #if SPUFS_MMAP_4K
static unsigned long spufs_mss_mmap_nopfn(struct vm_area_struct *vma, static unsigned long spufs_mss_mmap_nopfn(struct vm_area_struct *vma,
......
...@@ -323,6 +323,10 @@ static int spu_process_callback(struct spu_context *ctx) ...@@ -323,6 +323,10 @@ static int spu_process_callback(struct spu_context *ctx)
return -EINTR; return -EINTR;
} }
/* need to re-get the ls, as it may have changed when we released the
* spu */
ls = (void __iomem *)ctx->ops->get_ls(ctx);
/* write result, jump over indirect pointer */ /* write result, jump over indirect pointer */
memcpy_toio(ls + ls_pointer, &spu_ret, sizeof(spu_ret)); memcpy_toio(ls + ls_pointer, &spu_ret, sizeof(spu_ret));
ctx->ops->npc_write(ctx, npc); ctx->ops->npc_write(ctx, npc);
......
...@@ -1815,6 +1815,7 @@ static void save_csa(struct spu_state *prev, struct spu *spu) ...@@ -1815,6 +1815,7 @@ static void save_csa(struct spu_state *prev, struct spu *spu)
save_mfc_csr_ato(prev, spu); /* Step 24. */ save_mfc_csr_ato(prev, spu); /* Step 24. */
save_mfc_tclass_id(prev, spu); /* Step 25. */ save_mfc_tclass_id(prev, spu); /* Step 25. */
set_mfc_tclass_id(prev, spu); /* Step 26. */ set_mfc_tclass_id(prev, spu); /* Step 26. */
save_mfc_cmd(prev, spu); /* Step 26a - moved from 44. */
purge_mfc_queue(prev, spu); /* Step 27. */ purge_mfc_queue(prev, spu); /* Step 27. */
wait_purge_complete(prev, spu); /* Step 28. */ wait_purge_complete(prev, spu); /* Step 28. */
setup_mfc_sr1(prev, spu); /* Step 30. */ setup_mfc_sr1(prev, spu); /* Step 30. */
...@@ -1831,7 +1832,6 @@ static void save_csa(struct spu_state *prev, struct spu *spu) ...@@ -1831,7 +1832,6 @@ static void save_csa(struct spu_state *prev, struct spu *spu)
save_ppuint_mb(prev, spu); /* Step 41. */ save_ppuint_mb(prev, spu); /* Step 41. */
save_ch_part1(prev, spu); /* Step 42. */ save_ch_part1(prev, spu); /* Step 42. */
save_spu_mb(prev, spu); /* Step 43. */ save_spu_mb(prev, spu); /* Step 43. */
save_mfc_cmd(prev, spu); /* Step 44. */
reset_ch(prev, spu); /* Step 45. */ reset_ch(prev, spu); /* Step 45. */
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment