Commit a017f583 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 fixes from Ingo Molnar:
 "Three fixes:

   - A boot crash fix with certain configs
   - a MAINTAINERS entry update
   - Documentation typo fixes"

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/Documentation: Fix various typos in Documentation/x86/ files
  x86/amd_nb: Fix boot crash on non-AMD systems
  MAINTAINERS: Update the Calgary IOMMU entry
parents 369da7fc c76a093d
...@@ -45,7 +45,7 @@ is how we expect the compiler, application and kernel to work together. ...@@ -45,7 +45,7 @@ is how we expect the compiler, application and kernel to work together.
MPX-instrumented. MPX-instrumented.
3) The kernel detects that the CPU has MPX, allows the new prctl() to 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 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 instead of reading it each time because the 'xsave' operation needed
to access the bounds directory register is an expensive operation. to access the bounds directory register is an expensive operation.
4) If the application needs to spill bounds out of the 4 registers, it 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. ...@@ -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 We need to decode MPX instructions to get violation address and
set this address into extended struct siginfo. 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 */ 87 /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
88 struct { 88 struct {
...@@ -240,5 +240,5 @@ them at the same bounds table. ...@@ -240,5 +240,5 @@ them at the same bounds table.
This is allowed architecturally. See more information "Intel(R) Architecture This is allowed architecturally. See more information "Intel(R) Architecture
Instruction Set Extensions Programming Reference" (9.3.4). 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. in-use bounds table since it does not recognize sharing.
...@@ -5,7 +5,7 @@ memory, it has two choices: ...@@ -5,7 +5,7 @@ memory, it has two choices:
from areas other than the one we are trying to flush will be from areas other than the one we are trying to flush will be
destroyed and must be refilled later, at some cost. destroyed and must be refilled later, at some cost.
2. Use the invlpg instruction to invalidate a single page at a 2. Use the invlpg instruction to invalidate a single page at a
time. This could potentialy cost many more instructions, but time. This could potentially cost many more instructions, but
it is a much more precise operation, causing no collateral it is a much more precise operation, causing no collateral
damage to other TLB entries. damage to other TLB entries.
...@@ -19,7 +19,7 @@ Which method to do depends on a few things: ...@@ -19,7 +19,7 @@ Which method to do depends on a few things:
work. work.
3. The size of the TLB. The larger the TLB, the more collateral 3. The size of the TLB. The larger the TLB, the more collateral
damage we do with a full flush. So, the larger the TLB, the damage we do with a full flush. So, the larger the TLB, the
more attrative an individual flush looks. Data and more attractive an individual flush looks. Data and
instructions have separate TLBs, as do different page sizes. instructions have separate TLBs, as do different page sizes.
4. The microarchitecture. The TLB has become a multi-level 4. The microarchitecture. The TLB has become a multi-level
cache on modern CPUs, and the global flushes have become more cache on modern CPUs, and the global flushes have become more
......
...@@ -36,7 +36,7 @@ between all CPUs. ...@@ -36,7 +36,7 @@ between all CPUs.
check_interval check_interval
How often to poll for corrected machine check errors, in seconds How often to poll for corrected machine check errors, in seconds
(Note output is hexademical). Default 5 minutes. When the poller (Note output is hexadecimal). Default 5 minutes. When the poller
finds MCEs it triggers an exponential speedup (poll more often) on finds MCEs it triggers an exponential speedup (poll more often) on
the polling interval. When the poller stops finding MCEs, it the polling interval. When the poller stops finding MCEs, it
triggers an exponential backoff (poll less often) on the polling triggers an exponential backoff (poll less often) on the polling
......
...@@ -71,8 +71,8 @@ int amd_cache_northbridges(void) ...@@ -71,8 +71,8 @@ int amd_cache_northbridges(void)
while ((misc = next_northbridge(misc, amd_nb_misc_ids)) != NULL) while ((misc = next_northbridge(misc, amd_nb_misc_ids)) != NULL)
i++; i++;
if (i == 0) if (!i)
return 0; return -ENODEV;
nb = kzalloc(i * sizeof(struct amd_northbridge), GFP_KERNEL); nb = kzalloc(i * sizeof(struct amd_northbridge), GFP_KERNEL);
if (!nb) if (!nb)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment