Re: [PATCH 1/1] IB: rxe: avoid srq memory leak

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

 



Sorry. V2 has fixed this problem. Please make tests with V2.

If any problem, please let me know. Thanks a lot.

Zhu Yanjun


On 2018/9/30 14:53, kbuild test robot wrote:
Hi Zhu,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on sof-driver-fuweitax/master]
[also build test ERROR on v4.19-rc5 next-20180928]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Zhu-Yanjun/IB-rxe-avoid-srq-memory-leak/20180930-115114
base:   https://github.com/fuweitax/linux master
config: sparc-allmodconfig (attached as .config)
compiler: sparc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
         chmod +x ~/bin/make.cross
         # save the attached .config to linux build tree
         GCC_VERSION=7.2.0 make.cross ARCH=sparc

All errors (new ones prefixed by >>):

    drivers/infiniband/sw/rxe/rxe_srq.c: In function 'rxe_srq_from_init':
drivers/infiniband/sw/rxe/rxe_srq.c:133:3: error: implicit declaration of function 'vfree'; did you mean 'kvfree'? [-Werror=implicit-function-declaration]
       vfree(q->buf);
       ^~~~~
       kvfree
    cc1: some warnings being treated as errors

vim +133 drivers/infiniband/sw/rxe/rxe_srq.c

     99	
    100	int rxe_srq_from_init(struct rxe_dev *rxe, struct rxe_srq *srq,
    101			      struct ib_srq_init_attr *init,
    102			      struct ib_ucontext *context,
    103			      struct rxe_create_srq_resp __user *uresp)
    104	{
    105		int err;
    106		int srq_wqe_size;
    107		struct rxe_queue *q;
    108	
    109		srq->ibsrq.event_handler	= init->event_handler;
    110		srq->ibsrq.srq_context		= init->srq_context;
    111		srq->limit		= init->attr.srq_limit;
    112		srq->srq_num		= srq->pelem.index;
    113		srq->rq.max_wr		= init->attr.max_wr;
    114		srq->rq.max_sge		= init->attr.max_sge;
    115	
    116		srq_wqe_size		= rcv_wqe_size(srq->rq.max_sge);
    117	
    118		spin_lock_init(&srq->rq.producer_lock);
    119		spin_lock_init(&srq->rq.consumer_lock);
    120	
    121		q = rxe_queue_init(rxe, &srq->rq.max_wr,
    122				   srq_wqe_size);
    123		if (!q) {
    124			pr_warn("unable to allocate queue for srq\n");
    125			return -ENOMEM;
    126		}
    127	
    128		srq->rq.queue = q;
    129	
    130		err = do_mmap_info(rxe, uresp ? &uresp->mi : NULL, context, q->buf,
    131				   q->buf_size, &q->ip);
    132		if (err) {
  > 133			vfree(q->buf);
    134			kfree(q);
    135			return err;
    136		}
    137	
    138		if (uresp) {
    139			if (copy_to_user(&uresp->srq_num, &srq->srq_num,
    140					 sizeof(uresp->srq_num))) {
    141				rxe_queue_cleanup(q);
    142				return -EFAULT;
    143			}
    144		}
    145	
    146		return 0;
    147	}
    148	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation




[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