Displaying 16 results from an estimated 16 matches for "insn_get_seg_base".
2020 Apr 28
0
[PATCH v3 25/75] x86/sev-es: Add support for handling IOIO exceptions
.../
+static bool insn_has_rep_prefix(struct insn *insn)
+{
+ int i;
+
+ insn_get_prefixes(insn);
+
+ for (i = 0; i < insn->prefixes.nbytes; i++) {
+ insn_byte_t p = insn->prefixes.bytes[i];
+
+ if (p == 0xf2 || p == 0xf3)
+ return true;
+ }
+
+ return false;
+}
+
+/*
+ * Only a dummy for insn_get_seg_base() - Early boot-code is 64bit only and
+ * doesn't use segments.
+ */
+static unsigned long insn_get_seg_base(struct pt_regs *regs, int seg_reg_idx)
+{
+ return 0UL;
+}
+
static inline u64 sev_es_rd_ghcb_msr(void)
{
unsigned long low, high;
@@ -150,6 +179,9 @@ void do_boot_stage2_vc(struct p...
2020 May 20
2
[PATCH v3 25/75] x86/sev-es: Add support for handling IOIO exceptions
...= (exit_info_1 >> 4) & 0x7;
> + ghcb_count = sizeof(ghcb->shared_buffer) / io_bytes;
> +
> + op_count = (exit_info_1 & IOIO_REP) ? regs->cx : 1;
> + exit_info_2 = min(op_count, ghcb_count);
> + exit_bytes = exit_info_2 * io_bytes;
> +
> + es_base = insn_get_seg_base(ctxt->regs, INAT_SEG_REG_ES);
> +
> + if (!(exit_info_1 & IOIO_TYPE_IN)) {
> + ret = vc_insn_string_read(ctxt,
> + (void *)(es_base + regs->si),
SEV(-ES) is 64-bit only, why bother with the es_base charade?
> + ghcb->shared_buffer, io_bytes,
&g...
2020 May 20
2
[PATCH v3 25/75] x86/sev-es: Add support for handling IOIO exceptions
...= (exit_info_1 >> 4) & 0x7;
> + ghcb_count = sizeof(ghcb->shared_buffer) / io_bytes;
> +
> + op_count = (exit_info_1 & IOIO_REP) ? regs->cx : 1;
> + exit_info_2 = min(op_count, ghcb_count);
> + exit_bytes = exit_info_2 * io_bytes;
> +
> + es_base = insn_get_seg_base(ctxt->regs, INAT_SEG_REG_ES);
> +
> + if (!(exit_info_1 & IOIO_TYPE_IN)) {
> + ret = vc_insn_string_read(ctxt,
> + (void *)(es_base + regs->si),
SEV(-ES) is 64-bit only, why bother with the es_base charade?
> + ghcb->shared_buffer, io_bytes,
&g...
2020 Apr 28
0
[PATCH v3 52/75] x86/sev-es: Handle MMIO String Instructions
...be moved to memcpy_fromio() and memcpy_toio().
+ */
+static enum es_result vc_handle_mmio_movs(struct es_em_ctxt *ctxt,
+ unsigned int bytes)
+{
+ unsigned long ds_base, es_base;
+ unsigned char *src, *dst;
+ unsigned char buffer[8];
+ enum es_result ret;
+ bool rep;
+ int off;
+
+ ds_base = insn_get_seg_base(ctxt->regs, INAT_SEG_REG_DS);
+ es_base = insn_get_seg_base(ctxt->regs, INAT_SEG_REG_ES);
+
+ if (ds_base == -1L || es_base == -1L) {
+ ctxt->fi.vector = X86_TRAP_GP;
+ ctxt->fi.error_code = 0;
+ return ES_EXCEPTION;
+ }
+
+ src = ds_base + (unsigned char *)ctxt->regs->si;
+ ds...
2020 Jun 03
0
[PATCH v3 25/75] x86/sev-es: Add support for handling IOIO exceptions
...x7;
> > + ghcb_count = sizeof(ghcb->shared_buffer) / io_bytes;
> > +
> > + op_count = (exit_info_1 & IOIO_REP) ? regs->cx : 1;
> > + exit_info_2 = min(op_count, ghcb_count);
> > + exit_bytes = exit_info_2 * io_bytes;
> > +
> > + es_base = insn_get_seg_base(ctxt->regs, INAT_SEG_REG_ES);
> > +
> > + if (!(exit_info_1 & IOIO_TYPE_IN)) {
> > + ret = vc_insn_string_read(ctxt,
> > + (void *)(es_base + regs->si),
>
> SEV(-ES) is 64-bit only, why bother with the es_base charade?
User-space can also caus...
2020 Apr 28
0
[PATCH v3 08/75] x86/umip: Factor out instruction decoding
...+++++++++++++++
3 files changed, 48 insertions(+), 22 deletions(-)
diff --git a/arch/x86/include/asm/insn-eval.h b/arch/x86/include/asm/insn-eval.h
index b8b9ef1bbd06..b4ff3e3316d1 100644
--- a/arch/x86/include/asm/insn-eval.h
+++ b/arch/x86/include/asm/insn-eval.h
@@ -21,5 +21,7 @@ unsigned long insn_get_seg_base(struct pt_regs *regs, int seg_reg_idx);
int insn_get_code_seg_params(struct pt_regs *regs);
int insn_fetch_from_user(struct pt_regs *regs,
unsigned char buf[MAX_INSN_SIZE]);
+bool insn_decode(struct pt_regs *regs, struct insn *insn,
+ unsigned char buf[MAX_INSN_SIZE], int buf_size);
#en...
2020 Jun 03
2
[PATCH v3 25/75] x86/sev-es: Add support for handling IOIO exceptions
...sizeof(ghcb->shared_buffer) / io_bytes;
> > > +
> > > + op_count = (exit_info_1 & IOIO_REP) ? regs->cx : 1;
> > > + exit_info_2 = min(op_count, ghcb_count);
> > > + exit_bytes = exit_info_2 * io_bytes;
> > > +
> > > + es_base = insn_get_seg_base(ctxt->regs, INAT_SEG_REG_ES);
> > > +
> > > + if (!(exit_info_1 & IOIO_TYPE_IN)) {
> > > + ret = vc_insn_string_read(ctxt,
> > > + (void *)(es_base + regs->si),
> >
> > SEV(-ES) is 64-bit only, why bother with the es_base char...
2020 Jun 03
2
[PATCH v3 25/75] x86/sev-es: Add support for handling IOIO exceptions
...sizeof(ghcb->shared_buffer) / io_bytes;
> > > +
> > > + op_count = (exit_info_1 & IOIO_REP) ? regs->cx : 1;
> > > + exit_info_2 = min(op_count, ghcb_count);
> > > + exit_bytes = exit_info_2 * io_bytes;
> > > +
> > > + es_base = insn_get_seg_base(ctxt->regs, INAT_SEG_REG_ES);
> > > +
> > > + if (!(exit_info_1 & IOIO_TYPE_IN)) {
> > > + ret = vc_insn_string_read(ctxt,
> > > + (void *)(es_base + regs->si),
> >
> > SEV(-ES) is 64-bit only, why bother with the es_base char...
2020 Jul 24
86
[PATCH v5 00/75] x86: SEV-ES Guest Support
From: Joerg Roedel <jroedel at suse.de>
Hi,
here is a rebased version of the latest SEV-ES patches. They are now
based on latest tip/master instead of upstream Linux and include the
necessary changes.
Changes to v4 are in particular:
- Moved early IDT setup code to idt.c, because the idt_descr
and the idt_table are now static
- This required to make stack protector work early (or
2020 Jul 14
92
[PATCH v4 00/75] x86: SEV-ES Guest Support
From: Joerg Roedel <jroedel at suse.de>
Hi,
here is the fourth version of the SEV-ES Guest Support patches. I
addressed the review comments sent to me for the previous version and
rebased the code v5.8-rc5.
The biggest change in this version is the IST handling code for the
#VC handler. I adapted the entry code for the #VC handler to the big
pile of entry code changes merged into
2020 Jul 14
92
[PATCH v4 00/75] x86: SEV-ES Guest Support
From: Joerg Roedel <jroedel at suse.de>
Hi,
here is the fourth version of the SEV-ES Guest Support patches. I
addressed the review comments sent to me for the previous version and
rebased the code v5.8-rc5.
The biggest change in this version is the IST handling code for the
#VC handler. I adapted the entry code for the #VC handler to the big
pile of entry code changes merged into
2020 Apr 28
116
[PATCH v3 00/75] x86: SEV-ES Guest Support
Hi,
here is the next version of changes to enable Linux to run as an SEV-ES
guest. The code was rebased to v5.7-rc3 and got a fair number of changes
since the last version.
What is SEV-ES
==============
SEV-ES is an acronym for 'Secure Encrypted Virtualization - Encrypted
State' and means a hardware feature of AMD processors which hides the
register state of VCPUs to the hypervisor by
2020 Apr 28
116
[PATCH v3 00/75] x86: SEV-ES Guest Support
Hi,
here is the next version of changes to enable Linux to run as an SEV-ES
guest. The code was rebased to v5.7-rc3 and got a fair number of changes
since the last version.
What is SEV-ES
==============
SEV-ES is an acronym for 'Secure Encrypted Virtualization - Encrypted
State' and means a hardware feature of AMD processors which hides the
register state of VCPUs to the hypervisor by
2020 Aug 24
96
[PATCH v6 00/76] x86: SEV-ES Guest Support
From: Joerg Roedel <jroedel at suse.de>
Hi,
here is the new version of the SEV-ES client enabling patch-set. It is
based on the latest tip/master branch and contains the necessary
changes. In particular those ar:
- Enabling CR4.FSGSBASE early on supported processors so that
early #VC exceptions on APs can be handled.
- Add another patch (patch 1) to fix a KVM frame-size build
2020 Sep 07
84
[PATCH v7 00/72] x86: SEV-ES Guest Support
From: Joerg Roedel <jroedel at suse.de>
Hi,
here is a new version of the SEV-ES Guest Support patches for x86. The
previous versions can be found as a linked list starting here:
https://lore.kernel.org/lkml/20200824085511.7553-1-joro at 8bytes.org/
I updated the patch-set based on ther review comments I got and the
discussions around it.
Another important change is that the early IDT
2020 Sep 07
84
[PATCH v7 00/72] x86: SEV-ES Guest Support
From: Joerg Roedel <jroedel at suse.de>
Hi,
here is a new version of the SEV-ES Guest Support patches for x86. The
previous versions can be found as a linked list starting here:
https://lore.kernel.org/lkml/20200824085511.7553-1-joro at 8bytes.org/
I updated the patch-set based on ther review comments I got and the
discussions around it.
Another important change is that the early IDT