2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-27 22:53:55 +08:00
linux-next/arch/powerpc/platforms
Jeremy Kerr 1ca4264ee1 [POWERPC] spufs: fix save of mfc_cntl register
Currently, we can introduce invalid entries into the MFC queues:

1) context starts a DMA

2) context gets scheduled out during a DMA
  - kernel saves MFC queue to CSA
  - kernel saves 0x0 in csa->mfc_control_RW

3) context gets scheduled in
  - csa->mfc_control[Q] ('queues empty') isn't set, so DMA queues are
    restored from the CSA

4) context's DMA is completed

5) context gets scheduled out again, no DMA occuring this time
  - kernel sees that MFC_CNTL[Q] ('queues empty') is set, so doesn't
    touch saved queue data in CSA
  - kernel saves 0x0 in csa->mfc_control_RW

6) context gets scheduled in
  - csa->mfc_control[Q] ('queues empty') isn't set (we saved is as 0!),
    so DMA queues are restored from the CSA

In this last restore, we've restored the queue status from step 2,
which are now invalid.

This change makes save_mfc_cntl() closer to the save/restore sequence,
as specified in the CBE handbook.

With changes from Luke Browning.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
2008-05-05 13:33:42 +10:00
..
8xx [POWERPC] CPM: Always use new binding. 2008-04-17 01:01:40 -05:00
40x [POWERPC] 4xx: Create common ppc4xx_reset_system() in ppc4xx_soc.c 2008-04-02 20:44:56 -05:00
44x [POWERPC] 4xx: Add idle wait support for 44x platforms 2008-04-16 07:32:06 -05:00
52xx [POWERPC] mpc5200: add Phytec pcm030 board support 2008-04-29 07:17:12 -06:00
82xx Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-04-21 15:50:49 -07:00
83xx [POWERPC] 83xx: mpc8315 - fix USB UTMI Host setup 2008-04-17 09:52:50 -05:00
85xx [POWERPC] 85xx: Fix compile warning 2008-04-17 01:01:41 -05:00
86xx [RAPIDIO] Add RapidIO node probing into MPC86xx_HPCN board id table 2008-04-29 19:40:29 +10:00
512x [POWERPC] Remove unused CONFIG_WANT_DEVICE_TREE 2008-02-14 22:11:03 +11:00
cell [POWERPC] spufs: fix save of mfc_cntl register 2008-05-05 13:33:42 +10:00
chrp [POWERPC] Autodetect serial console on pegasos2 2008-01-25 22:52:55 +11:00
embedded6xx [POWERPC] mv64x60: Fix FDT compatible names: mv64x60 => mv64360 2008-04-15 21:21:24 +10:00
iseries [POWERPC] Make iSeries spin on __secondary_hold_spinloop, like pSeries 2008-04-24 20:58:03 +10:00
maple [POWERPC] maple: Kill fixup_maple_ide 2008-03-26 08:44:04 +11:00
pasemi Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-04-21 15:50:49 -07:00
powermac [POWERPC] Fix building of pmac32 when CONFIG_NVRAM=m 2008-04-29 15:57:34 +10:00
prep [POWERPC] Split several platforms into their respective Kconfig file 2007-03-22 10:07:32 -05:00
ps3 [POWERPC] PS3: Make ps3_virq_setup and ps3_virq_destroy static 2008-05-02 15:00:44 +10:00
pseries [POWERPC] Update lmb data structures for hotplug memory add/remove 2008-04-29 15:57:53 +10:00
fsl_uli1575.c [POWERPC] Fix interrupt routing and setup of ULI M1575 on FSL boards 2007-08-17 13:22:16 -05:00
Kconfig [POWERPC] celleb: Move the files for celleb base support 2008-04-24 21:08:13 +10:00
Kconfig.cputype [POWERPC] Raise the upper limit of NR_CPUS and move the pacas into the BSS 2008-04-24 20:58:04 +10:00
Makefile [POWERPC] celleb: Move miscellaneous files for Beat 2008-04-24 21:08:14 +10:00