On Tue, Jan 30, 2018 at 11:11 AM, Benjamin GAIGNARD <benjamin.gaignard@xxxxxx> wrote: > > On 01/12/2018 05:11 PM, Arnaud Pouliquen wrote: >> Hello Andy,David, > + Arnd > > I have the same issue on drm-misc-next. > Does Arnaud's fix make sense or should we update/change the way of how > we compile the kernel ? We've hit a couple of bugs with qcom drivers confusing physical addresses and DMA addresses in the past, usually the drivers were buggy in some form, and tried to use dma_alloc_coherent() to get a buffer that gets passed into a firmware interface taking a physical address, which is of course completely wrong. >> diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c >> index af4c752..8dfbe61 100644 >> --- a/drivers/firmware/qcom_scm.c >> +++ b/drivers/firmware/qcom_scm.c >> @@ -448,7 +448,7 @@ int qcom_scm_assign_mem(phys_addr_t mem_addr, size_t >> mem_sz, >> struct qcom_scm_mem_map_info *mem_to_map; >> phys_addr_t mem_to_map_phys; >> phys_addr_t dest_phys; >> - phys_addr_t ptr_phys; >> + dma_addr_t ptr_phys; >> size_t mem_to_map_sz; >> size_t dest_sz; >> size_t src_sz; This would be bad: you can basically never have a 'dma_addr_t ptr_phys': it can be exactly one of 'dma address', 'physical address' or a pointer, this claims that the struct member is all three of them. The proper fix here is to stop using dma_alloc_coherent. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html