All of lore.kernel.org
 help / color / mirror / Atom feed
* [rdma-rdma:wip/jgg-for-next 198/203] drivers/infiniband/ulp/rtrs/rtrs-srv.c:1805 rtrs_rdma_connect() warn: passing zero to 'PTR_ERR'
@ 2021-02-15 12:44 ` Dan Carpenter
  0 siblings, 0 replies; 8+ messages in thread
From: Dan Carpenter @ 2021-02-15 12:44 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 10405 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git wip/jgg-for-next
head:   c88b31c46cefe50f524a1ad3deaf1599bc9ee2e6
commit: f0751419d3a15fb06d9b7d9435312472c3cb122d [198/203] RDMA/rtrs: Only allow addition of path to an already established session
config: ia64-randconfig-m031-20210209 (attached as .config)
compiler: ia64-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/infiniband/ulp/rtrs/rtrs-srv.c:1805 rtrs_rdma_connect() warn: passing zero to 'PTR_ERR'

vim +/PTR_ERR +1805 drivers/infiniband/ulp/rtrs/rtrs-srv.c

9cb837480424e7 Jack Wang      2020-05-11  1760  static int rtrs_rdma_connect(struct rdma_cm_id *cm_id,
9cb837480424e7 Jack Wang      2020-05-11  1761  			      const struct rtrs_msg_conn_req *msg,
9cb837480424e7 Jack Wang      2020-05-11  1762  			      size_t len)
9cb837480424e7 Jack Wang      2020-05-11  1763  {
9cb837480424e7 Jack Wang      2020-05-11  1764  	struct rtrs_srv_ctx *ctx = cm_id->context;
9cb837480424e7 Jack Wang      2020-05-11  1765  	struct rtrs_srv_sess *sess;
9cb837480424e7 Jack Wang      2020-05-11  1766  	struct rtrs_srv *srv;
9cb837480424e7 Jack Wang      2020-05-11  1767  
9cb837480424e7 Jack Wang      2020-05-11  1768  	u16 version, con_num, cid;
9cb837480424e7 Jack Wang      2020-05-11  1769  	u16 recon_cnt;
9cb837480424e7 Jack Wang      2020-05-11  1770  	int err;
9cb837480424e7 Jack Wang      2020-05-11  1771  
9cb837480424e7 Jack Wang      2020-05-11  1772  	if (len < sizeof(*msg)) {
9cb837480424e7 Jack Wang      2020-05-11  1773  		pr_err("Invalid RTRS connection request\n");
9cb837480424e7 Jack Wang      2020-05-11  1774  		goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1775  	}
9cb837480424e7 Jack Wang      2020-05-11  1776  	if (le16_to_cpu(msg->magic) != RTRS_MAGIC) {
9cb837480424e7 Jack Wang      2020-05-11  1777  		pr_err("Invalid RTRS magic\n");
9cb837480424e7 Jack Wang      2020-05-11  1778  		goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1779  	}
9cb837480424e7 Jack Wang      2020-05-11  1780  	version = le16_to_cpu(msg->version);
9cb837480424e7 Jack Wang      2020-05-11  1781  	if (version >> 8 != RTRS_PROTO_VER_MAJOR) {
9cb837480424e7 Jack Wang      2020-05-11  1782  		pr_err("Unsupported major RTRS version: %d, expected %d\n",
9cb837480424e7 Jack Wang      2020-05-11  1783  		       version >> 8, RTRS_PROTO_VER_MAJOR);
9cb837480424e7 Jack Wang      2020-05-11  1784  		goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1785  	}
9cb837480424e7 Jack Wang      2020-05-11  1786  	con_num = le16_to_cpu(msg->cid_num);
9cb837480424e7 Jack Wang      2020-05-11  1787  	if (con_num > 4096) {
9cb837480424e7 Jack Wang      2020-05-11  1788  		/* Sanity check */
9cb837480424e7 Jack Wang      2020-05-11  1789  		pr_err("Too many connections requested: %d\n", con_num);
9cb837480424e7 Jack Wang      2020-05-11  1790  		goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1791  	}
9cb837480424e7 Jack Wang      2020-05-11  1792  	cid = le16_to_cpu(msg->cid);
9cb837480424e7 Jack Wang      2020-05-11  1793  	if (cid >= con_num) {
9cb837480424e7 Jack Wang      2020-05-11  1794  		/* Sanity check */
9cb837480424e7 Jack Wang      2020-05-11  1795  		pr_err("Incorrect cid: %d >= %d\n", cid, con_num);
9cb837480424e7 Jack Wang      2020-05-11  1796  		goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1797  	}
9cb837480424e7 Jack Wang      2020-05-11  1798  	recon_cnt = le16_to_cpu(msg->recon_cnt);
f0751419d3a15f Md Haris Iqbal 2021-02-12  1799  	srv = get_or_create_srv(ctx, &msg->paths_uuid, msg->first_conn);
d715ff8acbd587 Guoqing Jiang  2020-10-23  1800  	/*
d715ff8acbd587 Guoqing Jiang  2020-10-23  1801  	 * "refcount == 0" happens if a previous thread calls get_or_create_srv
d715ff8acbd587 Guoqing Jiang  2020-10-23  1802  	 * allocate srv, but chunks of srv are not allocated yet.
d715ff8acbd587 Guoqing Jiang  2020-10-23  1803  	 */
f0751419d3a15f Md Haris Iqbal 2021-02-12  1804  	if (IS_ERR(srv) || refcount_read(&srv->refcount) == 0) {
f0751419d3a15f Md Haris Iqbal 2021-02-12 @1805  		err = PTR_ERR(srv);

It's not 100% clear to me that an error code is required when
refcount_read() is zero.  Maybe "err = 0;" is okay in that situation?

9cb837480424e7 Jack Wang      2020-05-11  1806  		goto reject_w_err;
9cb837480424e7 Jack Wang      2020-05-11  1807  	}
9cb837480424e7 Jack Wang      2020-05-11  1808  	mutex_lock(&srv->paths_mutex);
9cb837480424e7 Jack Wang      2020-05-11  1809  	sess = __find_sess(srv, &msg->sess_uuid);
9cb837480424e7 Jack Wang      2020-05-11  1810  	if (sess) {
9cb837480424e7 Jack Wang      2020-05-11  1811  		struct rtrs_sess *s = &sess->s;
9cb837480424e7 Jack Wang      2020-05-11  1812  
9cb837480424e7 Jack Wang      2020-05-11  1813  		/* Session already holds a reference */
9cb837480424e7 Jack Wang      2020-05-11  1814  		put_srv(srv);
9cb837480424e7 Jack Wang      2020-05-11  1815  
9cb837480424e7 Jack Wang      2020-05-11  1816  		if (sess->state != RTRS_SRV_CONNECTING) {
9cb837480424e7 Jack Wang      2020-05-11  1817  			rtrs_err(s, "Session in wrong state: %s\n",
9cb837480424e7 Jack Wang      2020-05-11  1818  				  rtrs_srv_state_str(sess->state));
9cb837480424e7 Jack Wang      2020-05-11  1819  			mutex_unlock(&srv->paths_mutex);
9cb837480424e7 Jack Wang      2020-05-11  1820  			goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1821  		}
9cb837480424e7 Jack Wang      2020-05-11  1822  		/*
9cb837480424e7 Jack Wang      2020-05-11  1823  		 * Sanity checks
9cb837480424e7 Jack Wang      2020-05-11  1824  		 */
e172037be757dc Md Haris Iqbal 2020-05-22  1825  		if (con_num != s->con_num || cid >= s->con_num) {
9cb837480424e7 Jack Wang      2020-05-11  1826  			rtrs_err(s, "Incorrect request: %d, %d\n",
9cb837480424e7 Jack Wang      2020-05-11  1827  				  cid, con_num);
9cb837480424e7 Jack Wang      2020-05-11  1828  			mutex_unlock(&srv->paths_mutex);
9cb837480424e7 Jack Wang      2020-05-11  1829  			goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1830  		}
e172037be757dc Md Haris Iqbal 2020-05-22  1831  		if (s->con[cid]) {
9cb837480424e7 Jack Wang      2020-05-11  1832  			rtrs_err(s, "Connection already exists: %d\n",
9cb837480424e7 Jack Wang      2020-05-11  1833  				  cid);
9cb837480424e7 Jack Wang      2020-05-11  1834  			mutex_unlock(&srv->paths_mutex);
9cb837480424e7 Jack Wang      2020-05-11  1835  			goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1836  		}
9cb837480424e7 Jack Wang      2020-05-11  1837  	} else {
9cb837480424e7 Jack Wang      2020-05-11  1838  		sess = __alloc_sess(srv, cm_id, con_num, recon_cnt,
9cb837480424e7 Jack Wang      2020-05-11  1839  				    &msg->sess_uuid);
9cb837480424e7 Jack Wang      2020-05-11  1840  		if (IS_ERR(sess)) {
9cb837480424e7 Jack Wang      2020-05-11  1841  			mutex_unlock(&srv->paths_mutex);
9cb837480424e7 Jack Wang      2020-05-11  1842  			put_srv(srv);
9cb837480424e7 Jack Wang      2020-05-11  1843  			err = PTR_ERR(sess);
9cb837480424e7 Jack Wang      2020-05-11  1844  			goto reject_w_err;
9cb837480424e7 Jack Wang      2020-05-11  1845  		}
9cb837480424e7 Jack Wang      2020-05-11  1846  	}
9cb837480424e7 Jack Wang      2020-05-11  1847  	err = create_con(sess, cm_id, cid);
9cb837480424e7 Jack Wang      2020-05-11  1848  	if (err) {
9cb837480424e7 Jack Wang      2020-05-11  1849  		(void)rtrs_rdma_do_reject(cm_id, err);
9cb837480424e7 Jack Wang      2020-05-11  1850  		/*
9cb837480424e7 Jack Wang      2020-05-11  1851  		 * Since session has other connections we follow normal way
9cb837480424e7 Jack Wang      2020-05-11  1852  		 * through workqueue, but still return an error to tell cma.c
9cb837480424e7 Jack Wang      2020-05-11  1853  		 * to call rdma_destroy_id() for current connection.
9cb837480424e7 Jack Wang      2020-05-11  1854  		 */
9cb837480424e7 Jack Wang      2020-05-11  1855  		goto close_and_return_err;
9cb837480424e7 Jack Wang      2020-05-11  1856  	}
9cb837480424e7 Jack Wang      2020-05-11  1857  	err = rtrs_rdma_do_accept(sess, cm_id);
9cb837480424e7 Jack Wang      2020-05-11  1858  	if (err) {
9cb837480424e7 Jack Wang      2020-05-11  1859  		(void)rtrs_rdma_do_reject(cm_id, err);
9cb837480424e7 Jack Wang      2020-05-11  1860  		/*
9cb837480424e7 Jack Wang      2020-05-11  1861  		 * Since current connection was successfully added to the
9cb837480424e7 Jack Wang      2020-05-11  1862  		 * session we follow normal way through workqueue to close the
9cb837480424e7 Jack Wang      2020-05-11  1863  		 * session, thus return 0 to tell cma.c we call
9cb837480424e7 Jack Wang      2020-05-11  1864  		 * rdma_destroy_id() ourselves.
9cb837480424e7 Jack Wang      2020-05-11  1865  		 */
9cb837480424e7 Jack Wang      2020-05-11  1866  		err = 0;
9cb837480424e7 Jack Wang      2020-05-11  1867  		goto close_and_return_err;
9cb837480424e7 Jack Wang      2020-05-11  1868  	}
9cb837480424e7 Jack Wang      2020-05-11  1869  	mutex_unlock(&srv->paths_mutex);
9cb837480424e7 Jack Wang      2020-05-11  1870  
9cb837480424e7 Jack Wang      2020-05-11  1871  	return 0;
9cb837480424e7 Jack Wang      2020-05-11  1872  
9cb837480424e7 Jack Wang      2020-05-11  1873  reject_w_err:
9cb837480424e7 Jack Wang      2020-05-11  1874  	return rtrs_rdma_do_reject(cm_id, err);
9cb837480424e7 Jack Wang      2020-05-11  1875  
9cb837480424e7 Jack Wang      2020-05-11  1876  reject_w_econnreset:
9cb837480424e7 Jack Wang      2020-05-11  1877  	return rtrs_rdma_do_reject(cm_id, -ECONNRESET);
9cb837480424e7 Jack Wang      2020-05-11  1878  
9cb837480424e7 Jack Wang      2020-05-11  1879  close_and_return_err:
9cb837480424e7 Jack Wang      2020-05-11  1880  	mutex_unlock(&srv->paths_mutex);
99f0c380797335 Jack Wang      2020-12-17  1881  	close_sess(sess);
9cb837480424e7 Jack Wang      2020-05-11  1882  
9cb837480424e7 Jack Wang      2020-05-11  1883  	return err;
9cb837480424e7 Jack Wang      2020-05-11  1884  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 31954 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [rdma-rdma:wip/jgg-for-next 198/203] drivers/infiniband/ulp/rtrs/rtrs-srv.c:1805 rtrs_rdma_connect() warn: passing zero to 'PTR_ERR'
@ 2021-02-15 12:44 ` Dan Carpenter
  0 siblings, 0 replies; 8+ messages in thread
