/* Padlock instructions can generate a spurious DNA fault, so we have to call them in the context of irq_ts_save/restore()  */
static u32 xstore(u32 *addr, u32 edx_in)
/* Padlock instructions can generate a spurious DNA fault, so we have to call them in the context of irq_ts_save/restore()  */
static u32 xstore(u32 *addr, u32 edx_in)
{
	u32 eax_out;
	int ts_state;
	ts_state = irq_ts_save();
	asm(".byte 0x0F,0xA7,0xC0"
		:"=m"(*addr), "=a"(eax_out)
		:"D"(addr), "d"(edx_in));
	irq_ts_restore(ts_state);
	return eax_out;
}