Commit 1f75619a authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'x86_misc_for_v6.9_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull misc x86 fixes from Borislav Petkov:

 - Fix a wrong check in the function reporting whether a CPU executes
   (or not) a NMI handler

 - Ratelimit unknown NMIs messages in order to not potentially slow down
   the machine

 - Other fixlets

* tag 'x86_misc_for_v6.9_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/nmi: Fix the inverse "in NMI handler" check
  Documentation/maintainer-tip: Add C++ tail comments exception
  Documentation/maintainer-tip: Add Closes tag
  x86/nmi: Rate limit unknown NMI messages
  Documentation/kernel-parameters: Add spec_rstack_overflow to mitigations=off
parents 38b334fc d54e56f3
...@@ -3395,6 +3395,7 @@ ...@@ -3395,6 +3395,7 @@
nospectre_v1 [X86,PPC] nospectre_v1 [X86,PPC]
nospectre_v2 [X86,PPC,S390,ARM64] nospectre_v2 [X86,PPC,S390,ARM64]
retbleed=off [X86] retbleed=off [X86]
spec_rstack_overflow=off [X86]
spec_store_bypass_disable=off [X86,PPC] spec_store_bypass_disable=off [X86,PPC]
spectre_v2_user=off [X86] spectre_v2_user=off [X86]
srbds=off [X86,INTEL] srbds=off [X86,INTEL]
......
...@@ -304,13 +304,15 @@ following tag ordering scheme: ...@@ -304,13 +304,15 @@ following tag ordering scheme:
- Reported-by: ``Reporter <reporter@mail>`` - Reported-by: ``Reporter <reporter@mail>``
- Closes: ``URL or Message-ID of the bug report this is fixing``
- Originally-by: ``Original author <original-author@mail>`` - Originally-by: ``Original author <original-author@mail>``
- Suggested-by: ``Suggester <suggester@mail>`` - Suggested-by: ``Suggester <suggester@mail>``
- Co-developed-by: ``Co-author <co-author@mail>`` - Co-developed-by: ``Co-author <co-author@mail>``
Signed-off: ``Co-author <co-author@mail>`` Signed-off-by: ``Co-author <co-author@mail>``
Note, that Co-developed-by and Signed-off-by of the co-author(s) must Note, that Co-developed-by and Signed-off-by of the co-author(s) must
come in pairs. come in pairs.
...@@ -478,7 +480,7 @@ Multi-line comments:: ...@@ -478,7 +480,7 @@ Multi-line comments::
* Larger multi-line comments should be split into paragraphs. * Larger multi-line comments should be split into paragraphs.
*/ */
No tail comments: No tail comments (see below):
Please refrain from using tail comments. Tail comments disturb the Please refrain from using tail comments. Tail comments disturb the
reading flow in almost all contexts, but especially in code:: reading flow in almost all contexts, but especially in code::
...@@ -499,6 +501,34 @@ No tail comments: ...@@ -499,6 +501,34 @@ No tail comments:
/* This magic initialization needs a comment. Maybe not? */ /* This magic initialization needs a comment. Maybe not? */
seed = MAGIC_CONSTANT; seed = MAGIC_CONSTANT;
Use C++ style, tail comments when documenting structs in headers to
achieve a more compact layout and better readability::
// eax
u32 x2apic_shift : 5, // Number of bits to shift APIC ID right
// for the topology ID at the next level
: 27; // Reserved
// ebx
u32 num_processors : 16, // Number of processors at current level
: 16; // Reserved
versus::
/* eax */
/*
* Number of bits to shift APIC ID right for the topology ID
* at the next level
*/
u32 x2apic_shift : 5,
/* Reserved */
: 27;
/* ebx */
/* Number of processors at current level */
u32 num_processors : 16,
/* Reserved */
: 16;
Comment the important things: Comment the important things:
Comments should be added where the operation is not obvious. Documenting Comments should be added where the operation is not obvious. Documenting
......
...@@ -304,13 +304,13 @@ unknown_nmi_error(unsigned char reason, struct pt_regs *regs) ...@@ -304,13 +304,13 @@ unknown_nmi_error(unsigned char reason, struct pt_regs *regs)
__this_cpu_add(nmi_stats.unknown, 1); __this_cpu_add(nmi_stats.unknown, 1);
pr_emerg("Uhhuh. NMI received for unknown reason %02x on CPU %d.\n", pr_emerg_ratelimited("Uhhuh. NMI received for unknown reason %02x on CPU %d.\n",
reason, smp_processor_id()); reason, smp_processor_id());
if (unknown_nmi_panic || panic_on_unrecovered_nmi) if (unknown_nmi_panic || panic_on_unrecovered_nmi)
nmi_panic(regs, "NMI: Not continuing"); nmi_panic(regs, "NMI: Not continuing");
pr_emerg("Dazed and confused, but trying to continue\n"); pr_emerg_ratelimited("Dazed and confused, but trying to continue\n");
} }
NOKPROBE_SYMBOL(unknown_nmi_error); NOKPROBE_SYMBOL(unknown_nmi_error);
...@@ -637,7 +637,7 @@ void nmi_backtrace_stall_check(const struct cpumask *btp) ...@@ -637,7 +637,7 @@ void nmi_backtrace_stall_check(const struct cpumask *btp)
msgp = nmi_check_stall_msg[idx]; msgp = nmi_check_stall_msg[idx];
if (nsp->idt_ignored_snap != READ_ONCE(nsp->idt_ignored) && (idx & 0x1)) if (nsp->idt_ignored_snap != READ_ONCE(nsp->idt_ignored) && (idx & 0x1))
modp = ", but OK because ignore_nmis was set"; modp = ", but OK because ignore_nmis was set";
if (nmi_seq & ~0x1) if (nmi_seq & 0x1)
msghp = " (CPU currently in NMI handler function)"; msghp = " (CPU currently in NMI handler function)";
else if (nsp->idt_nmi_seq_snap + 1 == nmi_seq) else if (nsp->idt_nmi_seq_snap + 1 == nmi_seq)
msghp = " (CPU exited one NMI handler function)"; msghp = " (CPU exited one NMI handler function)";
......
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