2022-11-03 14:28:04

by Maxim Levitsky

[permalink] [raw]
Subject: [PATCH v2 5/9] KVM: selftests: move idt_entry to header

struct idt_entry will be used for a test which will break IDT on purpose.

Signed-off-by: Maxim Levitsky <[email protected]>
---
.../selftests/kvm/include/x86_64/processor.h | 13 +++++++++++++
tools/testing/selftests/kvm/lib/x86_64/processor.c | 13 -------------
2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/tools/testing/selftests/kvm/include/x86_64/processor.h b/tools/testing/selftests/kvm/include/x86_64/processor.h
index e8ca0d8a6a7e0a..5da0c5e2a7afc4 100644
--- a/tools/testing/selftests/kvm/include/x86_64/processor.h
+++ b/tools/testing/selftests/kvm/include/x86_64/processor.h
@@ -748,6 +748,19 @@ struct ex_regs {
uint64_t rflags;
};

+struct idt_entry {
+ uint16_t offset0;
+ uint16_t selector;
+ uint16_t ist : 3;
+ uint16_t : 5;
+ uint16_t type : 4;
+ uint16_t : 1;
+ uint16_t dpl : 2;
+ uint16_t p : 1;
+ uint16_t offset1;
+ uint32_t offset2; uint32_t reserved;
+};
+
void vm_init_descriptor_tables(struct kvm_vm *vm);
void vcpu_init_descriptor_tables(struct kvm_vcpu *vcpu);
void vm_install_exception_handler(struct kvm_vm *vm, int vector,
diff --git a/tools/testing/selftests/kvm/lib/x86_64/processor.c b/tools/testing/selftests/kvm/lib/x86_64/processor.c
index 39c4409ef56a6a..41c1c73c464d48 100644
--- a/tools/testing/selftests/kvm/lib/x86_64/processor.c
+++ b/tools/testing/selftests/kvm/lib/x86_64/processor.c
@@ -1074,19 +1074,6 @@ void kvm_get_cpu_address_width(unsigned int *pa_bits, unsigned int *va_bits)
}
}

-struct idt_entry {
- uint16_t offset0;
- uint16_t selector;
- uint16_t ist : 3;
- uint16_t : 5;
- uint16_t type : 4;
- uint16_t : 1;
- uint16_t dpl : 2;
- uint16_t p : 1;
- uint16_t offset1;
- uint32_t offset2; uint32_t reserved;
-};
-
static void set_idt_entry(struct kvm_vm *vm, int vector, unsigned long addr,
int dpl, unsigned short selector)
{
--
2.34.3



2022-11-21 16:50:35

by Liam Merwick

[permalink] [raw]
Subject: Re: [PATCH v2 5/9] KVM: selftests: move idt_entry to header

On 03/11/2022 14:13, Maxim Levitsky wrote:
> struct idt_entry will be used for a test which will break IDT on purpose.
>
> Signed-off-by: Maxim Levitsky <[email protected]>

Reviewed-by: Liam Merwick <[email protected]>


> ---
> .../selftests/kvm/include/x86_64/processor.h | 13 +++++++++++++
> tools/testing/selftests/kvm/lib/x86_64/processor.c | 13 -------------
> 2 files changed, 13 insertions(+), 13 deletions(-)
>
> diff --git a/tools/testing/selftests/kvm/include/x86_64/processor.h b/tools/testing/selftests/kvm/include/x86_64/processor.h
> index e8ca0d8a6a7e0a..5da0c5e2a7afc4 100644
> --- a/tools/testing/selftests/kvm/include/x86_64/processor.h
> +++ b/tools/testing/selftests/kvm/include/x86_64/processor.h
> @@ -748,6 +748,19 @@ struct ex_regs {
> uint64_t rflags;
> };
>
> +struct idt_entry {
> + uint16_t offset0;
> + uint16_t selector;
> + uint16_t ist : 3;
> + uint16_t : 5;
> + uint16_t type : 4;
> + uint16_t : 1;
> + uint16_t dpl : 2;
> + uint16_t p : 1;
> + uint16_t offset1;
> + uint32_t offset2; uint32_t reserved;
> +};
> +
> void vm_init_descriptor_tables(struct kvm_vm *vm);
> void vcpu_init_descriptor_tables(struct kvm_vcpu *vcpu);
> void vm_install_exception_handler(struct kvm_vm *vm, int vector,
> diff --git a/tools/testing/selftests/kvm/lib/x86_64/processor.c b/tools/testing/selftests/kvm/lib/x86_64/processor.c
> index 39c4409ef56a6a..41c1c73c464d48 100644
> --- a/tools/testing/selftests/kvm/lib/x86_64/processor.c
> +++ b/tools/testing/selftests/kvm/lib/x86_64/processor.c
> @@ -1074,19 +1074,6 @@ void kvm_get_cpu_address_width(unsigned int *pa_bits, unsigned int *va_bits)
> }
> }
>
> -struct idt_entry {
> - uint16_t offset0;
> - uint16_t selector;
> - uint16_t ist : 3;
> - uint16_t : 5;
> - uint16_t type : 4;
> - uint16_t : 1;
> - uint16_t dpl : 2;
> - uint16_t p : 1;
> - uint16_t offset1;
> - uint32_t offset2; uint32_t reserved;
> -};
> -
> static void set_idt_entry(struct kvm_vm *vm, int vector, unsigned long addr,
> int dpl, unsigned short selector)
> {