From: Dan Carpenter @ 2021-02-15 12:44 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 10405 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git wip/jgg-for-next
head:   c88b31c46cefe50f524a1ad3deaf1599bc9ee2e6
commit: f0751419d3a15fb06d9b7d9435312472c3cb122d [198/203] RDMA/rtrs: Only allow addition of path to an already established session
config: ia64-randconfig-m031-20210209 (attached as .config)
compiler: ia64-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/infiniband/ulp/rtrs/rtrs-srv.c:1805 rtrs_rdma_connect() warn: passing zero to 'PTR_ERR'

vim +/PTR_ERR +1805 drivers/infiniband/ulp/rtrs/rtrs-srv.c

9cb837480424e7 Jack Wang      2020-05-11  1760  static int rtrs_rdma_connect(struct rdma_cm_id *cm_id,
9cb837480424e7 Jack Wang      2020-05-11  1761  			      const struct rtrs_msg_conn_req *msg,
9cb837480424e7 Jack Wang      2020-05-11  1762  			      size_t len)
9cb837480424e7 Jack Wang      2020-05-11  1763  {
9cb837480424e7 Jack Wang      2020-05-11  1764  	struct rtrs_srv_ctx *ctx = cm_id->context;
9cb837480424e7 Jack Wang      2020-05-11  1765  	struct rtrs_srv_sess *sess;
9cb837480424e7 Jack Wang      2020-05-11  1766  	struct rtrs_srv *srv;
9cb837480424e7 Jack Wang      2020-05-11  1767  
9cb837480424e7 Jack Wang      2020-05-11  1768  	u16 version, con_num, cid;
9cb837480424e7 Jack Wang      2020-05-11  1769  	u16 recon_cnt;
9cb837480424e7 Jack Wang      2020-05-11  1770  	int err;
9cb837480424e7 Jack Wang      2020-05-11  1771  
9cb837480424e7 Jack Wang      2020-05-11  1772  	if (len < sizeof(*msg)) {
9cb837480424e7 Jack Wang      2020-05-11  1773  		pr_err("Invalid RTRS connection request\n");
9cb837480424e7 Jack Wang      2020-05-11  1774  		goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1775  	}
9cb837480424e7 Jack Wang      2020-05-11  1776  	if (le16_to_cpu(msg->magic) != RTRS_MAGIC) {
9cb837480424e7 Jack Wang      2020-05-11  1777  		pr_err("Invalid RTRS magic\n");
9cb837480424e7 Jack Wang      2020-05-11  1778  		goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1779  	}
9cb837480424e7 Jack Wang      2020-05-11  1780  	version = le16_to_cpu(msg->version);
9cb837480424e7 Jack Wang      2020-05-11  1781  	if (version >> 8 != RTRS_PROTO_VER_MAJOR) {
9cb837480424e7 Jack Wang      2020-05-11  1782  		pr_err("Unsupported major RTRS version: %d, expected %d\n",
9cb837480424e7 Jack Wang      2020-05-11  1783  		       version >> 8, RTRS_PROTO_VER_MAJOR);
9cb837480424e7 Jack Wang      2020-05-11  1784  		goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1785  	}
9cb837480424e7 Jack Wang      2020-05-11  1786  	con_num = le16_to_cpu(msg->cid_num);
9cb837480424e7 Jack Wang      2020-05-11  1787  	if (con_num > 4096) {
9cb837480424e7 Jack Wang      2020-05-11  1788  		/* Sanity check */
9cb837480424e7 Jack Wang      2020-05-11  1789  		pr_err("Too many connections requested: %d\n", con_num);
9cb837480424e7 Jack Wang      2020-05-11  1790  		goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1791  	}
9cb837480424e7 Jack Wang      2020-05-11  1792  	cid = le16_to_cpu(msg->cid);
9cb837480424e7 Jack Wang      2020-05-11  1793  	if (cid >= con_num) {
9cb837480424e7 Jack Wang      2020-05-11  1794  		/* Sanity check */
9cb837480424e7 Jack Wang      2020-05-11  1795  		pr_err("Incorrect cid: %d >= %d\n", cid, con_num);
9cb837480424e7 Jack Wang      2020-05-11  1796  		goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1797  	}
9cb837480424e7 Jack Wang      2020-05-11  1798  	recon_cnt = le16_to_cpu(msg->recon_cnt);
f0751419d3a15f Md Haris Iqbal 2021-02-12  1799  	srv = get_or_create_srv(ctx, &msg->paths_uuid, msg->first_conn);
d715ff8acbd587 Guoqing Jiang  2020-10-23  1800  	/*
d715ff8acbd587 Guoqing Jiang  2020-10-23  1801  	 * "refcount == 0" happens if a previous thread calls get_or_create_srv
d715ff8acbd587 Guoqing Jiang  2020-10-23  1802  	 * allocate srv, but chunks of srv are not allocated yet.
d715ff8acbd587 Guoqing Jiang  2020-10-23  1803  	 */
f0751419d3a15f Md Haris Iqbal 2021-02-12  1804  	if (IS_ERR(srv) || refcount_read(&srv->refcount) == 0) {
f0751419d3a15f Md Haris Iqbal 2021-02-12 @1805  		err = PTR_ERR(srv);

It's not 100% clear to me that an error code is required when
refcount_read() is zero.  Maybe "err = 0;" is okay in that situation?

9cb837480424e7 Jack Wang      2020-05-11  1806  		goto reject_w_err;
9cb837480424e7 Jack Wang      2020-05-11  1807  	}
9cb837480424e7 Jack Wang      2020-05-11  1808  	mutex_lock(&srv->paths_mutex);
9cb837480424e7 Jack Wang      2020-05-11  1809  	sess = __find_sess(srv, &msg->sess_uuid);
9cb837480424e7 Jack Wang      2020-05-11  1810  	if (sess) {
9cb837480424e7 Jack Wang      2020-05-11  1811  		struct rtrs_sess *s = &sess->s;
9cb837480424e7 Jack Wang      2020-05-11  1812  
9cb837480424e7 Jack Wang      2020-05-11  1813  		/* Session already holds a reference */
9cb837480424e7 Jack Wang      2020-05-11  1814  		put_srv(srv);
9cb837480424e7 Jack Wang      2020-05-11  1815  
9cb837480424e7 Jack Wang      2020-05-11  1816  		if (sess->state != RTRS_SRV_CONNECTING) {
9cb837480424e7 Jack Wang      2020-05-11  1817  			rtrs_err(s, "Session in wrong state: %s\n",
9cb837480424e7 Jack Wang      2020-05-11  1818  				  rtrs_srv_state_str(sess->state));
9cb837480424e7 Jack Wang      2020-05-11  1819  			mutex_unlock(&srv->paths_mutex);
9cb837480424e7 Jack Wang      2020-05-11  1820  			goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1821  		}
9cb837480424e7 Jack Wang      2020-05-11  1822  		/*
9cb837480424e7 Jack Wang      2020-05-11  1823  		 * Sanity checks
9cb837480424e7 Jack Wang      2020-05-11  1824  		 */
e172037be757dc Md Haris Iqbal 2020-05-22  1825  		if (con_num != s->con_num || cid >= s->con_num) {
9cb837480424e7 Jack Wang      2020-05-11  1826  			rtrs_err(s, "Incorrect request: %d, %d\n",
9cb837480424e7 Jack Wang      2020-05-11  1827  				  cid, con_num);
9cb837480424e7 Jack Wang      2020-05-11  1828  			mutex_unlock(&srv->paths_mutex);
9cb837480424e7 Jack Wang      2020-05-11  1829  			goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1830  		}
e172037be757dc Md Haris Iqbal 2020-05-22  1831  		if (s->con[cid]) {
9cb837480424e7 Jack Wang      2020-05-11  1832  			rtrs_err(s, "Connection already exists: %d\n",
9cb837480424e7 Jack Wang      2020-05-11  1833  				  cid);
9cb837480424e7 Jack Wang      2020-05-11  1834  			mutex_unlock(&srv->paths_mutex);
9cb837480424e7 Jack Wang      2020-05-11  1835  			goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1836  		}
9cb837480424e7 Jack Wang      2020-05-11  1837  	} else {
9cb837480424e7 Jack Wang      2020-05-11  1838  		sess = __alloc_sess(srv, cm_id, con_num, recon_cnt,
9cb837480424e7 Jack Wang      2020-05-11  1839  				    &msg->sess_uuid);
9cb837480424e7 Jack Wang      2020-05-11  1840  		if (IS_ERR(sess)) {
9cb837480424e7 Jack Wang      2020-05-11  1841  			mutex_unlock(&srv->paths_mutex);
9cb837480424e7 Jack Wang      2020-05-11  1842  			put_srv(srv);
9cb837480424e7 Jack Wang      2020-05-11  1843  			err = PTR_ERR(sess);
9cb837480424e7 Jack Wang      2020-05-11  1844  			goto reject_w_err;
9cb837480424e7 Jack Wang      2020-05-11  1845  		}
9cb837480424e7 Jack Wang      2020-05-11  1846  	}
9cb837480424e7 Jack Wang      2020-05-11  1847  	err = create_con(sess, cm_id, cid);
9cb837480424e7 Jack Wang      2020-05-11  1848  	if (err) {
9cb837480424e7 Jack Wang      2020-05-11  1849  		(void)rtrs_rdma_do_reject(cm_id, err);
9cb837480424e7 Jack Wang      2020-05-11  1850  		/*
9cb837480424e7 Jack Wang      2020-05-11  1851  		 * Since session has other connections we follow normal way
9cb837480424e7 Jack Wang      2020-05-11  1852  		 * through workqueue, but still return an error to tell cma.c
9cb837480424e7 Jack Wang      2020-05-11  1853  		 * to call rdma_destroy_id() for current connection.
9cb837480424e7 Jack Wang      2020-05-11  1854  		 */
9cb837480424e7 Jack Wang      2020-05-11  1855  		goto close_and_return_err;
9cb837480424e7 Jack Wang      2020-05-11  1856  	}
9cb837480424e7 Jack Wang      2020-05-11  1857  	err = rtrs_rdma_do_accept(sess, cm_id);
9cb837480424e7 Jack Wang      2020-05-11  1858  	if (err) {
9cb837480424e7 Jack Wang      2020-05-11  1859  		(void)rtrs_rdma_do_reject(cm_id, err);
9cb837480424e7 Jack Wang      2020-05-11  1860  		/*
9cb837480424e7 Jack Wang      2020-05-11  1861  		 * Since current connection was successfully added to the
9cb837480424e7 Jack Wang      2020-05-11  1862  		 * session we follow normal way through workqueue to close the
9cb837480424e7 Jack Wang      2020-05-11  1863  		 * session, thus return 0 to tell cma.c we call
9cb837480424e7 Jack Wang      2020-05-11  1864  		 * rdma_destroy_id() ourselves.
9cb837480424e7 Jack Wang      2020-05-11  1865  		 */
9cb837480424e7 Jack Wang      2020-05-11  1866  		err = 0;
9cb837480424e7 Jack Wang      2020-05-11  1867  		goto close_and_return_err;
9cb837480424e7 Jack Wang      2020-05-11  1868  	}
9cb837480424e7 Jack Wang      2020-05-11  1869  	mutex_unlock(&srv->paths_mutex);
9cb837480424e7 Jack Wang      2020-05-11  1870  
9cb837480424e7 Jack Wang      2020-05-11  1871  	return 0;
9cb837480424e7 Jack Wang      2020-05-11  1872  
9cb837480424e7 Jack Wang      2020-05-11  1873  reject_w_err:
9cb837480424e7 Jack Wang      2020-05-11  1874  	return rtrs_rdma_do_reject(cm_id, err);
9cb837480424e7 Jack Wang      2020-05-11  1875  
9cb837480424e7 Jack Wang      2020-05-11  1876  reject_w_econnreset:
9cb837480424e7 Jack Wang      2020-05-11  1877  	return rtrs_rdma_do_reject(cm_id, -ECONNRESET);
9cb837480424e7 Jack Wang      2020-05-11  1878  
9cb837480424e7 Jack Wang      2020-05-11  1879  close_and_return_err:
9cb837480424e7 Jack Wang      2020-05-11  1880  	mutex_unlock(&srv->paths_mutex);
99f0c380797335 Jack Wang      2020-12-17  1881  	close_sess(sess);
9cb837480424e7 Jack Wang      2020-05-11  1882  
9cb837480424e7 Jack Wang      2020-05-11  1883  	return err;
9cb837480424e7 Jack Wang      2020-05-11  1884  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 31954 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [rdma-rdma:wip/jgg-for-next 198/203] drivers/infiniband/ulp/rtrs/rtrs-srv.c:1805 rtrs_rdma_connect() warn: passing zero to 'PTR_ERR'
  2021-02-15 13:57   ` Dan Carpenter
  (?)
@ 2021-02-16 18:58   ` Jason Gunthorpe
  -1 siblings, 0 replies; 8+ messages in thread
From: Jason Gunthorpe @ 2021-02-16 18:58 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 1175 bytes --]

