forked from Minki/linux
media: venus: fix wrong size on dma_free
This change will fix an issue with dma_free size found with DMA API debug enabled. Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Cc: <stable@vger.kernel.org> # for v4.13 and up Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
6771fce506
commit
cd1a77e3c9
@ -344,7 +344,7 @@ static int venus_alloc(struct venus_hfi_device *hdev, struct mem_desc *desc,
|
||||
desc->attrs = DMA_ATTR_WRITE_COMBINE;
|
||||
desc->size = ALIGN(size, SZ_4K);
|
||||
|
||||
desc->kva = dma_alloc_attrs(dev, size, &desc->da, GFP_KERNEL,
|
||||
desc->kva = dma_alloc_attrs(dev, desc->size, &desc->da, GFP_KERNEL,
|
||||
desc->attrs);
|
||||
if (!desc->kva)
|
||||
return -ENOMEM;
|
||||
@ -710,10 +710,8 @@ static int venus_interface_queues_init(struct venus_hfi_device *hdev)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
hdev->ifaceq_table.kva = desc.kva;
|
||||
hdev->ifaceq_table.da = desc.da;
|
||||
hdev->ifaceq_table.size = IFACEQ_TABLE_SIZE;
|
||||
offset = hdev->ifaceq_table.size;
|
||||
hdev->ifaceq_table = desc;
|
||||
offset = IFACEQ_TABLE_SIZE;
|
||||
|
||||
for (i = 0; i < IFACEQ_NUM; i++) {
|
||||
queue = &hdev->queues[i];
|
||||
@ -755,9 +753,7 @@ static int venus_interface_queues_init(struct venus_hfi_device *hdev)
|
||||
if (ret) {
|
||||
hdev->sfr.da = 0;
|
||||
} else {
|
||||
hdev->sfr.da = desc.da;
|
||||
hdev->sfr.kva = desc.kva;
|
||||
hdev->sfr.size = ALIGNED_SFR_SIZE;
|
||||
hdev->sfr = desc;
|
||||
sfr = hdev->sfr.kva;
|
||||
sfr->buf_size = ALIGNED_SFR_SIZE;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user