lkml.org 
[lkml]   [2019]   [Oct]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v7 06/10] KVM: Allow kvm_device_ops to be const
    Date
    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: Andrew Jones <drjones@redhat.com>
    Signed-off-by: Steven Price <steven.price@arm.com>
    ---
    include/linux/kvm_host.h | 4 ++--
    virt/kvm/kvm_main.c | 6 +++---
    2 files changed, 5 insertions(+), 5 deletions(-)

    diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
    index 9907e45f8875..7a26d5513471 100644
    --- a/include/linux/kvm_host.h
    +++ b/include/linux/kvm_host.h
    @@ -1262,7 +1262,7 @@ extern unsigned int halt_poll_ns_grow_start;
    extern unsigned int halt_poll_ns_shrink;

    struct kvm_device {
    - struct kvm_device_ops *ops;
    + const struct kvm_device_ops *ops;
    struct kvm *kvm;
    void *private;
    struct list_head vm_node;
    @@ -1315,7 +1315,7 @@ struct kvm_device_ops {
    void kvm_device_get(struct kvm_device *dev);
    void kvm_device_put(struct kvm_device *dev);
    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);

    extern struct kvm_device_ops kvm_mpic_ops;
    diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
    index fd68fbe0a75d..66a977472a1c 100644
    --- a/virt/kvm/kvm_main.c
    +++ b/virt/kvm/kvm_main.c
    @@ -3046,14 +3046,14 @@ struct kvm_device *kvm_device_from_filp(struct file *filp)
    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
    [KVM_DEV_TYPE_FSL_MPIC_20] = &kvm_mpic_ops,
    [KVM_DEV_TYPE_FSL_MPIC_42] = &kvm_mpic_ops,
    #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))
    return -ENOSPC;
    @@ -3074,7 +3074,7 @@ void kvm_unregister_device_ops(u32 type)
    static int kvm_ioctl_create_device(struct kvm *kvm,
    struct kvm_create_device *cd)
    {
    - struct kvm_device_ops *ops = NULL;
    + const struct kvm_device_ops *ops = NULL;
    struct kvm_device *dev;
    bool test = cd->flags & KVM_CREATE_DEVICE_TEST;
    int type;
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-10-21 17:30    [W:4.381 / U:0.312 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site