]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
dma-buf: fix compare in WARN_ON_ONCE
authorChristian König <christian.koenig@amd.com>
Thu, 5 Jun 2025 08:38:30 +0000 (10:38 +0200)
committerChristian König <christian.koenig@amd.com>
Wed, 11 Jun 2025 09:42:49 +0000 (11:42 +0200)
Smatch pointed out this trivial typo:
drivers/dma-buf/dma-buf.c:1123 dma_buf_map_attachment()
warn: passing positive error code '16' to 'ERR_PTR'

drivers/dma-buf/dma-buf.c
    1113         dma_resv_assert_held(attach->dmabuf->resv);
    1114
    1115         if (dma_buf_pin_on_map(attach)) {
    1116                 ret = attach->dmabuf->ops->pin(attach);
    1117                 /*
    1118                  * Catch exporters making buffers inaccessible even when
    1119                  * attachments preventing that exist.
    1120                  */
    1121                 WARN_ON_ONCE(ret == EBUSY);
                                             ^^^^^
This was probably intended to be -EBUSY?

    1122                 if (ret)
--> 1123                         return ERR_PTR(ret);
                                                ^^^
Otherwise we will eventually crash.

    1124         }
    1125
    1126         sg_table = attach->dmabuf->ops->map_dma_buf(attach, direction);
    1127         if (!sg_table)
    1128                 sg_table = ERR_PTR(-ENOMEM);
    1129         if (IS_ERR(sg_table))
    1130                 goto error_unpin;
    1131

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Link: https://lore.kernel.org/r/20250605085336.62156-1-christian.koenig@amd.com
drivers/dma-buf/dma-buf.c

index 890ecac04dac8619fc64c0bc5e2f5323eb30449d..2bcf9ceca99758fa0ee89a4d281b49925676899e 100644 (file)
@@ -1118,7 +1118,7 @@ struct sg_table *dma_buf_map_attachment(struct dma_buf_attachment *attach,
                 * Catch exporters making buffers inaccessible even when
                 * attachments preventing that exist.
                 */
-               WARN_ON_ONCE(ret == EBUSY);
+               WARN_ON_ONCE(ret == -EBUSY);
                if (ret)
                        return ERR_PTR(ret);
        }