mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	ALSA: memalloc: Fix regression with SNDRV_DMA_TYPE_CONTINUOUS
The recent code refactoring made the mmap of continuous pages to be
done via the own helper snd_dma_continuous_mmap() with
remap_pfn_range().  There I overlooked that dmab->addr isn't set for
the allocation with SNDRV_DMA_TYPE_CONTINUOUS.  This resulted always
in an error at mmap with this buffer type on the system such as
Intel SST Baytrail driver.
This patch fixes the regression by passing the correct address.
Fixes: 30b7ba6972 ("ALSA: core: Add continuous and vmalloc mmap ops")
Reported-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/8d6674da-7d7b-803e-acc9-7de6cb1223fa@redhat.com
Link: https://lore.kernel.org/r/20210801113801.31290-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
			
			
This commit is contained in:
		
							parent
							
								
									852a8a9777
								
							
						
					
					
						commit
						eda80d7c9c
					
				
					 1 changed files with 1 additions and 1 deletions
				
			
		| 
						 | 
					@ -215,7 +215,7 @@ static int snd_dma_continuous_mmap(struct snd_dma_buffer *dmab,
 | 
				
			||||||
				   struct vm_area_struct *area)
 | 
									   struct vm_area_struct *area)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	return remap_pfn_range(area, area->vm_start,
 | 
						return remap_pfn_range(area, area->vm_start,
 | 
				
			||||||
			       dmab->addr >> PAGE_SHIFT,
 | 
								       page_to_pfn(virt_to_page(dmab->area)),
 | 
				
			||||||
			       area->vm_end - area->vm_start,
 | 
								       area->vm_end - area->vm_start,
 | 
				
			||||||
			       area->vm_page_prot);
 | 
								       area->vm_page_prot);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue