tree:
https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git queue-5.7
head: 9f9f56bf7a9f454b4f113a44c5bbf0120a1ad65f
commit: 2a6f3591c6e21536ed4edc28b1b9575a3c4ca4a2 [206/316] RDMA/qedr: Add EDPM mode type
for user-fw compatibility
config: s390-allyesconfig (attached as .config)
compiler: s390-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 2a6f3591c6e21536ed4edc28b1b9575a3c4ca4a2
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
include/net/sch_generic.h:869:2: note: in expansion of macro 'this_cpu_inc'
869 | this_cpu_inc(sch->cpu_qstats->qlen);
| ^~~~~~~~~~~~
include/net/sch_generic.h: In function 'qdisc_qstats_cpu_qlen_dec':
arch/s390/include/asm/percpu.h:74:21: warning: comparison is always true due to limited
range of data type [-Wtype-limits]
74 | ((szcast)val__ > -129) && ((szcast)val__ < 128)) { \
| ^
arch/s390/include/asm/percpu.h:91:34: note: in expansion of macro
'arch_this_cpu_add'
91 | #define this_cpu_add_8(pcp, val) arch_this_cpu_add(pcp, val, "laag",
"agsi", long)
| ^~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:380:11: note: in expansion of macro
'this_cpu_add_8'
380 | case 8: stem##8(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:509:33: note: in expansion of macro
'__pcpu_size_call'
509 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:519:33: note: in expansion of macro 'this_cpu_add'
519 | #define this_cpu_sub(pcp, val) this_cpu_add(pcp, -(typeof(pcp))(val))
| ^~~~~~~~~~~~
include/linux/percpu-defs.h:521:28: note: in expansion of macro 'this_cpu_sub'
521 | #define this_cpu_dec(pcp) this_cpu_sub(pcp, 1)
| ^~~~~~~~~~~~
include/net/sch_generic.h:874:2: note: in expansion of macro 'this_cpu_dec'
874 | this_cpu_dec(sch->cpu_qstats->qlen);
| ^~~~~~~~~~~~
include/net/sch_generic.h: In function 'qdisc_qstats_cpu_requeues_inc':
arch/s390/include/asm/percpu.h:74:21: warning: comparison is always true due to limited
range of data type [-Wtype-limits]
74 | ((szcast)val__ > -129) && ((szcast)val__ < 128)) { \
| ^
arch/s390/include/asm/percpu.h:91:34: note: in expansion of macro
'arch_this_cpu_add'
91 | #define this_cpu_add_8(pcp, val) arch_this_cpu_add(pcp, val, "laag",
"agsi", long)
| ^~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:380:11: note: in expansion of macro
'this_cpu_add_8'
380 | case 8: stem##8(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:509:33: note: in expansion of macro
'__pcpu_size_call'
509 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:520:28: note: in expansion of macro 'this_cpu_add'
520 | #define this_cpu_inc(pcp) this_cpu_add(pcp, 1)
| ^~~~~~~~~~~~
include/net/sch_generic.h:879:2: note: in expansion of macro 'this_cpu_inc'
879 | this_cpu_inc(sch->cpu_qstats->requeues);
| ^~~~~~~~~~~~
include/net/sch_generic.h: In function 'qdisc_qstats_cpu_drop':
arch/s390/include/asm/percpu.h:74:21: warning: comparison is always true due to limited
range of data type [-Wtype-limits]
74 | ((szcast)val__ > -129) && ((szcast)val__ < 128)) { \
| ^
arch/s390/include/asm/percpu.h:91:34: note: in expansion of macro
'arch_this_cpu_add'
91 | #define this_cpu_add_8(pcp, val) arch_this_cpu_add(pcp, val, "laag",
"agsi", long)
| ^~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:380:11: note: in expansion of macro
'this_cpu_add_8'
380 | case 8: stem##8(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:509:33: note: in expansion of macro
'__pcpu_size_call'
509 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:520:28: note: in expansion of macro 'this_cpu_add'
520 | #define this_cpu_inc(pcp) this_cpu_add(pcp, 1)
| ^~~~~~~~~~~~
include/net/sch_generic.h:904:2: note: in expansion of macro 'this_cpu_inc'
904 | this_cpu_inc(sch->cpu_qstats->drops);
| ^~~~~~~~~~~~
include/net/sch_generic.h: In function 'qdisc_update_stats_at_enqueue':
arch/s390/include/asm/percpu.h:74:21: warning: comparison is always true due to limited
range of data type [-Wtype-limits]
74 | ((szcast)val__ > -129) && ((szcast)val__ < 128)) { \
| ^
arch/s390/include/asm/percpu.h:91:34: note: in expansion of macro
'arch_this_cpu_add'
91 | #define this_cpu_add_8(pcp, val) arch_this_cpu_add(pcp, val, "laag",
"agsi", long)
| ^~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:380:11: note: in expansion of macro
'this_cpu_add_8'
380 | case 8: stem##8(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:509:33: note: in expansion of macro
'__pcpu_size_call'
509 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/net/sch_generic.h:1103:3: note: in expansion of macro 'this_cpu_add'
1103 | this_cpu_add(sch->cpu_qstats->backlog, pkt_len);
| ^~~~~~~~~~~~
include/net/sch_generic.h: In function 'mini_qdisc_qstats_cpu_drop':
arch/s390/include/asm/percpu.h:74:21: warning: comparison is always true due to limited
range of data type [-Wtype-limits]
74 | ((szcast)val__ > -129) && ((szcast)val__ < 128)) { \
| ^
arch/s390/include/asm/percpu.h:91:34: note: in expansion of macro
'arch_this_cpu_add'
91 | #define this_cpu_add_8(pcp, val) arch_this_cpu_add(pcp, val, "laag",
"agsi", long)
| ^~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:380:11: note: in expansion of macro
'this_cpu_add_8'
380 | case 8: stem##8(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:509:33: note: in expansion of macro
'__pcpu_size_call'
509 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:520:28: note: in expansion of macro 'this_cpu_add'
520 | #define this_cpu_inc(pcp) this_cpu_add(pcp, 1)
| ^~~~~~~~~~~~
include/net/sch_generic.h:1272:2: note: in expansion of macro 'this_cpu_inc'
1272 | this_cpu_inc(miniq->cpu_qstats->drops);
| ^~~~~~~~~~~~
In file included from drivers/infiniband/hw/qedr/verbs.c:49:
drivers/infiniband/hw/qedr/verbs.c: In function 'qedr_create_user_qp':
> drivers/infiniband/hw/qedr/verbs.c:1796:22: error: 'struct
qed_rdma_create_qp_in_params' has no member named 'flags'
1796 |
SET_FIELD(in_params.flags, QED_ROCE_EDPM_MODE, ctx->edpm_mode);
| ^
include/linux/qed/qed_if.h:1174:4: note: in definition of macro 'SET_FIELD'
1174 | (value) &= ~(name ## _MASK << name ## _SHIFT); \
| ^~~~~
> drivers/infiniband/hw/qedr/verbs.c:1796:30: error:
'QED_ROCE_EDPM_MODE_MASK' undeclared (first use in this function)
1796 |
SET_FIELD(in_params.flags, QED_ROCE_EDPM_MODE, ctx->edpm_mode);
| ^~~~~~~~~~~~~~~~~~
include/linux/qed/qed_if.h:1174:16: note: in definition of macro 'SET_FIELD'
1174 | (value) &= ~(name ## _MASK << name ## _SHIFT); \
| ^~~~
drivers/infiniband/hw/qedr/verbs.c:1796:30: note: each undeclared identifier is
reported only once for each function it appears in
1796 | SET_FIELD(in_params.flags, QED_ROCE_EDPM_MODE, ctx->edpm_mode);
| ^~~~~~~~~~~~~~~~~~
include/linux/qed/qed_if.h:1174:16: note: in definition of macro 'SET_FIELD'
1174 | (value) &= ~(name ## _MASK << name ## _SHIFT); \
| ^~~~
> drivers/infiniband/hw/qedr/verbs.c:1796:30: error:
'QED_ROCE_EDPM_MODE_SHIFT' undeclared (first use in this function)
1796
| SET_FIELD(in_params.flags, QED_ROCE_EDPM_MODE, ctx->edpm_mode);
| ^~~~~~~~~~~~~~~~~~
include/linux/qed/qed_if.h:1174:33: note: in definition of macro 'SET_FIELD'
1174 | (value) &= ~(name ## _MASK << name ## _SHIFT); \
| ^~~~
> drivers/infiniband/hw/qedr/verbs.c:1796:22: error: 'struct
qed_rdma_create_qp_in_params' has no member named 'flags'
1796 |
SET_FIELD(in_params.flags, QED_ROCE_EDPM_MODE, ctx->edpm_mode);
| ^
include/linux/qed/qed_if.h:1175:4: note: in definition of macro 'SET_FIELD'
1175 | (value) |= (((u64)flag) << (name ## _SHIFT)); \
| ^~~~~
vim +1796 drivers/infiniband/hw/qedr/verbs.c
1746
1747 static int qedr_create_user_qp(struct qedr_dev *dev,
1748 struct qedr_qp *qp,
1749 struct ib_pd *ibpd,
1750 struct ib_udata *udata,
1751 struct ib_qp_init_attr *attrs)
1752 {
1753 struct qed_rdma_create_qp_in_params in_params;
1754 struct qed_rdma_create_qp_out_params out_params;
1755 struct qedr_pd *pd = get_qedr_pd(ibpd);
1756 struct qedr_create_qp_uresp uresp;
1757 struct qedr_ucontext *ctx = pd ? pd->uctx : NULL;
1758 struct qedr_create_qp_ureq ureq;
1759 int alloc_and_init = rdma_protocol_roce(&dev->ibdev, 1);
1760 int rc = -EINVAL;
1761
1762 qp->create_type = QEDR_QP_CREATE_USER;
1763 memset(&ureq, 0, sizeof(ureq));
1764 rc = ib_copy_from_udata(&ureq, udata, min(sizeof(ureq), udata->inlen));
1765 if (rc) {
1766 DP_ERR(dev, "Problem copying data from user space\n");
1767 return rc;
1768 }
1769
1770 /* SQ - read access only (0) */
1771 rc = qedr_init_user_queue(udata, dev, &qp->usq, ureq.sq_addr,
1772 ureq.sq_len, true, 0, alloc_and_init);
1773 if (rc)
1774 return rc;
1775
1776 if (!qp->srq) {
1777 /* RQ - read access only (0) */
1778 rc = qedr_init_user_queue(udata, dev, &qp->urq, ureq.rq_addr,
1779 ureq.rq_len, true, 0, alloc_and_init);
1780 if (rc)
1781 return rc;
1782 }
1783
1784 memset(&in_params, 0, sizeof(in_params));
1785 qedr_init_common_qp_in_params(dev, pd, qp, attrs, false, &in_params);
1786 in_params.qp_handle_lo = ureq.qp_handle_lo;
1787 in_params.qp_handle_hi = ureq.qp_handle_hi;
1788 in_params.sq_num_pages = qp->usq.pbl_info.num_pbes;
1789 in_params.sq_pbl_ptr = qp->usq.pbl_tbl->pa;
1790 if (!qp->srq) {
1791 in_params.rq_num_pages = qp->urq.pbl_info.num_pbes;
1792 in_params.rq_pbl_ptr = qp->urq.pbl_tbl->pa;
1793 }
1794
1795 if (ctx)
1796 SET_FIELD(in_params.flags, QED_ROCE_EDPM_MODE,
ctx->edpm_mode);
1797
1798 qp->qed_qp = dev->ops->rdma_create_qp(dev->rdma_ctx,
1799 &in_params, &out_params);
1800
1801 if (!qp->qed_qp) {
1802 rc = -ENOMEM;
1803 goto err1;
1804 }
1805
1806 if (rdma_protocol_iwarp(&dev->ibdev, 1))
1807 qedr_iwarp_populate_user_qp(dev, qp, &out_params);
1808
1809 qp->qp_id = out_params.qp_id;
1810 qp->icid = out_params.icid;
1811
1812 rc = qedr_copy_qp_uresp(dev, qp, udata, &uresp);
1813 if (rc)
1814 goto err;
1815
1816 /* db offset was calculated in copy_qp_uresp, now set in the user q */
1817 ctx = pd->uctx;
1818 qp->usq.db_addr = ctx->dpi_addr + uresp.sq_db_offset;
1819 qp->urq.db_addr = ctx->dpi_addr + uresp.rq_db_offset;
1820
1821 if (rdma_protocol_iwarp(&dev->ibdev, 1)) {
1822 qp->urq.db_rec_db2_addr = ctx->dpi_addr + uresp.rq_db2_offset;
1823
1824 /* calculate the db_rec_db2 data since it is constant so no
1825 * need to reflect from user
1826 */
1827 qp->urq.db_rec_db2_data.data.icid = cpu_to_le16(qp->icid);
1828 qp->urq.db_rec_db2_data.data.value =
1829 cpu_to_le16(DQ_TCM_IWARP_POST_RQ_CF_CMD);
1830 }
1831
1832 rc = qedr_db_recovery_add(dev, qp->usq.db_addr,
1833 &qp->usq.db_rec_data->db_data,
1834 DB_REC_WIDTH_32B,
1835 DB_REC_USER);
1836 if (rc)
1837 goto err;
1838
1839 rc = qedr_db_recovery_add(dev, qp->urq.db_addr,
1840 &qp->urq.db_rec_data->db_data,
1841 DB_REC_WIDTH_32B,
1842 DB_REC_USER);
1843 if (rc)
1844 goto err;
1845
1846 if (rdma_protocol_iwarp(&dev->ibdev, 1)) {
1847 rc = qedr_db_recovery_add(dev, qp->urq.db_rec_db2_addr,
1848 &qp->urq.db_rec_db2_data,
1849 DB_REC_WIDTH_32B,
1850 DB_REC_USER);
1851 if (rc)
1852 goto err;
1853 }
1854 qedr_qp_user_print(dev, qp);
1855
1856 return rc;
1857 err:
1858 rc = dev->ops->rdma_destroy_qp(dev->rdma_ctx, qp->qed_qp);
1859 if (rc)
1860 DP_ERR(dev, "create qp: fatal fault. rc=%d", rc);
1861
1862 err1:
1863 qedr_cleanup_user(dev, ctx, qp);
1864 return rc;
1865 }
1866
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org