Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

[POWERPC] cell/PS3: Always set master run control bit in mfc_sr1_set

At present, running any SPE program on the ps3 will trigger a BUG_ON
when spufs_run_spu tries to clear the master run control bit, as lv1
does not make the master run control available to Linux.

This change makes SPE apps work again by disabling changes to the
master run control on PS3. Although we don't have the facility to
disable a SPE with supervisor-level privileges, it's better than
hitting the BUG_ON unconditionally.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Acked-by: Masato Noguchi <Masato.Noguchi@jp.sony.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>

authored by

Jeremy Kerr and committed by
Paul Mackerras
ef8034d0 b7f90a40

+2
+2
arch/powerpc/platforms/ps3/spu.c
··· 505 505 static const u64 allowed = ~(MFC_STATE1_LOCAL_STORAGE_DECODE_MASK 506 506 | MFC_STATE1_PROBLEM_STATE_MASK); 507 507 508 + sr1 |= MFC_STATE1_MASTER_RUN_CONTROL_MASK; 509 + 508 510 BUG_ON((sr1 & allowed) != (spu_pdata(spu)->cache.sr1 & allowed)); 509 511 510 512 spu_pdata(spu)->cache.sr1 = sr1;