<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/x86/kernel/idt.c, branch linux-5.12.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.12.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.12.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2020-10-14T17:21:34Z</updated>
<entry>
<title>Merge tag 'x86_seves_for_v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip</title>
<updated>2020-10-14T17:21:34Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2020-10-14T17:21:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=da9803dfd3955bd2f9909d55e23f188ad76dbe58'/>
<id>urn:sha1:da9803dfd3955bd2f9909d55e23f188ad76dbe58</id>
<content type='text'>
Pull x86 SEV-ES support from Borislav Petkov:
 "SEV-ES enhances the current guest memory encryption support called SEV
  by also encrypting the guest register state, making the registers
  inaccessible to the hypervisor by en-/decrypting them on world
  switches. Thus, it adds additional protection to Linux guests against
  exfiltration, control flow and rollback attacks.

  With SEV-ES, the guest is in full control of what registers the
  hypervisor can access. This is provided by a guest-host exchange
  mechanism based on a new exception vector called VMM Communication
  Exception (#VC), a new instruction called VMGEXIT and a shared
  Guest-Host Communication Block which is a decrypted page shared
  between the guest and the hypervisor.

  Intercepts to the hypervisor become #VC exceptions in an SEV-ES guest
  so in order for that exception mechanism to work, the early x86 init
  code needed to be made able to handle exceptions, which, in itself,
  brings a bunch of very nice cleanups and improvements to the early
  boot code like an early page fault handler, allowing for on-demand
  building of the identity mapping. With that, !KASLR configurations do
  not use the EFI page table anymore but switch to a kernel-controlled
  one.

  The main part of this series adds the support for that new exchange
  mechanism. The goal has been to keep this as much as possibly separate
  from the core x86 code by concentrating the machinery in two
  SEV-ES-specific files:

    arch/x86/kernel/sev-es-shared.c
    arch/x86/kernel/sev-es.c

  Other interaction with core x86 code has been kept at minimum and
  behind static keys to minimize the performance impact on !SEV-ES
  setups.

  Work by Joerg Roedel and Thomas Lendacky and others"

* tag 'x86_seves_for_v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (73 commits)
  x86/sev-es: Use GHCB accessor for setting the MMIO scratch buffer
  x86/sev-es: Check required CPU features for SEV-ES
  x86/efi: Add GHCB mappings when SEV-ES is active
  x86/sev-es: Handle NMI State
  x86/sev-es: Support CPU offline/online
  x86/head/64: Don't call verify_cpu() on starting APs
  x86/smpboot: Load TSS and getcpu GDT entry before loading IDT
  x86/realmode: Setup AP jump table
  x86/realmode: Add SEV-ES specific trampoline entry point
  x86/vmware: Add VMware-specific handling for VMMCALL under SEV-ES
  x86/kvm: Add KVM-specific VMMCALL handling under SEV-ES
  x86/paravirt: Allow hypervisor-specific VMMCALL handling under SEV-ES
  x86/sev-es: Handle #DB Events
  x86/sev-es: Handle #AC Events
  x86/sev-es: Handle VMMCALL Events
  x86/sev-es: Handle MWAIT/MWAITX Events
  x86/sev-es: Handle MONITOR/MONITORX Events
  x86/sev-es: Handle INVD Events
  x86/sev-es: Handle RDPMC Events
  x86/sev-es: Handle RDTSC(P) Events
  ...
</content>
</entry>
<entry>
<title>x86/platform/uv: Remove UV BAU TLB Shootdown Handler</title>
<updated>2020-10-07T06:45:39Z</updated>
<author>
<name>Mike Travis</name>
</author>
<published>2020-10-05T20:39:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=39297dde7390e01bfd737052fbb5313a09062e2d'/>
<id>urn:sha1:39297dde7390e01bfd737052fbb5313a09062e2d</id>
<content type='text'>
The Broadcast Assist Unit (BAU) TLB shootdown handler is being rewritten
to become the UV BAU APIC driver. It is designed to speed up sending
IPIs to selective CPUs within the system. Remove the current TLB
shutdown handler (tlb_uv.c) file and a couple of kernel hooks in the
interim.

Signed-off-by: Mike Travis &lt;mike.travis@hpe.com&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Reviewed-by: Dimitri Sivanich &lt;dimitri.sivanich@hpe.com&gt;
Link: https://lkml.kernel.org/r/20201005203929.148656-2-mike.travis@hpe.com
</content>
</entry>
<entry>
<title>x86/sev-es: Add a Runtime #VC Exception Handler</title>
<updated>2020-09-09T09:33:19Z</updated>
<author>
<name>Tom Lendacky</name>
</author>
<published>2020-09-07T13:15:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0786138c78e79343c7b015d77507cbf9d5f15d00'/>
<id>urn:sha1:0786138c78e79343c7b015d77507cbf9d5f15d00</id>
<content type='text'>
Add the handlers for #VC exceptions invoked at runtime.

Signed-off-by: Tom Lendacky &lt;thomas.lendacky@amd.com&gt;
Signed-off-by: Joerg Roedel &lt;jroedel@suse.de&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Link: https://lkml.kernel.org/r/20200907131613.12703-47-joro@8bytes.org
</content>
</entry>
<entry>
<title>x86/idt: Make IDT init functions static inlines</title>
<updated>2020-09-07T20:44:43Z</updated>
<author>
<name>Joerg Roedel</name>
</author>
<published>2020-09-07T13:15:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=097ee5b778b8970e1c2ed3ca1631b297d90acd61'/>
<id>urn:sha1:097ee5b778b8970e1c2ed3ca1631b297d90acd61</id>
<content type='text'>
Move these two functions from kernel/idt.c to include/asm/desc.h:

	* init_idt_data()
	* idt_init_desc()

These functions are needed to setup IDT entries very early and need to
be called from head64.c. To be usable this early, these functions need
to be compiled without instrumentation and the stack-protector feature.

These features need to be kept enabled for kernel/idt.c, so head64.c
must use its own versions.

 [ bp: Take Kees' suggested patch title and add his Rev-by. ]

Signed-off-by: Joerg Roedel &lt;jroedel@suse.de&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Reviewed-by: Kees Cook &lt;keescook@chromium.org&gt;
Link: https://lkml.kernel.org/r/20200907131613.12703-35-joro@8bytes.org
</content>
</entry>
<entry>
<title>x86/idt: Split idt_data setup out of set_intr_gate()</title>
<updated>2020-09-07T19:30:38Z</updated>
<author>
<name>Joerg Roedel</name>
</author>
<published>2020-09-07T13:15:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4bed2266cc6f9c3f6cd91378ea4fc76edde674cf'/>
<id>urn:sha1:4bed2266cc6f9c3f6cd91378ea4fc76edde674cf</id>
<content type='text'>
The code to setup idt_data is needed for early exception handling, but
set_intr_gate() can't be used that early because it has pv-ops in its
code path which don't work that early.

Split out the idt_data initialization part from set_intr_gate() so
that it can be used separately.

Signed-off-by: Joerg Roedel &lt;jroedel@suse.de&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Reviewed-by: Kees Cook &lt;keescook@chromium.org&gt;
Link: https://lkml.kernel.org/r/20200907131613.12703-29-joro@8bytes.org
</content>
</entry>
<entry>
<title>x86/idt: Make idt_descr static</title>
<updated>2020-06-20T09:47:35Z</updated>
<author>
<name>Jason Andryuk</name>
</author>
<published>2020-06-19T20:51:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=286d966b21587b6303081b902f5c5e30b691baf5'/>
<id>urn:sha1:286d966b21587b6303081b902f5c5e30b691baf5</id>
<content type='text'>
Commit

  3e77abda65b1 ("x86/idt: Consolidate idt functionality")

states that idt_descr could be made static, but it did not actually make
the change. Make it static now.

Fixes: 3e77abda65b1 ("x86/idt: Consolidate idt functionality")
Signed-off-by: Jason Andryuk &lt;jandryuk@gmail.com&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Link: https://lkml.kernel.org/r/20200619205103.30873-1-jandryuk@gmail.com
</content>
</entry>
<entry>
<title>x86/idt: Consolidate idt functionality</title>
<updated>2020-06-11T13:15:26Z</updated>
<author>
<name>Thomas Gleixner</name>
</author>
<published>2020-05-28T14:53:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3e77abda65b1cec10ef6b18b1ccfee0beaf400f1'/>
<id>urn:sha1:3e77abda65b1cec10ef6b18b1ccfee0beaf400f1</id>
<content type='text'>
 - Move load_current_idt() out of line and replace the hideous comment with
   a lockdep assert. This allows to make idt_table and idt_descr static.

 - Mark idt_table read only after the IDT initialization is complete.

 - Shuffle code around to consolidate the #ifdef sections into one.

 - Adapt the F00F bug code.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Link: https://lkml.kernel.org/r/20200528145523.084915381@linutronix.de


</content>
</entry>
<entry>
<title>x86/idt: Cleanup trap_init()</title>
<updated>2020-06-11T13:15:26Z</updated>
<author>
<name>Thomas Gleixner</name>
</author>
<published>2020-05-28T14:53:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=00229a54300108502f68c8777faca2d13f805f1a'/>
<id>urn:sha1:00229a54300108502f68c8777faca2d13f805f1a</id>
<content type='text'>
No point in having all the IDT cruft in trap_init(). Move it into the IDT
code and fixup the comments.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Link: https://lkml.kernel.org/r/20200528145522.992376498@linutronix.de



</content>
</entry>
<entry>
<title>x86/idt: Use proper constants for table size</title>
<updated>2020-06-11T13:15:25Z</updated>
<author>
<name>Thomas Gleixner</name>
</author>
<published>2020-05-28T14:53:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5a2bafca1b0675a126143eea3610143130347783'/>
<id>urn:sha1:5a2bafca1b0675a126143eea3610143130347783</id>
<content type='text'>
Use the actual struct size to calculate the IDT table size instead of
hardcoded values.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Link: https://lkml.kernel.org/r/20200528145522.898591501@linutronix.de



</content>
</entry>
<entry>
<title>x86/idt: Add comments about early #PF handling</title>
<updated>2020-06-11T13:15:25Z</updated>
<author>
<name>Thomas Gleixner</name>
</author>
<published>2020-05-28T14:53:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=94438af40d06c110988fc9e30baf801f38b1491a'/>
<id>urn:sha1:94438af40d06c110988fc9e30baf801f38b1491a</id>
<content type='text'>
The difference between 32 and 64 bit vs. early #PF handling is not
documented. Replace the FIXME at idt_setup_early_pf() with proper comments.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Link: https://lkml.kernel.org/r/20200528145522.807135882@linutronix.de



</content>
</entry>
</feed>
