diff mbox

[Xen-devel,for-4.5] xen/arm: Correct the opcode for BUG_INSTR on arm32

Message ID 1417721215-32639-1-git-send-email-julien.grall@linaro.org
State Accepted, archived
Headers show

Commit Message

Julien Grall Dec. 4, 2014, 7:26 p.m. UTC
A 0 was forgotten when the arm32 BUG instruction opcode has been added in commit
3e802c6ca1fb9a9549258c2855a57cad483f3cbd "xen/arm: Correctly support WARN_ON".

This will result to use a valid instruction (mcreq 0, 3, r0, cr15, cr0, {7}),
and inhibit usage of BUG/WARN_ON and co.

Signed-off-by: Julien Grall <julien.grall@linaro.org>

---

Not sure, why I dropped the 0 when I implemented the patch...
This is a bug fixed for Xen 4.5. This is only affected ARM32 where the
BUG opcode was malformed.

With the malformed opcode, the ASSERT/BUG_ON is skipped and the
processor may execute another patch (because the compiler has optimized
due the unreachable in both macro).

The code modified is only executed when Xen is in bad state.
---
 xen/include/asm-arm/arm32/bug.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Julien Grall Dec. 5, 2014, 10:53 a.m. UTC | #1
Hi Konrad,

On 04/12/2014 19:34, Konrad Rzeszutek Wilk wrote:
> On Thu, Dec 04, 2014 at 07:26:55PM +0000, Julien Grall wrote:
>> A 0 was forgotten when the arm32 BUG instruction opcode has been added in commit
>> 3e802c6ca1fb9a9549258c2855a57cad483f3cbd "xen/arm: Correctly support WARN_ON".
>>
>> This will result to use a valid instruction (mcreq 0, 3, r0, cr15, cr0, {7}),
>> and inhibit usage of BUG/WARN_ON and co.
>>
>> Signed-off-by: Julien Grall <julien.grall@linaro.org>
>>
>> ---
>>
>> Not sure, why I dropped the 0 when I implemented the patch...
>> This is a bug fixed for Xen 4.5. This is only affected ARM32 where the
>> BUG opcode was malformed.
>>
>> With the malformed opcode, the ASSERT/BUG_ON is skipped and the
>> processor may execute another patch (because the compiler has optimized
>
> s/patch/path/ ?

Yes.

>> due the unreachable in both macro).
>>
>> The code modified is only executed when Xen is in bad state.
>
> Release-Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

Thanks!

Regards,
diff mbox

Patch

diff --git a/xen/include/asm-arm/arm32/bug.h b/xen/include/asm-arm/arm32/bug.h
index 155b420..3e66f35 100644
--- a/xen/include/asm-arm/arm32/bug.h
+++ b/xen/include/asm-arm/arm32/bug.h
@@ -6,7 +6,7 @@ 
 /* ARMv7 provides a list of undefined opcode (see A8.8.247 DDI 0406C.b)
  * Use one them encoding A1 to go in exception mode
  */
-#define BUG_OPCODE  0xe7f00f0
+#define BUG_OPCODE  0xe7f000f0
 
 #define BUG_INSTR ".word " __stringify(BUG_OPCODE)