lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <ace152fe-877b-4df9-ba22-3c928bffa253@gmail.com>
Date: Wed, 25 Jun 2025 15:27:21 +0200
From: Thomas Fourier <fourier.thomas@...il.com>
To: Potnuri Bharat Teja <bharat@...lsio.com>
Cc: Andrew Lunn <andrew+netdev@...n.ch>,
        "David S. Miller"
 <davem@...emloft.net>,
        Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>,
        Paolo Abeni <pabeni@...hat.com>, netdev@...r.kernel.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH net] ethernet: cxgb4: Fix dma_unmap_sg() nents value

On 24/06/2025 17:17, Potnuri Bharat Teja wrote:
> On Monday, June 06/23/25, 2025 at 14:25:55 +0200, Thomas Fourier wrote:
>> The dma_unmap_sg() functions should be called with the same nents as the
>> dma_map_sg(), not the value the map function returned.
>>
>> Fixes: 8b4e6b3ca2ed ("cxgb4: Add HMA support")
>> Signed-off-by: Thomas Fourier <fourier.thomas@...il.com>
>> ---
>>   drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
>> index 51395c96b2e9..73bb1f413761 100644
>> --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
>> +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
>> @@ -3998,7 +3998,7 @@ static void adap_free_hma_mem(struct adapter *adapter)
>>   
>>   	if (adapter->hma.flags & HMA_DMA_MAPPED_FLAG) {
>>   		dma_unmap_sg(adapter->pdev_dev, adapter->hma.sgt->sgl,
>> -			     adapter->hma.sgt->nents, DMA_BIDIRECTIONAL);
>> +			     adapter->hma.sgt->orig_nents, DMA_BIDIRECTIONAL);
>>   		adapter->hma.flags &= ~HMA_DMA_MAPPED_FLAG;
>>   	}
> Thanks for the patch Thomas.
> this fix needs below change as well:
> --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
> +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
> @@ -4000,7 +4000,7 @@ static void adap_free_hma_mem(struct adapter *adapter)
>          }
>
> 	for_each_sg(adapter->hma.sgt->sgl, iter,	
> -                   adapter->hma.sgt->orig_nents, i) {
> +                   adapter->hma.sgt->nents, i) {
>                  page = sg_page(iter);
> 		if (page)
>                          __free_pages(page, HMA_PAGE_ORDER);		
>   

I don't think this change is correct since this loop iterates over all 
the pages

allocated at line 4076, not over the dma mapped pages.

It also seems that when passing the dma addresses to hardware,

the newpage assignment is not used line 4104 and that the dma mapping

length is not given to hardware.  Is that correct?

>> -- 
>> 2.43.0
>>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