﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	field_blocks	field_dependson	field_seealso
605	PREEMPTIBLE_HANDLER_KERNEL needs to spill uspace windows to uspace wbuf	Jakub Jermář	Jakub Jermář	"PREEMPTIBLE_HANDLER_KERNEL checks the value of the CANSAVE register to see whether the imminent SAVE instruction would generate a window spill trap or not. If CANSAVE is zero, it uses the INLINE_SPILL macro to spill a register window without generating the spill trap. INLINE_SPILL assumes a kernel window, but it is also possible to have a uspace window at this point. In this case, INLINE_SPILL will wrongly interpret the window's uspace stack address as a kernel stack address, leading to a random memory corruption.
  
It is therefore necessary to also check the value in the OTHERWIN register to see whether the spilled window would be a uspace window. In such case, INLINE_SPILL_TO_WBUF needs to be used instead of INLINE_SPILL to spill the uspace window to the uspace window buffer."	defect	closed	major	0.7.0	helenos/kernel/sparc64	mainline	fixed	sun4v	rimskyp@…			
