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: <IA1PR11MB6098C9F6FA78F599E6375638F4A6A@IA1PR11MB6098.namprd11.prod.outlook.com>
Date: Thu, 4 Dec 2025 01:09:00 +0000
From: "Xu, Even" <even.xu@...el.com>
To: Thomas Fourier <fourier.thomas@...il.com>
CC: "Sun, Xinpeng" <xinpeng.sun@...el.com>, Jiri Kosina <jikos@...nel.org>,
	Benjamin Tissoires <bentiss@...nel.org>, Andy Shevchenko
	<andriy.shevchenko@...ux.intel.com>, Mark Pearson
	<mpearson-lenovo@...ebb.ca>, Srinivas Pandruvada
	<srinivas.pandruvada@...ux.intel.com>, "linux-input@...r.kernel.org"
	<linux-input@...r.kernel.org>, "linux-kernel@...r.kernel.org"
	<linux-kernel@...r.kernel.org>
Subject: RE: [PATCH] HID: Intel-thc-hid: Intel-thc: fix dma_unmap_sg() nents
 value



> -----Original Message-----
> From: Thomas Fourier <fourier.thomas@...il.com>
> Sent: Thursday, December 4, 2025 12:57 AM
> Cc: Thomas Fourier <fourier.thomas@...il.com>; Xu, Even
> <even.xu@...el.com>; Sun, Xinpeng <xinpeng.sun@...el.com>; Jiri Kosina
> <jikos@...nel.org>; Benjamin Tissoires <bentiss@...nel.org>; Andy Shevchenko
> <andriy.shevchenko@...ux.intel.com>; Mark Pearson <mpearson-
> lenovo@...ebb.ca>; Srinivas Pandruvada
> <srinivas.pandruvada@...ux.intel.com>; linux-input@...r.kernel.org; linux-
> kernel@...r.kernel.org
> Subject: [PATCH] HID: Intel-thc-hid: Intel-thc: fix dma_unmap_sg() nents value
> 
> The `dma_unmap_sg()` functions should be called with the same nents as the
> `dma_map_sg()`, not the value the map function returned.
> 
> Save the number of entries in struct thc_dma_configuration.
> 
> Fixes: a688404b2e20 ("HID: intel-thc-hid: intel-thc: Add THC DMA interfaces")
> Signed-off-by: Thomas Fourier <fourier.thomas@...il.com>

Thanks for the fix!
Looks good to me.

Reviewed-by: Even Xu <even.xu@...el.com>

> ---
>  drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c | 4 +++-  drivers/hid/intel-thc-
> hid/intel-thc/intel-thc-dma.h | 2 ++
>  2 files changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c b/drivers/hid/intel-
> thc-hid/intel-thc/intel-thc-dma.c
> index 82b8854843e0..a0c368aa7979 100644
> --- a/drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
> +++ b/drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
> @@ -232,6 +232,7 @@ static int setup_dma_buffers(struct thc_device *dev,
>  		return 0;
> 
>  	memset(config->sgls, 0, sizeof(config->sgls));
> +	memset(config->sgls_nent_pages, 0, sizeof(config->sgls_nent_pages));
>  	memset(config->sgls_nent, 0, sizeof(config->sgls_nent));
> 
>  	cpu_addr = dma_alloc_coherent(dev->dev, prd_tbls_size, @@ -254,6
> +255,7 @@ static int setup_dma_buffers(struct thc_device *dev,
>  		}
>  		count = dma_map_sg(dev->dev, config->sgls[i], nent, dir);
> 
> +		config->sgls_nent_pages[i] = nent;
>  		config->sgls_nent[i] = count;
>  	}
> 
> @@ -299,7 +301,7 @@ static void release_dma_buffers(struct thc_device *dev,
>  			continue;
> 
>  		dma_unmap_sg(dev->dev, config->sgls[i],
> -			     config->sgls_nent[i],
> +			     config->sgls_nent_pages[i],
>  			     config->dir);
> 
>  		sgl_free(config->sgls[i]);
> diff --git a/drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.h b/drivers/hid/intel-
> thc-hid/intel-thc/intel-thc-dma.h
> index 78917400492c..541d33995baf 100644
> --- a/drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.h
> +++ b/drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.h
> @@ -91,6 +91,7 @@ struct thc_prd_table {
>   * @dir: Direction of DMA for this config
>   * @prd_tbls: PRD tables for current DMA
>   * @sgls: Array of pointers to scatter-gather lists
> + * @sgls_nent_pages: Number of pages per scatter-gather list
>   * @sgls_nent: Actual number of entries per scatter-gather list
>   * @prd_tbl_num: Actual number of PRD tables
>   * @max_packet_size: Size of the buffer needed for 1 DMA message (1 PRD
> table) @@ -107,6 +108,7 @@ struct thc_dma_configuration {
> 
>  	struct thc_prd_table *prd_tbls;
>  	struct scatterlist *sgls[PRD_TABLES_NUM];
> +	u8 sgls_nent_pages[PRD_TABLES_NUM];
>  	u8 sgls_nent[PRD_TABLES_NUM];
>  	u8 prd_tbl_num;
> 
> --
> 2.43.0


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