GitHub PushEvent at 2014-03-11 10:38:01
Repository: Zeta-Chromium-N5
Actor: major91
Payload: {"shas":[["6f19a18874c5fc5f649f00c200ec5338d5d84bff","f4461cfe90d9062a7e55a35647585f39eb23144b@motorola.com","arm: vfp: always clear vfp_current_hw_state when forcing reload\n\nThe current thread trying to clear the held vfp state may not be\nthe owner of hw state. For example,\n\tCore0\t\t\tCore1\n\t\t\t\tThread1 uses VFP.\n\t\t\t\t  Thread1 vfpstate.hard.cpu = 1.\n\t\t\t\t  vfp_current_hw_state[1] points to Thread1\n\t\t\t\t    vfpstate.\n\tGoing to suspend.\n\tFreeze Thread1.\n\t\t\t\tThread1 is switched out.\n\t\t\t\tVFP HW registers saved to Thread1 vfpstate.\n\tCore0 disables Core1.\n\t\t\t\tStopper thread calls vfp_force_reload().\n\t\t\t\tStopper thread vfpstate.hard.cpu = NR_CPUS.\n\t\t\t\t...\n\t\t\t\t(No PM notifier for non-idle path. So\n\t\t\t\t  vfp_pm_suspend() is NOT called on Core1.)\n\t\t\t\t...\n\t\t\t\tCore1 is off and VFP HW registers are lost.\n\t...\n\tCore0 enables Core1.\n\tCore0 thaw Thread1.\n\tThread1 migrate to Core1\n\t  before using VFP.\n\t\t\t\tThread1 starts using VFP.\n\t\t\t\tNow we have vfp_current_hw_state[1] points\n\t\t\t\t  to Thread1 vfpstate. And Thread1 has\n\t\t\t\t  vfpstate.hard.cpu = 1.\n\t\t\t\tThread1 does not need to reload saved vfpstate\n\t\t\t\t  to VFP HW.\n\t\t\t\tThread1 continues running using corrupted VFP\n\t\t\t\tHW register.\nThis change fixes above gap by always clearing vfp_current_hw_state when\nvfp_force_reload() is called.\n\nCRs-fixed: 553415\nChange-Id: I1b914a1e6f06c088b78e82ae01f68e3cf49f0442\nSigned-off-by: Yuanyuan Zhong <zyy@motorola.com>\nPatch-mainline: linux-arm-kernel @ Wed Oct 2 17:59:47 EDT 2013\nSigned-off-by: Murali Nalajala <mnalajal@codeaurora.org>\nSigned-off-by: flar2 <asegaert@gmail.com>","Yuanyuan Zhong",true]],"size":1,"ref":"refs/heads/master","head":"6f19a18874c5fc5f649f00c200ec5338d5d84bff"}