Message ID | 20200528140326.5215-1-m.szyprowski@samsung.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | media: s5p-mfc: Properly handle dma_parms for the allocated devices | expand |
On Thu, 28 May 2020 at 16:03, Marek Szyprowski <m.szyprowski@samsung.com> wrote: > > Commit 9495b7e92f71 ("driver core: platform: Initialize dma_parms for > platform devices") in v5.7-rc5 added allocation of dma_parms structure to > all platform devices. Then vb2_dma_contig_set_max_seg_size() have been > changed not to allocate dma_parms structure and rely on the one allocated > by the device core. Lets allocate the needed structure also for the > devices created for the 2 MFC device memory ports. > > Reported-by: Tomi Valkeinen <tomi.valkeinen@ti.com> > Suggested-by: Ulf Hansson <ulf.hansson@linaro.org> > Fixes: 9495b7e92f71 ("driver core: platform: Initialize dma_parms for platform devices") > Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Kind regards Uffe > --- > drivers/media/platform/s5p-mfc/s5p_mfc.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc.c b/drivers/media/platform/s5p-mfc/s5p_mfc.c > index 5c2a23b953a4..eba2b9f040df 100644 > --- a/drivers/media/platform/s5p-mfc/s5p_mfc.c > +++ b/drivers/media/platform/s5p-mfc/s5p_mfc.c > @@ -1089,6 +1089,10 @@ static struct device *s5p_mfc_alloc_memdev(struct device *dev, > child->coherent_dma_mask = dev->coherent_dma_mask; > child->dma_mask = dev->dma_mask; > child->release = s5p_mfc_memdev_release; > + child->dma_parms = devm_kzalloc(dev, sizeof(*child->dma_parms), > + GFP_KERNEL); > + if (!child->dma_parms) > + goto err; > > /* > * The memdevs are not proper OF platform devices, so in order for them > @@ -1104,7 +1108,7 @@ static struct device *s5p_mfc_alloc_memdev(struct device *dev, > return child; > device_del(child); > } > - > +err: > put_device(child); > return NULL; > } > -- > 2.17.1 >
diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc.c b/drivers/media/platform/s5p-mfc/s5p_mfc.c index 5c2a23b953a4..eba2b9f040df 100644 --- a/drivers/media/platform/s5p-mfc/s5p_mfc.c +++ b/drivers/media/platform/s5p-mfc/s5p_mfc.c @@ -1089,6 +1089,10 @@ static struct device *s5p_mfc_alloc_memdev(struct device *dev, child->coherent_dma_mask = dev->coherent_dma_mask; child->dma_mask = dev->dma_mask; child->release = s5p_mfc_memdev_release; + child->dma_parms = devm_kzalloc(dev, sizeof(*child->dma_parms), + GFP_KERNEL); + if (!child->dma_parms) + goto err; /* * The memdevs are not proper OF platform devices, so in order for them @@ -1104,7 +1108,7 @@ static struct device *s5p_mfc_alloc_memdev(struct device *dev, return child; device_del(child); } - +err: put_device(child); return NULL; }
Commit 9495b7e92f71 ("driver core: platform: Initialize dma_parms for platform devices") in v5.7-rc5 added allocation of dma_parms structure to all platform devices. Then vb2_dma_contig_set_max_seg_size() have been changed not to allocate dma_parms structure and rely on the one allocated by the device core. Lets allocate the needed structure also for the devices created for the 2 MFC device memory ports. Reported-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Suggested-by: Ulf Hansson <ulf.hansson@linaro.org> Fixes: 9495b7e92f71 ("driver core: platform: Initialize dma_parms for platform devices") Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> --- drivers/media/platform/s5p-mfc/s5p_mfc.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)