• David Hildenbrand's avatar
    proc/vmcore: convert oldmem_pfn_is_ram callback to more generic vmcore callbacks · cc5f2704
    David Hildenbrand authored
    Let's support multiple registered callbacks, making sure that
    registering vmcore callbacks cannot fail.  Make the callback return a
    bool instead of an int, handling how to deal with errors internally.
    Drop unused HAVE_OLDMEM_PFN_IS_RAM.
    
    We soon want to make use of this infrastructure from other drivers:
    virtio-mem, registering one callback for each virtio-mem device, to
    prevent reading unplugged virtio-mem memory.
    
    Handle it via a generic vmcore_cb structure, prepared for future
    extensions: for example, once we support virtio-mem on s390x where the
    vmcore is completely constructed in the second kernel, we want to detect
    and add plugged virtio-mem memory ranges to the vmcore in order for them
    to get dumped properly.
    
    Handle corner cases that are unexpected and shouldn't happen in sane
    setups: registering a callback after the vmcore has already been opened
    (warn only) and unregistering a callback after the vmcore has already been
    opened (warn and essentially read only zeroes from that point on).
    
    Link: https://lkml.kernel.org/r/20211005121430.30136-6-david@redhat.comSigned-off-by: default avatarDavid Hildenbrand <david@redhat.com>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jason Wang <jasowang@redhat.com>
    Cc: Juergen Gross <jgross@suse.com>
    Cc: "Michael S. Tsirkin" <mst@redhat.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Mike Rapoport <rppt@kernel.org>
    Cc: Oscar Salvador <osalvador@suse.de>
    Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
    Cc: Stefano Stabellini <sstabellini@kernel.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    cc5f2704
vmcore.c 41.1 KB