[bug report] block/rnbd-clt: Support polling mode for IO latency optimization

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

 



Hello Gioh Kim,

The patch fa607fcb87f6: "block/rnbd-clt: Support polling mode for IO
latency optimization" from Apr 19, 2021, leads to the following
static checker warning:

	drivers/infiniband/ulp/rtrs/rtrs-clt.c:2998 rtrs_clt_rdma_cq_direct()
	error: uninitialized symbol 'cnt'.

drivers/infiniband/ulp/rtrs/rtrs-clt.c
  2977  int rtrs_clt_rdma_cq_direct(struct rtrs_clt *clt, unsigned int index)
  2978  {
  2979          int cnt;

What about if no sessions are connected?

  2980          struct rtrs_con *con;
  2981          struct rtrs_clt_sess *sess;
  2982          struct path_it it;
  2983  
  2984          rcu_read_lock();
  2985          for (path_it_init(&it, clt);
  2986               (sess = it.next_path(&it)) && it.i < it.clt->paths_num; it.i++) {
  2987                  if (READ_ONCE(sess->state) != RTRS_CLT_CONNECTED)
  2988                          continue;
  2989  
  2990                  con = sess->s.con[index + 1];
  2991                  cnt = ib_process_cq_direct(con->cq, -1);
  2992                  if (cnt)
  2993                          break;

I don't know any of this code but I would have expect use to add up
cnt for the whole loop...  Something like:

			ret = ib_process_cq_direct(con->cq, -1);
			if (ret < 0)
				break;
			cnt += ret;

  2994          }
  2995          path_it_deinit(&it);
  2996          rcu_read_unlock();
  2997  
  2998          return cnt;

		if (ret < 0)
			return ret;

		return cnt;

  2999  }

regards,
dan carpenter



[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