]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
caif_virtio: fix wrong pointer check in cfv_probe()
authorVitaliy Shevtsov <v.shevtsov@mt-integration.ru>
Thu, 27 Feb 2025 18:46:27 +0000 (23:46 +0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Mar 2025 11:47:38 +0000 (12:47 +0100)
[ Upstream commit a466fd7e9fafd975949e5945e2f70c33a94b1a70 ]

del_vqs() frees virtqueues, therefore cfv->vq_tx pointer should be checked
for NULL before calling it, not cfv->vdev. Also the current implementation
is redundant because the pointer cfv->vdev is dereferenced before it is
checked for NULL.

Fix this by checking cfv->vq_tx for NULL instead of cfv->vdev before
calling del_vqs().

Fixes: 0d2e1a2926b1 ("caif_virtio: Introduce caif over virtio")
Signed-off-by: Vitaliy Shevtsov <v.shevtsov@mt-integration.ru>
Reviewed-by: Gerhard Engleder <gerhard@engleder-embedded.com>
Link: https://patch.msgid.link/20250227184716.4715-1-v.shevtsov@mt-integration.ru
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/caif/caif_virtio.c

index a701932f5cc29ef073e993b3a7953809631394d0..daeaf0ca12547e604c8e5e079e4f1e15a24c8eec 100644 (file)
@@ -746,7 +746,7 @@ err:
 
        if (cfv->vr_rx)
                vdev->vringh_config->del_vrhs(cfv->vdev);
-       if (cfv->vdev)
+       if (cfv->vq_tx)
                vdev->config->del_vqs(cfv->vdev);
        free_netdev(netdev);
        return err;