On Mon, Feb 15, 2021 at 04:57:57PM +0300, Dan Carpenter wrote:
> > > d715ff8acbd587 Guoqing Jiang  2020-10-23  1800          /*
> > > d715ff8acbd587 Guoqing Jiang  2020-10-23  1801           * "refcount == 0" happens if a previous thread calls get_or_create_srv
> > > d715ff8acbd587 Guoqing Jiang  2020-10-23  1802           * allocate srv, but chunks of srv are not allocated yet.
> > > d715ff8acbd587 Guoqing Jiang  2020-10-23  1803           */
> > > f0751419d3a15f Md Haris Iqbal 2021-02-12  1804          if (IS_ERR(srv) || refcount_read(&srv->refcount) == 0) {
> > > f0751419d3a15f Md Haris Iqbal 2021-02-12 @1805                  err = PTR_ERR(srv);
> > >
> > > It's not 100% clear to me that an error code is required when
> > > refcount_read() is zero.  Maybe "err = 0;" is okay in that situation?
> > I don't see how srv can be zero
> 
> The cross function database was probably out of date.

Regardless of if it is up to date or not, this sequence:

    if (refcount_read(&srv->refcount) == 0)
         err = PTR_ERR(srv);

Is completely bogus

eg prove srv is a valid pointer by de-refing and then passing a valid
pointer to PTR_ERR

Jason

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [rdma-rdma:wip/jgg-for-next 198/203] drivers/infiniband/ulp/rtrs/rtrs-srv.c:1805 rtrs_rdma_connect() warn: passing zero to 'PTR_ERR'
       [not found] <CAMGffEmbY1FMOHQsKeUK-f=JT6QFGE44Mmu=OFttEJVanbeXvg@mail.gmail.com>
@ 2021-02-15 14:16   ` Dan Carpenter
  0 siblings, 0 replies; 8+ messages in thread
From: Dan Carpenter @ 2021-02-15 14:16 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 6079 bytes --]

On Mon, Feb 15, 2021 at 03:02:32PM +0100, Jinpu Wang wrote:
> On Mon, Feb 15, 2021 at 2:58 PM Dan Carpenter <dan.carpenter@oracle.com> wrote:
> >
> > On Mon, Feb 15, 2021 at 02:03:31PM +0100, Jinpu Wang wrote:
> > > Hi, Dan,
> > >
> > > On Mon, Feb 15, 2021 at 1:44 PM Dan Carpenter <dan.carpenter@oracle.com> wrote:
> > > >
> > > > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git   wip/jgg-for-next
> > > > head:   c88b31c46cefe50f524a1ad3deaf1599bc9ee2e6
> > > > commit: f0751419d3a15fb06d9b7d9435312472c3cb122d [198/203] RDMA/rtrs: Only allow addition of path to an already established session
> > > > config: ia64-randconfig-m031-20210209 (attached as .config)
> > > > compiler: ia64-linux-gcc (GCC) 9.3.0
> > > >
> > > > If you fix the issue, kindly add following tag as appropriate
> > > > Reported-by: kernel test robot <lkp@intel.com>
> > > > Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> > > >
> > > > smatch warnings:
> > > > drivers/infiniband/ulp/rtrs/rtrs-srv.c:1805 rtrs_rdma_connect() warn: passing zero to 'PTR_ERR'
> > > >
> > > > vim +/PTR_ERR +1805 drivers/infiniband/ulp/rtrs/rtrs-srv.c
> > > >
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1760  static int rtrs_rdma_connect(struct rdma_cm_id *cm_id,
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1761                                const struct rtrs_msg_conn_req *msg,
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1762                                size_t len)
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1763  {
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1764          struct rtrs_srv_ctx *ctx = cm_id->context;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1765          struct rtrs_srv_sess *sess;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1766          struct rtrs_srv *srv;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1767
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1768          u16 version, con_num, cid;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1769          u16 recon_cnt;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1770          int err;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1771
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1772          if (len < sizeof(*msg)) {
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1773                  pr_err("Invalid RTRS connection request\n");
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1774                  goto reject_w_econnreset;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1775          }
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1776          if (le16_to_cpu(msg->magic) != RTRS_MAGIC) {
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1777                  pr_err("Invalid RTRS magic\n");
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1778                  goto reject_w_econnreset;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1779          }
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1780          version = le16_to_cpu(msg->version);
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1781          if (version >> 8 != RTRS_PROTO_VER_MAJOR) {
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1782                  pr_err("Unsupported major RTRS version: %d, expected %d\n",
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1783                         version >> 8, RTRS_PROTO_VER_MAJOR);
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1784                  goto reject_w_econnreset;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1785          }
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1786          con_num = le16_to_cpu(msg->cid_num);
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1787          if (con_num > 4096) {
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1788                  /* Sanity check */
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1789                  pr_err("Too many connections requested: %d\n", con_num);
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1790                  goto reject_w_econnreset;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1791          }
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1792          cid = le16_to_cpu(msg->cid);
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1793          if (cid >= con_num) {
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1794                  /* Sanity check */
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1795                  pr_err("Incorrect cid: %d >= %d\n", cid, con_num);
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1796                  goto reject_w_econnreset;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1797          }
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1798          recon_cnt = le16_to_cpu(msg->recon_cnt);
> > > > f0751419d3a15f Md Haris Iqbal 2021-02-12  1799          srv = get_or_create_srv(ctx, &msg->paths_uuid, msg->first_conn);
> > > > d715ff8acbd587 Guoqing Jiang  2020-10-23  1800          /*
> > > > d715ff8acbd587 Guoqing Jiang  2020-10-23  1801           * "refcount == 0" happens if a previous thread calls get_or_create_srv
> > > > d715ff8acbd587 Guoqing Jiang  2020-10-23  1802           * allocate srv, but chunks of srv are not allocated yet.
> > > > d715ff8acbd587 Guoqing Jiang  2020-10-23  1803           */
> > > > f0751419d3a15f Md Haris Iqbal 2021-02-12  1804          if (IS_ERR(srv) || refcount_read(&srv->refcount) == 0) {
> > > > f0751419d3a15f Md Haris Iqbal 2021-02-12 @1805                  err = PTR_ERR(srv);
> > > >
> > > > It's not 100% clear to me that an error code is required when
> > > > refcount_read() is zero.  Maybe "err = 0;" is okay in that situation?
> > > I don't see how srv can be zero
> >
> > The cross function database was probably out of date.
> 
> Thanks for the hint, just curious where is the cross-function
> database? is it auto-generated by gcc during compile?

This is a Smatch warning.

https://www.spinics.net/lists/smatch/msg00568.html

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [rdma-rdma:wip/jgg-for-next 198/203] drivers/infiniband/ulp/rtrs/rtrs-srv.c:1805 rtrs_rdma_connect() warn: passing zero to 'PTR_ERR'
@ 2021-02-15 14:16   ` Dan Carpenter
  0 siblings, 0 replies; 8+ messages in thread
From: Dan Carpenter @ 2021-02-15 14:16 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 6079 bytes --]

