|
@@ -45,7 +45,7 @@ is how we expect the compiler, application and kernel to work together.
|
|
|
MPX-instrumented.
|
|
|
3) The kernel detects that the CPU has MPX, allows the new prctl() to
|
|
|
succeed, and notes the location of the bounds directory. Userspace is
|
|
|
- expected to keep the bounds directory at that locationWe note it
|
|
|
+ expected to keep the bounds directory at that location. We note it
|
|
|
instead of reading it each time because the 'xsave' operation needed
|
|
|
to access the bounds directory register is an expensive operation.
|
|
|
4) If the application needs to spill bounds out of the 4 registers, it
|
|
@@ -167,7 +167,7 @@ If a #BR is generated due to a bounds violation caused by MPX.
|
|
|
We need to decode MPX instructions to get violation address and
|
|
|
set this address into extended struct siginfo.
|
|
|
|
|
|
-The _sigfault feild of struct siginfo is extended as follow:
|
|
|
+The _sigfault field of struct siginfo is extended as follow:
|
|
|
|
|
|
87 /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
|
|
|
88 struct {
|
|
@@ -240,5 +240,5 @@ them at the same bounds table.
|
|
|
This is allowed architecturally. See more information "Intel(R) Architecture
|
|
|
Instruction Set Extensions Programming Reference" (9.3.4).
|
|
|
|
|
|
-However, if users did this, the kernel might be fooled in to unmaping an
|
|
|
+However, if users did this, the kernel might be fooled in to unmapping an
|
|
|
in-use bounds table since it does not recognize sharing.
|