RDMA/hns: Use GFP_ATOMIC under spin lock
authorWei Yongjun <weiyongjun1@huawei.com>
Wed, 7 Apr 2021 15:49:00 +0000 (15:49 +0000)
committerJason Gunthorpe <jgg@nvidia.com>
Wed, 7 Apr 2021 23:26:32 +0000 (20:26 -0300)
A spin lock is taken here so we should use GFP_ATOMIC.

Fixes: f91696f2f053 ("RDMA/hns: Support congestion control type selection according to the FW")
Link: https://lore.kernel.org/r/20210407154900.3486268-1-weiyongjun1@huawei.com
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/hns/hns_roce_hw_v2.c

index cc334d5c22b31c624ba65e73718b20fe04c5c987..6eb8fbe0c63bbc0237e6e0bddda65a29724e553c 100644 (file)
@@ -4621,7 +4621,7 @@ static int get_dip_ctx_idx(struct ib_qp *ibqp, const struct ib_qp_attr *attr,
        /* If no dgid is found, a new dip and a mapping between dgid and
         * dip_idx will be created.
         */
-       hr_dip = kzalloc(sizeof(*hr_dip), GFP_KERNEL);
+       hr_dip = kzalloc(sizeof(*hr_dip), GFP_ATOMIC);
        if (!hr_dip) {
                ret = -ENOMEM;
                goto out;