qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [Bug 1349277] [NEW] AArch64 emulation ignores SPSel=0 when taking (or returning from) an exception at EL1 or greater
@ 2014-07-28  7:40 T McIntosh
  2014-07-30  5:24 ` Edgar E. Iglesias
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: T McIntosh @ 2014-07-28  7:40 UTC (permalink / raw)
  To: qemu-devel

Public bug reported:

The AArch64 emulation ignores SPSel=0 when:

(1) taking an interrupt from an exception level greater than EL0 (e.g.,
EL1t),

(2) returning from an exception (via ERET) to an exception level greater
than EL0 (e.g., EL1t), with SPSR_ELx[SPSel]=0.

The attached patch fixes the problem in my application.

Background:

I'm running a standalone application (toy OS) that is performing
preemptive multithreading between threads running at EL1t, with
exception handling / context switching occurring at EL1h.  This bug
causes the stack pointer to be corrupted in the threads running at EL1t
(they end up with a version of the EL1h stack pointer (SP_EL1)).

Occurs in:
	qemu-2.1.0-rc1 (found in)
	commit c60a57ff497667780132a3fcdc1500c83af5d5c0 (current master)

** Affects: qemu
     Importance: Undecided
         Status: New

** Patch added: "Proposed fix"
   https://bugs.launchpad.net/bugs/1349277/+attachment/4164169/+files/qemu-aarch64-spsel-fix.patch

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1349277

Title:
  AArch64 emulation ignores SPSel=0 when taking (or returning from) an
  exception at EL1 or greater

Status in QEMU:
  New

Bug description:
  The AArch64 emulation ignores SPSel=0 when:

  (1) taking an interrupt from an exception level greater than EL0
  (e.g., EL1t),

  (2) returning from an exception (via ERET) to an exception level
  greater than EL0 (e.g., EL1t), with SPSR_ELx[SPSel]=0.

  The attached patch fixes the problem in my application.

  Background:

  I'm running a standalone application (toy OS) that is performing
  preemptive multithreading between threads running at EL1t, with
  exception handling / context switching occurring at EL1h.  This bug
  causes the stack pointer to be corrupted in the threads running at
  EL1t (they end up with a version of the EL1h stack pointer (SP_EL1)).

  Occurs in:
  	qemu-2.1.0-rc1 (found in)
  	commit c60a57ff497667780132a3fcdc1500c83af5d5c0 (current master)

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1349277/+subscriptions

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-06-28 15:01 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-28  7:40 [Qemu-devel] [Bug 1349277] [NEW] AArch64 emulation ignores SPSel=0 when taking (or returning from) an exception at EL1 or greater T McIntosh
2014-07-30  5:24 ` Edgar E. Iglesias
2014-12-04 19:02 ` [Qemu-devel] [Bug 1349277] " Andy Whitcroft
2014-12-04 20:11 ` Chris J Arges
2014-12-04 20:21 ` Ubuntu Foundations Team Bug Bot
2014-12-04 20:51 ` Chris J Arges
2014-12-04 22:01 ` Peter Maydell
2014-12-05 17:44 ` Launchpad Bug Tracker
2016-06-28 14:51 ` T. Huth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).