* important fsyscall bug fix (affects McKinley only)
@ 2003-10-15 23:58 David Mosberger
0 siblings, 0 replies; only message in thread
From: David Mosberger @ 2003-10-15 23:58 UTC (permalink / raw)
To: linux-ia64
While working on a lightweight version of sigprocmask(), I discovered
that the McKinley E9 workaround had exactly the opposite effect from
what was intended: it was supposed to ensure that we always return at
priv level 3, and instead it caused us to always return at priv level
0! Fortunately, the fix is pretty simple and the whole patch can be
found here:
http://lia64.bkbits.net:8080/linux-ia64-2.5/cset@1.1512.1.22
Since the fsyscall stubs aren't in wide-spread use yet, I doubt this
bug will affect many people, but clearly it would have been a problem
going forward. Also, remember that the workaround is needed only for
McKinley. Merced and Madison are both OK in this regard.
The above patch also includes the sigprocmask() light-weight handler
because it's easiest to observe the bug with this handler (since it's
invoked via an inlined syscall; non-inlined syscalls mask the problem,
because they'll return immediately with br.ret again, which drops the
privilege level back to 3).
--david
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2003-10-15 23:58 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-10-15 23:58 important fsyscall bug fix (affects McKinley only) David Mosberger
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox