From 814c96c959cfc147ecf8bf9ae3f34b8361316316 Mon Sep 17 00:00:00 2001 From: Mika Westerberg Date: Fri, 31 Mar 2023 13:01:32 +0300 Subject: [PATCH] thunderbolt: Check for ring 0 in tb_tunnel_alloc_dma() Ring 0 cannot be used for anything else than control channel messages. For this reason add a check to tb_tunnel_alloc_dma() and fail if someone tries to do that. Signed-off-by: Mika Westerberg --- drivers/thunderbolt/tunnel.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/thunderbolt/tunnel.c b/drivers/thunderbolt/tunnel.c index 9099ae73e78f..dd3b5613ad2c 100644 --- a/drivers/thunderbolt/tunnel.c +++ b/drivers/thunderbolt/tunnel.c @@ -1452,6 +1452,10 @@ struct tb_tunnel *tb_tunnel_alloc_dma(struct tb *tb, struct tb_port *nhi, struct tb_path *path; int credits; + /* Ring 0 is reserved for control channel */ + if (WARN_ON(!receive_ring || !transmit_ring)) + return NULL; + if (receive_ring > 0) npaths++; if (transmit_ring > 0)