aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndre Przywara <andre.przywara@arm.com>2021-03-15 15:33:29 +0000
committerWill Deacon <will@kernel.org>2021-03-18 09:44:45 +0000
commit97531eb2ca70dae06d4bef38cbdc28c1f7adfa0a (patch)
treefe4e00023ea2804a49628f23522b6377af0b1a66
parent90b2d3adadf218dfc6bdfdfcefe269843360223c (diff)
downloadkvmtool-97531eb2ca70dae06d4bef38cbdc28c1f7adfa0a.tar.gz
ioport: Remove ioport__setup_arch()
Since x86 had a special need for registering tons of special I/O ports, we had an ioport__setup_arch() callback, to allow each architecture to do the same. As it turns out no one uses it beside x86, so we remove that unnecessary abstraction. The generic function was registered via a device_base_init() call, so we just do the same for the x86 specific function only, and can remove the unneeded ioport__setup_arch(). Signed-off-by: Andre Przywara <andre.przywara@arm.com> Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com> Link: https://lore.kernel.org/r/20210315153350.19988-2-andre.przywara@arm.com Signed-off-by: Will Deacon <will@kernel.org>
-rw-r--r--arm/ioport.c5
-rw-r--r--include/kvm/ioport.h1
-rw-r--r--ioport.c6
-rw-r--r--mips/kvm.c5
-rw-r--r--powerpc/ioport.c6
-rw-r--r--x86/ioport.c3
6 files changed, 2 insertions, 24 deletions
diff --git a/arm/ioport.c b/arm/ioport.c
index 2f0feb9a..24092c9d 100644
--- a/arm/ioport.c
+++ b/arm/ioport.c
@@ -1,11 +1,6 @@
#include "kvm/ioport.h"
#include "kvm/irq.h"
-int ioport__setup_arch(struct kvm *kvm)
-{
- return 0;
-}
-
void ioport__map_irq(u8 *irq)
{
*irq = irq__alloc_line();
diff --git a/include/kvm/ioport.h b/include/kvm/ioport.h
index 039633f7..d0213541 100644
--- a/include/kvm/ioport.h
+++ b/include/kvm/ioport.h
@@ -35,7 +35,6 @@ struct ioport_operations {
enum irq_type));
};
-int ioport__setup_arch(struct kvm *kvm);
void ioport__map_irq(u8 *irq);
int __must_check ioport__register(struct kvm *kvm, u16 port, struct ioport_operations *ops,
diff --git a/ioport.c b/ioport.c
index 844a832d..a6972179 100644
--- a/ioport.c
+++ b/ioport.c
@@ -221,12 +221,6 @@ out:
return !kvm->cfg.ioport_debug;
}
-int ioport__init(struct kvm *kvm)
-{
- return ioport__setup_arch(kvm);
-}
-dev_base_init(ioport__init);
-
int ioport__exit(struct kvm *kvm)
{
ioport__unregister_all();
diff --git a/mips/kvm.c b/mips/kvm.c
index 26355930..e110e5d5 100644
--- a/mips/kvm.c
+++ b/mips/kvm.c
@@ -100,11 +100,6 @@ void kvm__irq_trigger(struct kvm *kvm, int irq)
die_perror("KVM_IRQ_LINE ioctl");
}
-int ioport__setup_arch(struct kvm *kvm)
-{
- return 0;
-}
-
bool kvm__arch_cpu_supports_vm(void)
{
return true;
diff --git a/powerpc/ioport.c b/powerpc/ioport.c
index 0c188b61..a5cff4ee 100644
--- a/powerpc/ioport.c
+++ b/powerpc/ioport.c
@@ -12,12 +12,6 @@
#include <stdlib.h>
-int ioport__setup_arch(struct kvm *kvm)
-{
- /* PPC has no legacy ioports to set up */
- return 0;
-}
-
void ioport__map_irq(u8 *irq)
{
}
diff --git a/x86/ioport.c b/x86/ioport.c
index 7ad7b8f3..a8d2bb1a 100644
--- a/x86/ioport.c
+++ b/x86/ioport.c
@@ -69,7 +69,7 @@ void ioport__map_irq(u8 *irq)
{
}
-int ioport__setup_arch(struct kvm *kvm)
+static int ioport__setup_arch(struct kvm *kvm)
{
int r;
@@ -150,3 +150,4 @@ int ioport__setup_arch(struct kvm *kvm)
return 0;
}
+dev_base_init(ioport__setup_arch);