• Xuan Zhuo's avatar
    virtio_net: fix missing dma unmap for resize · d2c4f192
    Xuan Zhuo authored
    For rq, we have three cases getting buffers from virtio core:
    
    1. virtqueue_get_buf{,_ctx}
    2. virtqueue_detach_unused_buf
    3. callback for virtqueue_resize
    
    But in commit 295525e2("virtio_net: merge dma operations when
    filling mergeable buffers"), I missed the dma unmap for the #3 case.
    
    That will leak some memory, because I did not release the pages referred
    by the unused buffers.
    
    If we do such script, we will make the system OOM.
    
        while true
        do
                ethtool -G ens4 rx 128
                ethtool -G ens4 rx 256
                free -m
        done
    
    Fixes: 295525e2 ("virtio_net: merge dma operations when filling mergeable buffers")
    Signed-off-by: default avatarXuan Zhuo <xuanzhuo@linux.alibaba.com>
    Message-Id: <20231226094333.47740-1-xuanzhuo@linux.alibaba.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    d2c4f192
virtio_net.c 126 KB