|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] x86/HVM: drop .complete hook for intercept handling
commit 40f5c7e1389c2c047656f0ed3cc9ed4e194883f2
Author: Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Thu Sep 12 09:17:43 2024 +0200
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Thu Sep 12 09:17:43 2024 +0200
x86/HVM: drop .complete hook for intercept handling
No user of the hook exists anymore.
While touching hvm_mmio_internal() also make direction of the request
explicit - it only so happens that IOREQ_WRITE is zero. Yet it being a
write is imperative for stdvga.c to "accept" the request.
Requested-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
xen/arch/x86/hvm/intercept.c | 24 +++---------------------
xen/arch/x86/include/asm/hvm/io.h | 2 --
2 files changed, 3 insertions(+), 23 deletions(-)
diff --git a/xen/arch/x86/hvm/intercept.c b/xen/arch/x86/hvm/intercept.c
index a949419cbe..8f82b82b07 100644
--- a/xen/arch/x86/hvm/intercept.c
+++ b/xen/arch/x86/hvm/intercept.c
@@ -240,21 +240,13 @@ static const struct hvm_io_handler
*hvm_find_io_handler(const ioreq_t *p)
int hvm_io_intercept(ioreq_t *p)
{
const struct hvm_io_handler *handler;
- const struct hvm_io_ops *ops;
- int rc;
handler = hvm_find_io_handler(p);
if ( handler == NULL )
return X86EMUL_UNHANDLEABLE;
- rc = hvm_process_io_intercept(handler, p);
-
- ops = handler->ops;
- if ( ops->complete != NULL )
- ops->complete(handler);
-
- return rc;
+ return hvm_process_io_intercept(handler, p);
}
struct hvm_io_handler *hvm_next_io_handler(struct domain *d)
@@ -326,25 +318,15 @@ bool relocate_portio_handler(struct domain *d, unsigned
int old_port,
bool hvm_mmio_internal(paddr_t gpa)
{
- const struct hvm_io_handler *handler;
- const struct hvm_io_ops *ops;
ioreq_t p = {
.type = IOREQ_TYPE_COPY,
.addr = gpa,
.count = 1,
.size = 1,
+ .dir = IOREQ_WRITE, /* for stdvga */
};
- handler = hvm_find_io_handler(&p);
-
- if ( handler == NULL )
- return 0;
-
- ops = handler->ops;
- if ( ops->complete != NULL )
- ops->complete(handler);
-
- return 1;
+ return hvm_find_io_handler(&p);
}
/*
diff --git a/xen/arch/x86/include/asm/hvm/io.h
b/xen/arch/x86/include/asm/hvm/io.h
index d72b29f73f..f2b8431fac 100644
--- a/xen/arch/x86/include/asm/hvm/io.h
+++ b/xen/arch/x86/include/asm/hvm/io.h
@@ -56,13 +56,11 @@ typedef int (*hvm_io_write_t)(const struct hvm_io_handler
*handler,
uint64_t data);
typedef bool (*hvm_io_accept_t)(const struct hvm_io_handler *handler,
const ioreq_t *p);
-typedef void (*hvm_io_complete_t)(const struct hvm_io_handler *handler);
struct hvm_io_ops {
hvm_io_accept_t accept;
hvm_io_read_t read;
hvm_io_write_t write;
- hvm_io_complete_t complete;
};
int hvm_process_io_intercept(const struct hvm_io_handler *handler,
--
generated by git-patchbot for /home/xen/git/xen.git#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |