Message ID | 20200327193142.GA32547@embeddedor (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [next] RDMA/hns: Fix uninitialized variable bug | expand |
On 2020/3/28 3:28, Gustavo A. R. Silva wrote: > There is a potential execution path in which variable *ret* is returned > without being properly initialized, previously. > > Fix this by initializing variable *ret* to -ENODEV. > > Addresses-Coverity-ID: 1491917 ("Uninitialized scalar variable") > Fixes: 2f49de21f3e9 ("RDMA/hns: Optimize mhop get flow for multi-hop addressing") > Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> > --- > drivers/infiniband/hw/hns/hns_roce_hem.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/infiniband/hw/hns/hns_roce_hem.c b/drivers/infiniband/hw/hns/hns_roce_hem.c > index c96378718f88..3fd8100c2b56 100644 > --- a/drivers/infiniband/hw/hns/hns_roce_hem.c > +++ b/drivers/infiniband/hw/hns/hns_roce_hem.c > @@ -603,7 +603,7 @@ static int set_mhop_hem(struct hns_roce_dev *hr_dev, > { > struct ib_device *ibdev = &hr_dev->ib_dev; > int step_idx; > - int ret; > + int ret = -ENODEV; > > if (index->inited & HEM_INDEX_L0) { > ret = hr_dev->hw->set_hem(hr_dev, table, obj, 0); > Hi Gustavo, Thanks for your modification. But I check the code and I think "ret" should be initialized to 0, which means no need to set hem and it is not an error. Weihang
On 3/27/20 21:15, liweihang wrote: > On 2020/3/28 3:28, Gustavo A. R. Silva wrote: >> There is a potential execution path in which variable *ret* is returned >> without being properly initialized, previously. >> >> Fix this by initializing variable *ret* to -ENODEV. >> >> Addresses-Coverity-ID: 1491917 ("Uninitialized scalar variable") >> Fixes: 2f49de21f3e9 ("RDMA/hns: Optimize mhop get flow for multi-hop addressing") >> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> >> --- >> drivers/infiniband/hw/hns/hns_roce_hem.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/infiniband/hw/hns/hns_roce_hem.c b/drivers/infiniband/hw/hns/hns_roce_hem.c >> index c96378718f88..3fd8100c2b56 100644 >> --- a/drivers/infiniband/hw/hns/hns_roce_hem.c >> +++ b/drivers/infiniband/hw/hns/hns_roce_hem.c >> @@ -603,7 +603,7 @@ static int set_mhop_hem(struct hns_roce_dev *hr_dev, >> { >> struct ib_device *ibdev = &hr_dev->ib_dev; >> int step_idx; >> - int ret; >> + int ret = -ENODEV; >> >> if (index->inited & HEM_INDEX_L0) { >> ret = hr_dev->hw->set_hem(hr_dev, table, obj, 0); >> > > Hi Gustavo, > Hi Weihang, > Thanks for your modification. But I check the code and I think "ret" > should be initialized to 0, which means no need to set hem and it is > not an error. > Oh, I see. Thanks for the feedback. I'll send v2 shortly. Thanks -- Gustavo
On Sat, Mar 28, 2020 at 02:15:14AM +0000, liweihang wrote: > On 2020/3/28 3:28, Gustavo A. R. Silva wrote: > > There is a potential execution path in which variable *ret* is returned > > without being properly initialized, previously. > > > > Fix this by initializing variable *ret* to -ENODEV. > > > > Addresses-Coverity-ID: 1491917 ("Uninitialized scalar variable") > > Fixes: 2f49de21f3e9 ("RDMA/hns: Optimize mhop get flow for multi-hop addressing") > > Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> > > drivers/infiniband/hw/hns/hns_roce_hem.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/infiniband/hw/hns/hns_roce_hem.c b/drivers/infiniband/hw/hns/hns_roce_hem.c > > index c96378718f88..3fd8100c2b56 100644 > > +++ b/drivers/infiniband/hw/hns/hns_roce_hem.c > > @@ -603,7 +603,7 @@ static int set_mhop_hem(struct hns_roce_dev *hr_dev, > > { > > struct ib_device *ibdev = &hr_dev->ib_dev; > > int step_idx; > > - int ret; > > + int ret = -ENODEV; > > > > if (index->inited & HEM_INDEX_L0) { > > ret = hr_dev->hw->set_hem(hr_dev, table, obj, 0); > > > > Hi Gustavo, > > Thanks for your modification. But I check the code and I think "ret" > should be initialized to 0, which means no need to set hem and it is > not an error. Weihang, thank you for checking, I would have taken it without your remarks :) Jason
diff --git a/drivers/infiniband/hw/hns/hns_roce_hem.c b/drivers/infiniband/hw/hns/hns_roce_hem.c index c96378718f88..3fd8100c2b56 100644 --- a/drivers/infiniband/hw/hns/hns_roce_hem.c +++ b/drivers/infiniband/hw/hns/hns_roce_hem.c @@ -603,7 +603,7 @@ static int set_mhop_hem(struct hns_roce_dev *hr_dev, { struct ib_device *ibdev = &hr_dev->ib_dev; int step_idx; - int ret; + int ret = -ENODEV; if (index->inited & HEM_INDEX_L0) { ret = hr_dev->hw->set_hem(hr_dev, table, obj, 0);
There is a potential execution path in which variable *ret* is returned without being properly initialized, previously. Fix this by initializing variable *ret* to -ENODEV. Addresses-Coverity-ID: 1491917 ("Uninitialized scalar variable") Fixes: 2f49de21f3e9 ("RDMA/hns: Optimize mhop get flow for multi-hop addressing") Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> --- drivers/infiniband/hw/hns/hns_roce_hem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)