# Re: \[PATCH v28 26/32\] x86/cet/shstk: Introduce shadow stack token setup/verify routines

- From: Dave Hansen \<hidden\>
- Date: 2021-07-22 21:15:40 
- List: linux-doc
- Page: https://ratatoskr.run/linux-doc/2021/07/1455266
- Thread: https://ratatoskr.run/linux-doc/2021/07/1455208/t.md

```text
On 7/22/21 1:52 PM, Yu-cheng Yu wrote:
> +	if (fpregs_state_valid(fpu, smp_processor_id())) {
> +		rdmsrl(MSR_IA32_PL3_SSP, ssp);
> +	} else {
> +		struct cet_user_state *p;
> +
> +		/*
> +		 * When !fpregs_state_valid() and get_xsave_addr() returns
> +		 * null, XFEAUTRE_CET_USER is in init state.  Shadow stack
> +		 * pointer is null in this case, so return zero.
> +		 */
> +		p = get_xsave_addr(&fpu->state.xsave, XFEATURE_CET_USER);
> +		if (p)
> +			ssp = p->user_ssp;
> +	}
> +
> +	fpregs_unlock();

Why are we even calling into this code if shadow stacks might be
disabled?  Seems like we should have just errored out long before
getting here.
```
