Re: [PATCH 1/1] RDMA/rtrs: Fix the problem of variable not initialized fully

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Sep 20, 2023 at 4:16 AM Zhijian Li (Fujitsu)
<lizhijian@xxxxxxxxxxx> wrote:
>
>
>
> On 19/09/2023 17:30, Leon Romanovsky wrote:
> > On Tue, Sep 19, 2023 at 04:26:54PM +0800, Zhu Yanjun wrote:
> >>
> >> 在 2023/9/19 16:17, Leon Romanovsky 写道:
> >>> On Tue, Sep 19, 2023 at 10:08:06AM +0800, Zhu Yanjun wrote:
> >>>> From: Zhu Yanjun <yanjun.zhu@xxxxxxxxx>
> >>>>
> >>>> No functionality change. The variable which is not initialized fully
> >>>> will introduce potential risks.
> >>> Are you sure about not being initialized?
> >>
> >> About this problem, I think we discussed it previously in RDMA maillist.
> >>
> >> And at that time, IIRC, you shared a link with me. The link is as below.
> >>
> >> https://www.ex-parrot.com/~chris/random/initialise.html
> >>
> >>  From what we discussed and the above link, I think it is not initialized
> >> fully.
> >
> > I remember that discussion and it was about slightly different thing:
> > {} vs {0} in Linux kernel.
>
>
> Well, in my mind, I thought they are the same. see: https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Initializing-Structure-Members
>
> In current kernel, {NULL/0} is used in so many other places. beside {NULL}, another partial initializing form
> struct class {
>         int a, b, c, d, e;
> } instance = {
>    .a = x,
>    .b = y,
> };
>
> They are also used everywhere, it's definitely based on the truth instance.{c,d,e} to be "0".
I also think they are the same. oth it is harmless.

Thx
>
>
> Thanks
>
>
>
> >
> > However I don't think that I sent you that link.
> > Anyway, let's take this patch as it is harmless.
> >
> > Thanks
> >
> >>
> >>
> >> Zhu Yanjun
> >>
> >>>
> >>> Thanks
> >>>
> >>>> Signed-off-by: Zhu Yanjun <yanjun.zhu@xxxxxxxxx>
> >>>> ---
> >>>>    drivers/infiniband/ulp/rtrs/rtrs.c | 2 +-
> >>>>    1 file changed, 1 insertion(+), 1 deletion(-)
> >>>>
> >>>> diff --git a/drivers/infiniband/ulp/rtrs/rtrs.c b/drivers/infiniband/ulp/rtrs/rtrs.c
> >>>> index 3696f367ff51..d80edfffd2e4 100644
> >>>> --- a/drivers/infiniband/ulp/rtrs/rtrs.c
> >>>> +++ b/drivers/infiniband/ulp/rtrs/rtrs.c
> >>>> @@ -255,7 +255,7 @@ static int create_cq(struct rtrs_con *con, int cq_vector, int nr_cqe,
> >>>>    static int create_qp(struct rtrs_con *con, struct ib_pd *pd,
> >>>>                         u32 max_send_wr, u32 max_recv_wr, u32 max_sge)
> >>>>    {
> >>>> -  struct ib_qp_init_attr init_attr = {NULL};
> >>>> +  struct ib_qp_init_attr init_attr = {};
> >>>>            struct rdma_cm_id *cm_id = con->cm_id;
> >>>>            int ret;
> >>>> --
> >>>> 2.40.1
> >>>>




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux