When a driver's vmap callback returns an error (e.g. -ENOMEM), dma_buf_vmap() triggers a WARN_ON_ONCE(). This is incorrect as vmap operations can legitimately fail due to resource exhaustion or other transient conditions, as documented.
Fix this by removing the WARN_ON_ONCE(). The error code is already correctly propagated to the caller. Reported-by: [email protected] Closes: https://syzkaller.appspot.com/bug\?extid\=4317d7108e14e5d56308 Signed-off-by: Szymon Wilczek <[email protected]> --- drivers/dma-buf/dma-buf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c index edaa9e4ee4ae..14b55f67ee1c 100644 --- a/drivers/dma-buf/dma-buf.c +++ b/drivers/dma-buf/dma-buf.c @@ -1525,7 +1525,7 @@ int dma_buf_vmap(struct dma_buf *dmabuf, struct iosys_map *map) BUG_ON(iosys_map_is_set(&dmabuf->vmap_ptr)); ret = dmabuf->ops->vmap(dmabuf, &ptr); - if (WARN_ON_ONCE(ret)) + if (ret) return ret; dmabuf->vmap_ptr = ptr; -- 2.52.0
