Hello! > FYI, I tried writing test cases for this issue with kvm-unit-tests. The > issue didn't reproduce for me. It's quite possible my test cases are > flawed, so I'm not making any claims about the validity of the series
This is indeed very interesting, so i'll take a look at it. For now i've just only took a quick glance at the code, and i have at least one suggestion. Could you happen to have sp == 0 in check_xzr_sysreg()? In this case it will magically work. Also, you could try to write a test which tries to overwrite xzr. Something like: volatile int *addr1; volatile int *addr2; asm volatile("str %3, [%1]\n\t" "ldr wzr, [%1]\n\t" "str wzr, [%2]\n\t", "ldr %0, [%2]\n\t" :"=r"(res):"r"(addr1), "r"(addr2), "r"(some_nonzero_val):"memory"); Then check for res == some_nonzero_val. If they are equal, you've got the bug :) Kind regards, Pavel Fedin Expert Engineer Samsung Electronics Research center Russia -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html