• David Hildenbrand's avatar
    virtio-mem: check against mhp_get_pluggable_range() which memory we can hotplug · 94c89453
    David Hildenbrand authored
    Right now, we only check against MAX_PHYSMEM_BITS - but turns out there
    are more restrictions of which memory we can actually hotplug, especially
    om arm64 or s390x once we support them: we might receive something like
    -E2BIG or -ERANGE from add_memory_driver_managed(), stopping device
    operation.
    
    So, check right when initializing the device which memory we can add,
    warning the user.  Try only adding actually pluggable ranges: in the worst
    case, no memory provided by our device is pluggable.
    
    In the usual case, we expect all device memory to be pluggable, and in
    corner cases only some memory at the end of the device-managed memory
    region to not be pluggable.
    
    Link: https://lkml.kernel.org/r/1612149902-7867-5-git-send-email-anshuman.khandual@arm.comSigned-off-by: default avatarDavid Hildenbrand <david@redhat.com>
    Signed-off-by: default avatarAnshuman Khandual <anshuman.khandual@arm.com>
    Cc: "Michael S. Tsirkin" <mst@redhat.com>
    Cc: Jason Wang <jasowang@redhat.com>
    Cc: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
    Cc: Oscar Salvador <osalvador@suse.de>
    Cc: Wei Yang <richard.weiyang@linux.alibaba.com>
    Cc: teawater <teawaterz@linux.alibaba.com>
    Cc: Anshuman Khandual <anshuman.khandual@arm.com>
    Cc: Pankaj Gupta <pankaj.gupta@cloud.ionos.com>
    Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: Ard Biesheuvel <ardb@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Heiko Carstens <hca@linux.ibm.com>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    94c89453
virtio_mem.c 73.4 KB