• Shahar S Matityahu's avatar
    iwlwifi: dbg_ini: remove redundant dram buffer allocation · 0ec7bfb2
    Shahar S Matityahu authored
    There are several flows in that can cause redundant allocation.
    
    In case the driver reaches the maximum amount of blocks allowed, it
    allocates the buffer and only then checks if it reached the maximum
    amount of blocks and return without freeing the buffer,
    causing a memory leak.
    
    Solve this by moving the check of the amount of buffers being used
    before the allocation.
    
    In case there was an assert, the apply points are being reused,
    causing that for each assert, the driver allocates a new redundant
    buffer.
    
    Solve this by adding a new is_alloc field to indicate if the driver
    already allocated memory for the requested buffer.
    
    Also, split iwl_fw_dbg_buffer_allocation function into
    iwl_fw_dbg_buffer_allocation and iwl_fw_dbg_buffer_apply
    to increase the clearity of the flow.
    Signed-off-by: default avatarShahar S Matityahu <shahar.s.matityahu@intel.com>
    Fixes: d47902f9 ("iwlwifi: dbg: add apply point logic")
    Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
    0ec7bfb2
iwl-dbg-tlv.c 7.02 KB