RDMA/cxgb4: Check skb value for failure to allocate
authorArtem Chernyshev <artem.chernyshev@red-soft.ru>
Tue, 5 Sep 2023 12:40:48 +0000 (15:40 +0300)
committerLeon Romanovsky <leon@kernel.org>
Mon, 11 Sep 2023 11:55:53 +0000 (14:55 +0300)
get_skb() can fail to allocate skb, so check it.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 5be78ee924ae ("RDMA/cxgb4: Fix LE hash collision bug for active open connection")
Signed-off-by: Artem Chernyshev <artem.chernyshev@red-soft.ru>
Link: https://lore.kernel.org/r/20230905124048.284165-1-artem.chernyshev@red-soft.ru
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/cxgb4/cm.c

index ced615b..040ba22 100644 (file)
@@ -1965,6 +1965,9 @@ static int send_fw_act_open_req(struct c4iw_ep *ep, unsigned int atid)
        int win;
 
        skb = get_skb(NULL, sizeof(*req), GFP_KERNEL);
+       if (!skb)
+               return -ENOMEM;
+
        req = __skb_put_zero(skb, sizeof(*req));
        req->op_compl = htonl(WR_OP_V(FW_OFLD_CONNECTION_WR));
        req->len16_pkd = htonl(FW_WR_LEN16_V(DIV_ROUND_UP(sizeof(*req), 16)));