2018-01-30 14:25 GMT+01:00 Arnd Bergmann <arnd@xxxxxxxx>: > 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. Okay but that doesn't explain why we are the only ones to get an issue while the parameter doesn't match function prototype > > Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html