• Vivek Goyal's avatar
    resource: provide new functions to walk through resources · 8c86e70a
    Vivek Goyal authored
    I have added two more functions to walk through resources.
    
    Currently walk_system_ram_range() deals with pfn and /proc/iomem can
    contain partial pages.  By dealing in pfn, callback function loses the
    info that last page of a memory range is a partial page and not the full
    page.  So I implemented walk_system_ram_res() which returns u64 values to
    callback functions and now it properly return start and end address.
    
    walk_system_ram_range() uses find_next_system_ram() to find the next ram
    resource.  This in turn only travels through siblings of top level child
    and does not travers through all the nodes of the resoruce tree.  I also
    need another function where I can walk through all the resources, for
    example figure out where "GART" aperture is.  Figure out where ACPI memory
    is.
    
    So I wrote another function walk_iomem_res() which walks through all
    /proc/iomem resources and returns matches as asked by caller.  Caller can
    specify "name" of resource, start and end and flags.
    
    Got rid of find_next_system_ram_res() and instead implemented more generic
    find_next_iomem_res() which can be used to traverse top level children
    only based on an argument.
    Signed-off-by: default avatarVivek Goyal <vgoyal@redhat.com>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Michael Kerrisk <mtk.manpages@gmail.com>
    Cc: Eric Biederman <ebiederm@xmission.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Matthew Garrett <mjg59@srcf.ucam.org>
    Cc: Greg Kroah-Hartman <greg@kroah.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: WANG Chao <chaowang@redhat.com>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    8c86e70a
resource.c 33.7 KB