mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
[media] s5p: fix error code path when failing to allocate DMA memory
In the s5p_mfc_alloc_firmware() function there are some mistakes where the code checks whether the DMA memory is properly allocated or not. First of all dma_alloc_coherent() returns NULL in case of error. The code also checked two times fw_virt_addr, ignoring the bank2_virt pointer. Signed-off-by: Maurizio Lombardi <mlombard@redhat.com> Signed-off-by: Kamil Debski <k.debski@samsung.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
parent
0ca1ba2aac
commit
69b9fe22b1
1 changed files with 2 additions and 3 deletions
|
@ -38,8 +38,7 @@ int s5p_mfc_alloc_firmware(struct s5p_mfc_dev *dev)
|
|||
dev->fw_virt_addr = dma_alloc_coherent(dev->mem_dev_l, dev->fw_size,
|
||||
&dev->bank1, GFP_KERNEL);
|
||||
|
||||
if (IS_ERR_OR_NULL(dev->fw_virt_addr)) {
|
||||
dev->fw_virt_addr = NULL;
|
||||
if (!dev->fw_virt_addr) {
|
||||
mfc_err("Allocating bitprocessor buffer failed\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
@ -48,7 +47,7 @@ int s5p_mfc_alloc_firmware(struct s5p_mfc_dev *dev)
|
|||
bank2_virt = dma_alloc_coherent(dev->mem_dev_r, 1 << MFC_BASE_ALIGN_ORDER,
|
||||
&bank2_dma_addr, GFP_KERNEL);
|
||||
|
||||
if (IS_ERR(dev->fw_virt_addr)) {
|
||||
if (!bank2_virt) {
|
||||
mfc_err("Allocating bank2 base failed\n");
|
||||
dma_free_coherent(dev->mem_dev_l, dev->fw_size,
|
||||
dev->fw_virt_addr, dev->bank1);
|
||||
|
|
Loading…
Reference in a new issue