• Lin Ming's avatar
    ACPICA: fix leak of acpi_os_validate_address · a5fe1a03
    Lin Ming authored
    http://bugzilla.kernel.org/show_bug.cgi?id=13620
    
    If the dynamic region is created and added to resource list over and over again,
    it has the potential to be a memory leak by growing the list every time.
    
    This patch fixes the memory leak, as below
    
    1) add a new field "count" to struct acpi_res_list.
    
       When inserting, if the region(addr, len) is already in the resource
       list, we just increase "count", otherwise, the region is inserted
       with count=1.
    
       When deleting, the "count" is decreased, if it's decreased to 0,
       the region is deleted from the resource list.
    
       With "count", the region with same address and length can only be
       inserted to the resource list once, so prevent potential memory leak.
    
    2) add a new function acpi_os_invalidate_address, which is called when
       region is deleted.
    Signed-off-by: default avatarLin Ming <ming.m.lin@intel.com>
    Signed-off-by: default avatarLen Brown <len.brown@intel.com>
    a5fe1a03
utdelete.c 18.4 KB