On Mon, Feb 15, 2021 at 03:02:32PM +0100, Jinpu Wang wrote:
> On Mon, Feb 15, 2021 at 2:58 PM Dan Carpenter <dan.carpenter@oracle.com> wrote:
> >
> > On Mon, Feb 15, 2021 at 02:03:31PM +0100, Jinpu Wang wrote:
> > > Hi, Dan,
> > >
> > > On Mon, Feb 15, 2021 at 1:44 PM Dan Carpenter <dan.carpenter@oracle.com> wrote:
> > > >
> > > > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git   wip/jgg-for-next
> > > > head:   c88b31c46cefe50f524a1ad3deaf1599bc9ee2e6
> > > > commit: f0751419d3a15fb06d9b7d9435312472c3cb122d [198/203] RDMA/rtrs: Only allow addition of path to an already established session
> > > > config: ia64-randconfig-m031-20210209 (attached as .config)
> > > > compiler: ia64-linux-gcc (GCC) 9.3.0
> > > >
> > > > If you fix the issue, kindly add following tag as appropriate
> > > > Reported-by: kernel test robot <lkp@intel.com>
> > > > Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> > > >
> > > > smatch warnings:
> > > > drivers/infiniband/ulp/rtrs/rtrs-srv.c:1805 rtrs_rdma_connect() warn: passing zero to 'PTR_ERR'
> > > >
> > > > vim +/PTR_ERR +1805 drivers/infiniband/ulp/rtrs/rtrs-srv.c
> > > >
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1760  static int rtrs_rdma_connect(struct rdma_cm_id *cm_id,
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1761                                const struct rtrs_msg_conn_req *msg,
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1762                                size_t len)
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1763  {
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1764          struct rtrs_srv_ctx *ctx = cm_id->context;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1765          struct rtrs_srv_sess *sess;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1766          struct rtrs_srv *srv;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1767
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1768          u16 version, con_num, cid;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1769          u16 recon_cnt;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1770          int err;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1771
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1772          if (len < sizeof(*msg)) {
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1773                  pr_err("Invalid RTRS connection request\n");
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1774                  goto reject_w_econnreset;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1775          }
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1776          if (le16_to_cpu(msg->magic) != RTRS_MAGIC) {
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1777                  pr_err("Invalid RTRS magic\n");
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1778                  goto reject_w_econnreset;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1779          }
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1780          version = le16_to_cpu(msg->version);
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1781          if (version >> 8 != RTRS_PROTO_VER_MAJOR) {
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1782                  pr_err("Unsupported major RTRS version: %d, expected %d\n",
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1783                         version >> 8, RTRS_PROTO_VER_MAJOR);
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1784                  goto reject_w_econnreset;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1785          }
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1786          con_num = le16_to_cpu(msg->cid_num);
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1787          if (con_num > 4096) {
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1788                  /* Sanity check */
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1789                  pr_err("Too many connections requested: %d\n", con_num);
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1790                  goto reject_w_econnreset;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1791          }
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1792          cid = le16_to_cpu(msg->cid);
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1793          if (cid >= con_num) {
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1794                  /* Sanity check */
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1795                  pr_err("Incorrect cid: %d >= %d\n", cid, con_num);
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1796                  goto reject_w_econnreset;
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1797          }
> > > > 9cb837480424e7 Jack Wang      2020-05-11  1798          recon_cnt = le16_to_cpu(msg->recon_cnt);
> > > > f0751419d3a15f Md Haris Iqbal 2021-02-12  1799          srv = get_or_create_srv(ctx, &msg->paths_uuid, msg->first_conn);
> > > > d715ff8acbd587 Guoqing Jiang  2020-10-23  1800          /*
> > > > d715ff8acbd587 Guoqing Jiang  2020-10-23  1801           * "refcount == 0" happens if a previous thread calls get_or_create_srv
> > > > d715ff8acbd587 Guoqing Jiang  2020-10-23  1802           * allocate srv, but chunks of srv are not allocated yet.
> > > > d715ff8acbd587 Guoqing Jiang  2020-10-23  1803           */
> > > > f0751419d3a15f Md Haris Iqbal 2021-02-12  1804          if (IS_ERR(srv) || refcount_read(&srv->refcount) == 0) {
> > > > f0751419d3a15f Md Haris Iqbal 2021-02-12 @1805                  err = PTR_ERR(srv);
> > > >
> > > > It's not 100% clear to me that an error code is required when
> > > > refcount_read() is zero.  Maybe "err = 0;" is okay in that situation?
> > > I don't see how srv can be zero
> >
> > The cross function database was probably out of date.
> 
> Thanks for the hint, just curious where is the cross-function
> database? is it auto-generated by gcc during compile?

This is a Smatch warning.

https://www.spinics.net/lists/smatch/msg00568.html

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [rdma-rdma:wip/jgg-for-next 198/203] drivers/infiniband/ulp/rtrs/rtrs-srv.c:1805 rtrs_rdma_connect() warn: passing zero to 'PTR_ERR'
       [not found] <CAMGffEm3ZbPxXzERHLogitw9oz_UK88KE+SZSCy4x1PdvquDZw@mail.gmail.com>
@ 2021-02-15 13:57   ` Dan Carpenter
  0 siblings, 0 replies; 8+ messages in thread
From: Dan Carpenter @ 2021-02-15 13:57 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 5434 bytes --]

On Mon, Feb 15, 2021 at 02:03:31PM +0100, Jinpu Wang wrote:
> Hi, Dan,
> 
> On Mon, Feb 15, 2021 at 1:44 PM Dan Carpenter <dan.carpenter@oracle.com> wrote:
> >
> > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git  wip/jgg-for-next
> > head:   c88b31c46cefe50f524a1ad3deaf1599bc9ee2e6
> > commit: f0751419d3a15fb06d9b7d9435312472c3cb122d [198/203] RDMA/rtrs: Only allow addition of path to an already established session
> > config: ia64-randconfig-m031-20210209 (attached as .config)
> > compiler: ia64-linux-gcc (GCC) 9.3.0
> >
> > If you fix the issue, kindly add following tag as appropriate
> > Reported-by: kernel test robot <lkp@intel.com>
> > Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> >
> > smatch warnings:
> > drivers/infiniband/ulp/rtrs/rtrs-srv.c:1805 rtrs_rdma_connect() warn: passing zero to 'PTR_ERR'
> >
> > vim +/PTR_ERR +1805 drivers/infiniband/ulp/rtrs/rtrs-srv.c
> >
> > 9cb837480424e7 Jack Wang      2020-05-11  1760  static int rtrs_rdma_connect(struct rdma_cm_id *cm_id,
> > 9cb837480424e7 Jack Wang      2020-05-11  1761                                const struct rtrs_msg_conn_req *msg,
> > 9cb837480424e7 Jack Wang      2020-05-11  1762                                size_t len)
> > 9cb837480424e7 Jack Wang      2020-05-11  1763  {
> > 9cb837480424e7 Jack Wang      2020-05-11  1764          struct rtrs_srv_ctx *ctx = cm_id->context;
> > 9cb837480424e7 Jack Wang      2020-05-11  1765          struct rtrs_srv_sess *sess;
> > 9cb837480424e7 Jack Wang      2020-05-11  1766          struct rtrs_srv *srv;
> > 9cb837480424e7 Jack Wang      2020-05-11  1767
> > 9cb837480424e7 Jack Wang      2020-05-11  1768          u16 version, con_num, cid;
> > 9cb837480424e7 Jack Wang      2020-05-11  1769          u16 recon_cnt;
> > 9cb837480424e7 Jack Wang      2020-05-11  1770          int err;
> > 9cb837480424e7 Jack Wang      2020-05-11  1771
> > 9cb837480424e7 Jack Wang      2020-05-11  1772          if (len < sizeof(*msg)) {
> > 9cb837480424e7 Jack Wang      2020-05-11  1773                  pr_err("Invalid RTRS connection request\n");
> > 9cb837480424e7 Jack Wang      2020-05-11  1774                  goto reject_w_econnreset;
> > 9cb837480424e7 Jack Wang      2020-05-11  1775          }
> > 9cb837480424e7 Jack Wang      2020-05-11  1776          if (le16_to_cpu(msg->magic) != RTRS_MAGIC) {
> > 9cb837480424e7 Jack Wang      2020-05-11  1777                  pr_err("Invalid RTRS magic\n");
> > 9cb837480424e7 Jack Wang      2020-05-11  1778                  goto reject_w_econnreset;
> > 9cb837480424e7 Jack Wang      2020-05-11  1779          }
> > 9cb837480424e7 Jack Wang      2020-05-11  1780          version = le16_to_cpu(msg->version);
> > 9cb837480424e7 Jack Wang      2020-05-11  1781          if (version >> 8 != RTRS_PROTO_VER_MAJOR) {
> > 9cb837480424e7 Jack Wang      2020-05-11  1782                  pr_err("Unsupported major RTRS version: %d, expected %d\n",
> > 9cb837480424e7 Jack Wang      2020-05-11  1783                         version >> 8, RTRS_PROTO_VER_MAJOR);
> > 9cb837480424e7 Jack Wang      2020-05-11  1784                  goto reject_w_econnreset;
> > 9cb837480424e7 Jack Wang      2020-05-11  1785          }
> > 9cb837480424e7 Jack Wang      2020-05-11  1786          con_num = le16_to_cpu(msg->cid_num);
> > 9cb837480424e7 Jack Wang      2020-05-11  1787          if (con_num > 4096) {
> > 9cb837480424e7 Jack Wang      2020-05-11  1788                  /* Sanity check */
> > 9cb837480424e7 Jack Wang      2020-05-11  1789                  pr_err("Too many connections requested: %d\n", con_num);
> > 9cb837480424e7 Jack Wang      2020-05-11  1790                  goto reject_w_econnreset;
> > 9cb837480424e7 Jack Wang      2020-05-11  1791          }
> > 9cb837480424e7 Jack Wang      2020-05-11  1792          cid = le16_to_cpu(msg->cid);
> > 9cb837480424e7 Jack Wang      2020-05-11  1793          if (cid >= con_num) {
> > 9cb837480424e7 Jack Wang      2020-05-11  1794                  /* Sanity check */
> > 9cb837480424e7 Jack Wang      2020-05-11  1795                  pr_err("Incorrect cid: %d >= %d\n", cid, con_num);
> > 9cb837480424e7 Jack Wang      2020-05-11  1796                  goto reject_w_econnreset;
> > 9cb837480424e7 Jack Wang      2020-05-11  1797          }
> > 9cb837480424e7 Jack Wang      2020-05-11  1798          recon_cnt = le16_to_cpu(msg->recon_cnt);
> > f0751419d3a15f Md Haris Iqbal 2021-02-12  1799          srv = get_or_create_srv(ctx, &msg->paths_uuid, msg->first_conn);
> > d715ff8acbd587 Guoqing Jiang  2020-10-23  1800          /*
> > d715ff8acbd587 Guoqing Jiang  2020-10-23  1801           * "refcount == 0" happens if a previous thread calls get_or_create_srv
> > d715ff8acbd587 Guoqing Jiang  2020-10-23  1802           * allocate srv, but chunks of srv are not allocated yet.
> > d715ff8acbd587 Guoqing Jiang  2020-10-23  1803           */
> > f0751419d3a15f Md Haris Iqbal 2021-02-12  1804          if (IS_ERR(srv) || refcount_read(&srv->refcount) == 0) {
> > f0751419d3a15f Md Haris Iqbal 2021-02-12 @1805                  err = PTR_ERR(srv);
> >
> > It's not 100% clear to me that an error code is required when
> > refcount_read() is zero.  Maybe "err = 0;" is okay in that situation?
> I don't see how srv can be zero

The cross function database was probably out of date.

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [rdma-rdma:wip/jgg-for-next 198/203] drivers/infiniband/ulp/rtrs/rtrs-srv.c:1805 rtrs_rdma_connect() warn: passing zero to 'PTR_ERR'
@ 2021-02-15 13:57   ` Dan Carpenter
  0 siblings, 0 replies; 8+ messages in thread
From: Dan Carpenter @ 2021-02-15 13:57 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 5434 bytes --]

On Mon, Feb 15, 2021 at 02:03:31PM +0100, Jinpu Wang wrote:
> Hi, Dan,
> 
> On Mon, Feb 15, 2021 at 1:44 PM Dan Carpenter <dan.carpenter@oracle.com> wrote:
> >
> > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git  wip/jgg-for-next
> > head:   c88b31c46cefe50f524a1ad3deaf1599bc9ee2e6
> > commit: f0751419d3a15fb06d9b7d9435312472c3cb122d [198/203] RDMA/rtrs: Only allow addition of path to an already established session
> > config: ia64-randconfig-m031-20210209 (attached as .config)
> > compiler: ia64-linux-gcc (GCC) 9.3.0
> >
> > If you fix the issue, kindly add following tag as appropriate
> > Reported-by: kernel test robot <lkp@intel.com>
> > Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> >
> > smatch warnings:
> > drivers/infiniband/ulp/rtrs/rtrs-srv.c:1805 rtrs_rdma_connect() warn: passing zero to 'PTR_ERR'
> >
> > vim +/PTR_ERR +1805 drivers/infiniband/ulp/rtrs/rtrs-srv.c
> >
> > 9cb837480424e7 Jack Wang      2020-05-11  1760  static int rtrs_rdma_connect(struct rdma_cm_id *cm_id,
> > 9cb837480424e7 Jack Wang      2020-05-11  1761                                const struct rtrs_msg_conn_req *msg,
> > 9cb837480424e7 Jack Wang      2020-05-11  1762                                size_t len)
> > 9cb837480424e7 Jack Wang      2020-05-11  1763  {
> > 9cb837480424e7 Jack Wang      2020-05-11  1764          struct rtrs_srv_ctx *ctx = cm_id->context;
> > 9cb837480424e7 Jack Wang      2020-05-11  1765          struct rtrs_srv_sess *sess;
> > 9cb837480424e7 Jack Wang      2020-05-11  1766          struct rtrs_srv *srv;
> > 9cb837480424e7 Jack Wang      2020-05-11  1767
> > 9cb837480424e7 Jack Wang      2020-05-11  1768          u16 version, con_num, cid;
> > 9cb837480424e7 Jack Wang      2020-05-11  1769          u16 recon_cnt;
> > 9cb837480424e7 Jack Wang      2020-05-11  1770          int err;
> > 9cb837480424e7 Jack Wang      2020-05-11  1771
> > 9cb837480424e7 Jack Wang      2020-05-11  1772          if (len < sizeof(*msg)) {
> > 9cb837480424e7 Jack Wang      2020-05-11  1773                  pr_err("Invalid RTRS connection request\n");
> > 9cb837480424e7 Jack Wang      2020-05-11  1774                  goto reject_w_econnreset;
> > 9cb837480424e7 Jack Wang      2020-05-11  1775          }
> > 9cb837480424e7 Jack Wang      2020-05-11  1776          if (le16_to_cpu(msg->magic) != RTRS_MAGIC) {
> > 9cb837480424e7 Jack Wang      2020-05-11  1777                  pr_err("Invalid RTRS magic\n");
> > 9cb837480424e7 Jack Wang      2020-05-11  1778                  goto reject_w_econnreset;
> > 9cb837480424e7 Jack Wang      2020-05-11  1779          }
> > 9cb837480424e7 Jack Wang      2020-05-11  1780          version = le16_to_cpu(msg->version);
> > 9cb837480424e7 Jack Wang      2020-05-11  1781          if (version >> 8 != RTRS_PROTO_VER_MAJOR) {
> > 9cb837480424e7 Jack Wang      2020-05-11  1782                  pr_err("Unsupported major RTRS version: %d, expected %d\n",
> > 9cb837480424e7 Jack Wang      2020-05-11  1783                         version >> 8, RTRS_PROTO_VER_MAJOR);
> > 9cb837480424e7 Jack Wang      2020-05-11  1784                  goto reject_w_econnreset;
> > 9cb837480424e7 Jack Wang      2020-05-11  1785          }
> > 9cb837480424e7 Jack Wang      2020-05-11  1786          con_num = le16_to_cpu(msg->cid_num);
> > 9cb837480424e7 Jack Wang      2020-05-11  1787          if (con_num > 4096) {
> > 9cb837480424e7 Jack Wang      2020-05-11  1788                  /* Sanity check */
> > 9cb837480424e7 Jack Wang      2020-05-11  1789                  pr_err("Too many connections requested: %d\n", con_num);
> > 9cb837480424e7 Jack Wang      2020-05-11  1790                  goto reject_w_econnreset;
> > 9cb837480424e7 Jack Wang      2020-05-11  1791          }
> > 9cb837480424e7 Jack Wang      2020-05-11  1792          cid = le16_to_cpu(msg->cid);
> > 9cb837480424e7 Jack Wang      2020-05-11  1793          if (cid >= con_num) {
> > 9cb837480424e7 Jack Wang      2020-05-11  1794                  /* Sanity check */
> > 9cb837480424e7 Jack Wang      2020-05-11  1795                  pr_err("Incorrect cid: %d >= %d\n", cid, con_num);
> > 9cb837480424e7 Jack Wang      2020-05-11  1796                  goto reject_w_econnreset;
> > 9cb837480424e7 Jack Wang      2020-05-11  1797          }
> > 9cb837480424e7 Jack Wang      2020-05-11  1798          recon_cnt = le16_to_cpu(msg->recon_cnt);
> > f0751419d3a15f Md Haris Iqbal 2021-02-12  1799          srv = get_or_create_srv(ctx, &msg->paths_uuid, msg->first_conn);
> > d715ff8acbd587 Guoqing Jiang  2020-10-23  1800          /*
> > d715ff8acbd587 Guoqing Jiang  2020-10-23  1801           * "refcount == 0" happens if a previous thread calls get_or_create_srv
> > d715ff8acbd587 Guoqing Jiang  2020-10-23  1802           * allocate srv, but chunks of srv are not allocated yet.
> > d715ff8acbd587 Guoqing Jiang  2020-10-23  1803           */
> > f0751419d3a15f Md Haris Iqbal 2021-02-12  1804          if (IS_ERR(srv) || refcount_read(&srv->refcount) == 0) {
> > f0751419d3a15f Md Haris Iqbal 2021-02-12 @1805                  err = PTR_ERR(srv);
> >
> > It's not 100% clear to me that an error code is required when
> > refcount_read() is zero.  Maybe "err = 0;" is okay in that situation?
> I don't see how srv can be zero

The cross function database was probably out of date.

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [rdma-rdma:wip/jgg-for-next 198/203] drivers/infiniband/ulp/rtrs/rtrs-srv.c:1805 rtrs_rdma_connect() warn: passing zero to 'PTR_ERR'
@ 2021-02-12 21:28 kernel test robot
  0 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2021-02-12 21:28 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 10647 bytes --]

CC: kbuild-all(a)lists.01.org
TO: Md Haris Iqbal <haris.iqbal@cloud.ionos.com>
CC: Jason Gunthorpe <jgg@nvidia.com>
CC: Lutz Pogrell <lutz.pogrell@cloud.ionos.com>
CC: Jack Wang <jinpu.wang@cloud.ionos.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git wip/jgg-for-next
head:   c88b31c46cefe50f524a1ad3deaf1599bc9ee2e6
commit: f0751419d3a15fb06d9b7d9435312472c3cb122d [198/203] RDMA/rtrs: Only allow addition of path to an already established session
:::::: branch date: 4 hours ago
:::::: commit date: 6 hours ago
config: ia64-randconfig-m031-20210209 (attached as .config)
compiler: ia64-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/infiniband/ulp/rtrs/rtrs-srv.c:1805 rtrs_rdma_connect() warn: passing zero to 'PTR_ERR'

vim +/PTR_ERR +1805 drivers/infiniband/ulp/rtrs/rtrs-srv.c

9cb837480424e7 Jack Wang      2020-05-11  1759  
9cb837480424e7 Jack Wang      2020-05-11  1760  static int rtrs_rdma_connect(struct rdma_cm_id *cm_id,
9cb837480424e7 Jack Wang      2020-05-11  1761  			      const struct rtrs_msg_conn_req *msg,
9cb837480424e7 Jack Wang      2020-05-11  1762  			      size_t len)
9cb837480424e7 Jack Wang      2020-05-11  1763  {
9cb837480424e7 Jack Wang      2020-05-11  1764  	struct rtrs_srv_ctx *ctx = cm_id->context;
9cb837480424e7 Jack Wang      2020-05-11  1765  	struct rtrs_srv_sess *sess;
9cb837480424e7 Jack Wang      2020-05-11  1766  	struct rtrs_srv *srv;
9cb837480424e7 Jack Wang      2020-05-11  1767  
9cb837480424e7 Jack Wang      2020-05-11  1768  	u16 version, con_num, cid;
9cb837480424e7 Jack Wang      2020-05-11  1769  	u16 recon_cnt;
9cb837480424e7 Jack Wang      2020-05-11  1770  	int err;
9cb837480424e7 Jack Wang      2020-05-11  1771  
9cb837480424e7 Jack Wang      2020-05-11  1772  	if (len < sizeof(*msg)) {
9cb837480424e7 Jack Wang      2020-05-11  1773  		pr_err("Invalid RTRS connection request\n");
9cb837480424e7 Jack Wang      2020-05-11  1774  		goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1775  	}
9cb837480424e7 Jack Wang      2020-05-11  1776  	if (le16_to_cpu(msg->magic) != RTRS_MAGIC) {
9cb837480424e7 Jack Wang      2020-05-11  1777  		pr_err("Invalid RTRS magic\n");
9cb837480424e7 Jack Wang      2020-05-11  1778  		goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1779  	}
9cb837480424e7 Jack Wang      2020-05-11  1780  	version = le16_to_cpu(msg->version);
9cb837480424e7 Jack Wang      2020-05-11  1781  	if (version >> 8 != RTRS_PROTO_VER_MAJOR) {
9cb837480424e7 Jack Wang      2020-05-11  1782  		pr_err("Unsupported major RTRS version: %d, expected %d\n",
9cb837480424e7 Jack Wang      2020-05-11  1783  		       version >> 8, RTRS_PROTO_VER_MAJOR);
9cb837480424e7 Jack Wang      2020-05-11  1784  		goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1785  	}
9cb837480424e7 Jack Wang      2020-05-11  1786  	con_num = le16_to_cpu(msg->cid_num);
9cb837480424e7 Jack Wang      2020-05-11  1787  	if (con_num > 4096) {
9cb837480424e7 Jack Wang      2020-05-11  1788  		/* Sanity check */
9cb837480424e7 Jack Wang      2020-05-11  1789  		pr_err("Too many connections requested: %d\n", con_num);
9cb837480424e7 Jack Wang      2020-05-11  1790  		goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1791  	}
9cb837480424e7 Jack Wang      2020-05-11  1792  	cid = le16_to_cpu(msg->cid);
9cb837480424e7 Jack Wang      2020-05-11  1793  	if (cid >= con_num) {
9cb837480424e7 Jack Wang      2020-05-11  1794  		/* Sanity check */
9cb837480424e7 Jack Wang      2020-05-11  1795  		pr_err("Incorrect cid: %d >= %d\n", cid, con_num);
9cb837480424e7 Jack Wang      2020-05-11  1796  		goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1797  	}
9cb837480424e7 Jack Wang      2020-05-11  1798  	recon_cnt = le16_to_cpu(msg->recon_cnt);
f0751419d3a15f Md Haris Iqbal 2021-02-12  1799  	srv = get_or_create_srv(ctx, &msg->paths_uuid, msg->first_conn);
d715ff8acbd587 Guoqing Jiang  2020-10-23  1800  	/*
d715ff8acbd587 Guoqing Jiang  2020-10-23  1801  	 * "refcount == 0" happens if a previous thread calls get_or_create_srv
d715ff8acbd587 Guoqing Jiang  2020-10-23  1802  	 * allocate srv, but chunks of srv are not allocated yet.
d715ff8acbd587 Guoqing Jiang  2020-10-23  1803  	 */
f0751419d3a15f Md Haris Iqbal 2021-02-12  1804  	if (IS_ERR(srv) || refcount_read(&srv->refcount) == 0) {
f0751419d3a15f Md Haris Iqbal 2021-02-12 @1805  		err = PTR_ERR(srv);
9cb837480424e7 Jack Wang      2020-05-11  1806  		goto reject_w_err;
9cb837480424e7 Jack Wang      2020-05-11  1807  	}
9cb837480424e7 Jack Wang      2020-05-11  1808  	mutex_lock(&srv->paths_mutex);
9cb837480424e7 Jack Wang      2020-05-11  1809  	sess = __find_sess(srv, &msg->sess_uuid);
9cb837480424e7 Jack Wang      2020-05-11  1810  	if (sess) {
9cb837480424e7 Jack Wang      2020-05-11  1811  		struct rtrs_sess *s = &sess->s;
9cb837480424e7 Jack Wang      2020-05-11  1812  
9cb837480424e7 Jack Wang      2020-05-11  1813  		/* Session already holds a reference */
9cb837480424e7 Jack Wang      2020-05-11  1814  		put_srv(srv);
9cb837480424e7 Jack Wang      2020-05-11  1815  
9cb837480424e7 Jack Wang      2020-05-11  1816  		if (sess->state != RTRS_SRV_CONNECTING) {
9cb837480424e7 Jack Wang      2020-05-11  1817  			rtrs_err(s, "Session in wrong state: %s\n",
9cb837480424e7 Jack Wang      2020-05-11  1818  				  rtrs_srv_state_str(sess->state));
9cb837480424e7 Jack Wang      2020-05-11  1819  			mutex_unlock(&srv->paths_mutex);
9cb837480424e7 Jack Wang      2020-05-11  1820  			goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1821  		}
9cb837480424e7 Jack Wang      2020-05-11  1822  		/*
9cb837480424e7 Jack Wang      2020-05-11  1823  		 * Sanity checks
9cb837480424e7 Jack Wang      2020-05-11  1824  		 */
e172037be757dc Md Haris Iqbal 2020-05-22  1825  		if (con_num != s->con_num || cid >= s->con_num) {
9cb837480424e7 Jack Wang      2020-05-11  1826  			rtrs_err(s, "Incorrect request: %d, %d\n",
9cb837480424e7 Jack Wang      2020-05-11  1827  				  cid, con_num);
9cb837480424e7 Jack Wang      2020-05-11  1828  			mutex_unlock(&srv->paths_mutex);
9cb837480424e7 Jack Wang      2020-05-11  1829  			goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1830  		}
e172037be757dc Md Haris Iqbal 2020-05-22  1831  		if (s->con[cid]) {
9cb837480424e7 Jack Wang      2020-05-11  1832  			rtrs_err(s, "Connection already exists: %d\n",
9cb837480424e7 Jack Wang      2020-05-11  1833  				  cid);
9cb837480424e7 Jack Wang      2020-05-11  1834  			mutex_unlock(&srv->paths_mutex);
9cb837480424e7 Jack Wang      2020-05-11  1835  			goto reject_w_econnreset;
9cb837480424e7 Jack Wang      2020-05-11  1836  		}
9cb837480424e7 Jack Wang      2020-05-11  1837  	} else {
9cb837480424e7 Jack Wang      2020-05-11  1838  		sess = __alloc_sess(srv, cm_id, con_num, recon_cnt,
9cb837480424e7 Jack Wang      2020-05-11  1839  				    &msg->sess_uuid);
9cb837480424e7 Jack Wang      2020-05-11  1840  		if (IS_ERR(sess)) {
9cb837480424e7 Jack Wang      2020-05-11  1841  			mutex_unlock(&srv->paths_mutex);
9cb837480424e7 Jack Wang      2020-05-11  1842  			put_srv(srv);
9cb837480424e7 Jack Wang      2020-05-11  1843  			err = PTR_ERR(sess);
9cb837480424e7 Jack Wang      2020-05-11  1844  			goto reject_w_err;
9cb837480424e7 Jack Wang      2020-05-11  1845  		}
9cb837480424e7 Jack Wang      2020-05-11  1846  	}
9cb837480424e7 Jack Wang      2020-05-11  1847  	err = create_con(sess, cm_id, cid);
9cb837480424e7 Jack Wang      2020-05-11  1848  	if (err) {
9cb837480424e7 Jack Wang      2020-05-11  1849  		(void)rtrs_rdma_do_reject(cm_id, err);
9cb837480424e7 Jack Wang      2020-05-11  1850  		/*
9cb837480424e7 Jack Wang      2020-05-11  1851  		 * Since session has other connections we follow normal way
9cb837480424e7 Jack Wang      2020-05-11  1852  		 * through workqueue, but still return an error to tell cma.c
9cb837480424e7 Jack Wang      2020-05-11  1853  		 * to call rdma_destroy_id() for current connection.
9cb837480424e7 Jack Wang      2020-05-11  1854  		 */
9cb837480424e7 Jack Wang      2020-05-11  1855  		goto close_and_return_err;
9cb837480424e7 Jack Wang      2020-05-11  1856  	}
9cb837480424e7 Jack Wang      2020-05-11  1857  	err = rtrs_rdma_do_accept(sess, cm_id);
9cb837480424e7 Jack Wang      2020-05-11  1858  	if (err) {
9cb837480424e7 Jack Wang      2020-05-11  1859  		(void)rtrs_rdma_do_reject(cm_id, err);
9cb837480424e7 Jack Wang      2020-05-11  1860  		/*
9cb837480424e7 Jack Wang      2020-05-11  1861  		 * Since current connection was successfully added to the
9cb837480424e7 Jack Wang      2020-05-11  1862  		 * session we follow normal way through workqueue to close the
9cb837480424e7 Jack Wang      2020-05-11  1863  		 * session, thus return 0 to tell cma.c we call
9cb837480424e7 Jack Wang      2020-05-11  1864  		 * rdma_destroy_id() ourselves.
9cb837480424e7 Jack Wang      2020-05-11  1865  		 */
9cb837480424e7 Jack Wang      2020-05-11  1866  		err = 0;
9cb837480424e7 Jack Wang      2020-05-11  1867  		goto close_and_return_err;
9cb837480424e7 Jack Wang      2020-05-11  1868  	}
9cb837480424e7 Jack Wang      2020-05-11  1869  	mutex_unlock(&srv->paths_mutex);
9cb837480424e7 Jack Wang      2020-05-11  1870  
9cb837480424e7 Jack Wang      2020-05-11  1871  	return 0;
9cb837480424e7 Jack Wang      2020-05-11  1872  
9cb837480424e7 Jack Wang      2020-05-11  1873  reject_w_err:
9cb837480424e7 Jack Wang      2020-05-11  1874  	return rtrs_rdma_do_reject(cm_id, err);
9cb837480424e7 Jack Wang      2020-05-11  1875  
9cb837480424e7 Jack Wang      2020-05-11  1876  reject_w_econnreset:
9cb837480424e7 Jack Wang      2020-05-11  1877  	return rtrs_rdma_do_reject(cm_id, -ECONNRESET);
9cb837480424e7 Jack Wang      2020-05-11  1878  
9cb837480424e7 Jack Wang      2020-05-11  1879  close_and_return_err:
9cb837480424e7 Jack Wang      2020-05-11  1880  	mutex_unlock(&srv->paths_mutex);
99f0c380797335 Jack Wang      2020-12-17  1881  	close_sess(sess);
9cb837480424e7 Jack Wang      2020-05-11  1882  
9cb837480424e7 Jack Wang      2020-05-11  1883  	return err;
9cb837480424e7 Jack Wang      2020-05-11  1884  }
9cb837480424e7 Jack Wang      2020-05-11  1885  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 31954 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-02-16 18:58 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-15 12:44 [rdma-rdma:wip/jgg-for-next 198/203] drivers/infiniband/ulp/rtrs/rtrs-srv.c:1805 rtrs_rdma_connect() warn: passing zero to 'PTR_ERR' Dan Carpenter
2021-02-15 12:44 ` Dan Carpenter
     [not found] <CAMGffEmbY1FMOHQsKeUK-f=JT6QFGE44Mmu=OFttEJVanbeXvg@mail.gmail.com>
2021-02-15 14:16 ` Dan Carpenter
2021-02-15 14:16   ` Dan Carpenter
     [not found] <CAMGffEm3ZbPxXzERHLogitw9oz_UK88KE+SZSCy4x1PdvquDZw@mail.gmail.com>
2021-02-15 13:57 ` Dan Carpenter
2021-02-15 13:57   ` Dan Carpenter
2021-02-16 18:58   ` Jason Gunthorpe
  -- strict thread matches above, loose matches on Subject: below --
2021-02-12 21:28 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.