From: Anson Jacob Date: Fri, 20 Aug 2021 23:42:16 +0000 (-0400) Subject: drm/amd/display: Fix false BAD_FREE warning from Coverity X-Git-Tag: block-5.16-2021-11-13~77^2~13^2~86 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=5e1a9a3ed65a906481bea56eaae77a2ba01ef2b1;p=linux-2.6-block.git drm/amd/display: Fix false BAD_FREE warning from Coverity This is an attempt to fix false warning raised by Coverity via multiple CID's. Addresses-Coverity-ID: 1487412 ("Free of address-of expression") Cc: Wesley Chalmers Reviewed-by: Wesley Chalmers Acked-by: Mikita Lipski Signed-off-by: Anson Jacob Tested-by: Daniel Wheeler Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dpcd.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_dpcd.c index 72970e49800a..7f25c11f4248 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dpcd.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dpcd.c @@ -176,12 +176,15 @@ static void dpcd_reduce_address_range( uint8_t * const reduced_data, const uint32_t reduced_size) { - const uint32_t reduced_end_address = END_ADDRESS(reduced_address, reduced_size); - const uint32_t extended_end_address = END_ADDRESS(extended_address, extended_size); const uint32_t offset = reduced_address - extended_address; - if (extended_end_address == reduced_end_address && extended_address == reduced_address) - return; /* extended and reduced address ranges point to the same data */ + /* + * If the address is same, address was not extended. + * So we do not need to free any memory. + * The data is in original buffer(reduced_data). + */ + if (extended_data == reduced_data) + return; memcpy(&extended_data[offset], reduced_data, reduced_size); kfree(extended_data);