lkml.org 
[lkml]   [2018]   [Aug]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] swiotlb: Fix uninitialized pointer on DMA ops
From
Date
On 18/08/18 20:04, Esteban Zamora wrote:
> The mmap function pointer on swiotlb_dma_ops struct is
> uninitialized, which causes a random crash when calling
> the dma_mmap_coherent function on platforms where no DMA
> address translation hardware is available.

Can you share any kernel logs with details of those crashes? As Konrad
mentions, the rules for partial structure initialisation in C are
well-defined, even with designated initialisers[1], and if this commit
message were true then half of the subsystems in the kernel would be
crashing left right and centre.

Robin.

[1]
https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html#Designated-Inits

> Set this pointer to NULL in order to fix the issue.
>
> Signed-off-by: Esteban Zamora <estebanzacr.20@gmail.com>
> ---
> kernel/dma/swiotlb.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c
> index 4f8a6db..9a7718c 100644
> --- a/kernel/dma/swiotlb.c
> +++ b/kernel/dma/swiotlb.c
> @@ -1082,5 +1082,6 @@ const struct dma_map_ops swiotlb_dma_ops = {
> .map_page = swiotlb_map_page,
> .unmap_page = swiotlb_unmap_page,
> .dma_supported = dma_direct_supported,
> + .mmap = NULL,
> };
> EXPORT_SYMBOL(swiotlb_dma_ops);
>

\
 
 \ /
  Last update: 2018-08-20 12:01    [W:0.064 / U:0.216 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site