Commit 8538cb22 authored by Steven Price's avatar Steven Price Committed by Marc Zyngier

KVM: Allow kvm_device_ops to be const

Currently a kvm_device_ops structure cannot be const without triggering
compiler warnings. However the structure doesn't need to be written to
and, by marking it const, it can be read-only in memory. Add some more
const keywords to allow this.
Reviewed-by: default avatarAndrew Jones <drjones@redhat.com>
Signed-off-by: default avatarSteven Price <steven.price@arm.com>
Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
parent 8564d637
...@@ -1262,7 +1262,7 @@ extern unsigned int halt_poll_ns_grow_start; ...@@ -1262,7 +1262,7 @@ extern unsigned int halt_poll_ns_grow_start;
extern unsigned int halt_poll_ns_shrink; extern unsigned int halt_poll_ns_shrink;
struct kvm_device { struct kvm_device {
struct kvm_device_ops *ops; const struct kvm_device_ops *ops;
struct kvm *kvm; struct kvm *kvm;
void *private; void *private;
struct list_head vm_node; struct list_head vm_node;
...@@ -1315,7 +1315,7 @@ struct kvm_device_ops { ...@@ -1315,7 +1315,7 @@ struct kvm_device_ops {
void kvm_device_get(struct kvm_device *dev); void kvm_device_get(struct kvm_device *dev);
void kvm_device_put(struct kvm_device *dev); void kvm_device_put(struct kvm_device *dev);
struct kvm_device *kvm_device_from_filp(struct file *filp); struct kvm_device *kvm_device_from_filp(struct file *filp);
int kvm_register_device_ops(struct kvm_device_ops *ops, u32 type); int kvm_register_device_ops(const struct kvm_device_ops *ops, u32 type);
void kvm_unregister_device_ops(u32 type); void kvm_unregister_device_ops(u32 type);
extern struct kvm_device_ops kvm_mpic_ops; extern struct kvm_device_ops kvm_mpic_ops;
......
...@@ -3046,14 +3046,14 @@ struct kvm_device *kvm_device_from_filp(struct file *filp) ...@@ -3046,14 +3046,14 @@ struct kvm_device *kvm_device_from_filp(struct file *filp)
return filp->private_data; return filp->private_data;
} }
static struct kvm_device_ops *kvm_device_ops_table[KVM_DEV_TYPE_MAX] = { static const struct kvm_device_ops *kvm_device_ops_table[KVM_DEV_TYPE_MAX] = {
#ifdef CONFIG_KVM_MPIC #ifdef CONFIG_KVM_MPIC
[KVM_DEV_TYPE_FSL_MPIC_20] = &kvm_mpic_ops, [KVM_DEV_TYPE_FSL_MPIC_20] = &kvm_mpic_ops,
[KVM_DEV_TYPE_FSL_MPIC_42] = &kvm_mpic_ops, [KVM_DEV_TYPE_FSL_MPIC_42] = &kvm_mpic_ops,
#endif #endif
}; };
int kvm_register_device_ops(struct kvm_device_ops *ops, u32 type) int kvm_register_device_ops(const struct kvm_device_ops *ops, u32 type)
{ {
if (type >= ARRAY_SIZE(kvm_device_ops_table)) if (type >= ARRAY_SIZE(kvm_device_ops_table))
return -ENOSPC; return -ENOSPC;
...@@ -3074,7 +3074,7 @@ void kvm_unregister_device_ops(u32 type) ...@@ -3074,7 +3074,7 @@ void kvm_unregister_device_ops(u32 type)
static int kvm_ioctl_create_device(struct kvm *kvm, static int kvm_ioctl_create_device(struct kvm *kvm,
struct kvm_create_device *cd) struct kvm_create_device *cd)
{ {
struct kvm_device_ops *ops = NULL; const struct kvm_device_ops *ops = NULL;
struct kvm_device *dev; struct kvm_device *dev;
bool test = cd->flags & KVM_CREATE_DEVICE_TEST; bool test = cd->flags & KVM_CREATE_DEVICE_TEST;
int type; int type;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment