mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-18 22:18:44 -05:00
drm/rockchip: Fix type promotion bug in rockchip_gem_iommu_map()
The "ret" variable is declared as ssize_t and it can hold negative error
codes but the "rk_obj->base.size" variable is type size_t. This means
that when we compare them, they are both type promoted to size_t and the
negative error code becomes a high unsigned value and is treated as
success. Add a cast to fix this.
Fixes: 38f993b7c5 ("drm/rockchip: Do not use DMA mapping API if attached to IOMMU domain")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/2bfa28b5-145d-4b9e-a18a-98819dd686ce@moroto.mountain
This commit is contained in:
committed by
Heiko Stuebner
parent
15fe53be46
commit
6471da5ee3
@@ -40,7 +40,7 @@ static int rockchip_gem_iommu_map(struct rockchip_gem_object *rk_obj)
|
||||
|
||||
ret = iommu_map_sgtable(private->domain, rk_obj->dma_addr, rk_obj->sgt,
|
||||
prot);
|
||||
if (ret < rk_obj->base.size) {
|
||||
if (ret < (ssize_t)rk_obj->base.size) {
|
||||
DRM_ERROR("failed to map buffer: size=%zd request_size=%zd\n",
|
||||
ret, rk_obj->base.size);
|
||||
ret = -ENOMEM;
|
||||
|
||||
Reference in New Issue
Block a user