• Stefano Garzarella's avatar
    vdpa_sim_blk: set number of address spaces and virtqueue groups · 19cd4a54
    Stefano Garzarella authored
    Commit bda324fd ("vdpasim: control virtqueue support") added two
    new fields (nas, ngroups) to vdpasim_dev_attr, but we forgot to
    initialize them for vdpa_sim_blk.
    
    When creating a new vdpa_sim_blk device this causes the kernel
    to panic in this way:
        $ vdpa dev add mgmtdev vdpasim_blk name blk0
        BUG: kernel NULL pointer dereference, address: 0000000000000030
        ...
        RIP: 0010:vhost_iotlb_add_range_ctx+0x41/0x220 [vhost_iotlb]
        ...
        Call Trace:
         <TASK>
         vhost_iotlb_add_range+0x11/0x800 [vhost_iotlb]
         vdpasim_map_range+0x91/0xd0 [vdpa_sim]
         vdpasim_alloc_coherent+0x56/0x90 [vdpa_sim]
         ...
    
    This happens because vdpasim->iommu[0] is not initialized when
    dev_attr.nas is 0.
    
    Let's fix this issue by initializing both (nas, ngroups) to 1 for
    vdpa_sim_blk.
    
    Fixes: bda324fd ("vdpasim: control virtqueue support")
    Cc: gautam.dawar@xilinx.com
    Signed-off-by: default avatarStefano Garzarella <sgarzare@redhat.com>
    Message-Id: <20220621151323.190431-1-sgarzare@redhat.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Acked-by: default avatarEugenio Pérez <eperezma@redhat.com>
    19cd4a54
vdpa_sim_blk.c 8.63 KB