Hi Raju, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on rdma/for-next] [also build test WARNING on v4.17-rc5 next-20180517] [cannot apply to linus/master] [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/Raju-Rangoju/rdma-cxgb4-Add-SRQ-support-for-Chelsio-adapters/20180518-075228 base: https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git for-next reproduce: # apt-get install sparse make ARCH=x86_64 allmodconfig make C=1 CF=-D__CHECK_ENDIAN__ sparse warnings: (new ones prefixed by >>) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/cm.c:1752:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/cm.c:1752:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/cm.c:1756:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/cm.c:1756:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) >> drivers/infiniband/hw/cxgb4/cm.c:1863:18: sparse: cast to restricted __be32 >> drivers/infiniband/hw/cxgb4/cm.c:1863:18: sparse: cast to restricted __be32 >> drivers/infiniband/hw/cxgb4/cm.c:1863:18: sparse: cast to restricted __be32 >> drivers/infiniband/hw/cxgb4/cm.c:1863:18: sparse: cast to restricted __be32 >> drivers/infiniband/hw/cxgb4/cm.c:1863:18: sparse: cast to restricted __be32 >> drivers/infiniband/hw/cxgb4/cm.c:1863:18: sparse: cast to restricted __be32 drivers/infiniband/hw/cxgb4/cm.c:1864:18: sparse: cast to restricted __be32 drivers/infiniband/hw/cxgb4/cm.c:1864:18: sparse: cast to restricted __be32 drivers/infiniband/hw/cxgb4/cm.c:1864:18: sparse: cast to restricted __be32 drivers/infiniband/hw/cxgb4/cm.c:1864:18: sparse: cast to restricted __be32 drivers/infiniband/hw/cxgb4/cm.c:1864:18: sparse: cast to restricted __be32 drivers/infiniband/hw/cxgb4/cm.c:1864:18: sparse: cast to restricted __be32 drivers/infiniband/hw/cxgb4/cm.c:2764:18: sparse: cast to restricted __be32 drivers/infiniband/hw/cxgb4/cm.c:2764:18: sparse: cast to restricted __be32 drivers/infiniband/hw/cxgb4/cm.c:2764:18: sparse: cast to restricted __be32 drivers/infiniband/hw/cxgb4/cm.c:2764:18: sparse: cast to restricted __be32 drivers/infiniband/hw/cxgb4/cm.c:2764:18: sparse: cast to restricted __be32 drivers/infiniband/hw/cxgb4/cm.c:2764:18: sparse: cast to restricted __be32 drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) -- drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:248:35: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/iw_cxgb4.h:422:16: sparse: expression using sizeof(void) >> drivers/infiniband/hw/cxgb4/qp.c:2264:34: sparse: Using plain integer as NULL pointer drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: expression using sizeof(void) >> drivers/infiniband/hw/cxgb4/qp.c:2538:18: sparse: too many warnings vim +1863 drivers/infiniband/hw/cxgb4/cm.c 1651 1652 /* 1653 * process_mpa_request - process streaming mode MPA request 1654 * 1655 * Returns: 1656 * 1657 * 0 upon success indicating a connect request was delivered to the ULP 1658 * or the mpa request is incomplete but valid so far. 1659 * 1660 * 1 if a failure requires the caller to close the connection. 1661 * 1662 * 2 if a failure requires the caller to abort the connection. 1663 */ 1664 static int process_mpa_request(struct c4iw_ep *ep, struct sk_buff *skb) 1665 { 1666 struct mpa_message *mpa; 1667 struct mpa_v2_conn_params *mpa_v2_params; 1668 u16 plen; 1669 1670 pr_debug("ep %p tid %u\n", ep, ep->hwtid); 1671 1672 /* 1673 * If we get more than the supported amount of private data 1674 * then we must fail this connection. 1675 */ 1676 if (ep->mpa_pkt_len + skb->len > sizeof(ep->mpa_pkt)) 1677 goto err_stop_timer; 1678 1679 pr_debug("enter (%s line %u)\n", __FILE__, __LINE__); 1680 1681 /* 1682 * Copy the new data into our accumulation buffer. 1683 */ 1684 skb_copy_from_linear_data(skb, &(ep->mpa_pkt[ep->mpa_pkt_len]), 1685 skb->len); 1686 ep->mpa_pkt_len += skb->len; 1687 1688 /* 1689 * If we don't even have the mpa message, then bail. 1690 * We'll continue process when more data arrives. 1691 */ 1692 if (ep->mpa_pkt_len < sizeof(*mpa)) 1693 return 0; 1694 1695 pr_debug("enter (%s line %u)\n", __FILE__, __LINE__); 1696 mpa = (struct mpa_message *) ep->mpa_pkt; 1697 1698 /* 1699 * Validate MPA Header. 1700 */ 1701 if (mpa->revision > mpa_rev) { 1702 pr_err("%s MPA version mismatch. Local = %d, Received = %d\n", 1703 __func__, mpa_rev, mpa->revision); 1704 goto err_stop_timer; 1705 } 1706 1707 if (memcmp(mpa->key, MPA_KEY_REQ, sizeof(mpa->key))) 1708 goto err_stop_timer; 1709 1710 plen = ntohs(mpa->private_data_size); 1711 1712 /* 1713 * Fail if there's too much private data. 1714 */ 1715 if (plen > MPA_MAX_PRIVATE_DATA) 1716 goto err_stop_timer; 1717 1718 /* 1719 * If plen does not account for pkt size 1720 */ 1721 if (ep->mpa_pkt_len > (sizeof(*mpa) + plen)) 1722 goto err_stop_timer; 1723 ep->plen = (u8) plen; 1724 1725 /* 1726 * If we don't have all the pdata yet, then bail. 1727 */ 1728 if (ep->mpa_pkt_len < (sizeof(*mpa) + plen)) 1729 return 0; 1730 1731 /* 1732 * If we get here we have accumulated the entire mpa 1733 * start reply message including private data. 1734 */ 1735 ep->mpa_attr.initiator = 0; 1736 ep->mpa_attr.crc_enabled = (mpa->flags & MPA_CRC) | crc_enabled ? 1 : 0; 1737 ep->mpa_attr.recv_marker_enabled = markers_enabled; 1738 ep->mpa_attr.xmit_marker_enabled = mpa->flags & MPA_MARKERS ? 1 : 0; 1739 ep->mpa_attr.version = mpa->revision; 1740 if (mpa->revision == 1) 1741 ep->tried_with_mpa_v1 = 1; 1742 ep->mpa_attr.p2p_type = FW_RI_INIT_P2PTYPE_DISABLED; 1743 1744 if (mpa->revision == 2) { 1745 ep->mpa_attr.enhanced_rdma_conn = 1746 mpa->flags & MPA_ENHANCED_RDMA_CONN ? 1 : 0; 1747 if (ep->mpa_attr.enhanced_rdma_conn) { 1748 mpa_v2_params = (struct mpa_v2_conn_params *) 1749 (ep->mpa_pkt + sizeof(*mpa)); 1750 ep->ird = ntohs(mpa_v2_params->ird) & 1751 MPA_V2_IRD_ORD_MASK; 1752 ep->ird = min_t(u32, ep->ird, 1753 cur_max_read_depth(ep->com.dev)); 1754 ep->ord = ntohs(mpa_v2_params->ord) & 1755 MPA_V2_IRD_ORD_MASK; > 1756 ep->ord = min_t(u32, ep->ord, 1757 cur_max_read_depth(ep->com.dev)); 1758 pr_debug("initiator ird %u ord %u\n", 1759 ep->ird, ep->ord); 1760 if (ntohs(mpa_v2_params->ird) & MPA_V2_PEER2PEER_MODEL) 1761 if (peer2peer) { 1762 if (ntohs(mpa_v2_params->ord) & 1763 MPA_V2_RDMA_WRITE_RTR) 1764 ep->mpa_attr.p2p_type = 1765 FW_RI_INIT_P2PTYPE_RDMA_WRITE; 1766 else if (ntohs(mpa_v2_params->ord) & 1767 MPA_V2_RDMA_READ_RTR) 1768 ep->mpa_attr.p2p_type = 1769 FW_RI_INIT_P2PTYPE_READ_REQ; 1770 } 1771 } 1772 } else if (mpa->revision == 1) 1773 if (peer2peer) 1774 ep->mpa_attr.p2p_type = p2p_type; 1775 1776 pr_debug("crc_enabled=%d, recv_marker_enabled=%d, xmit_marker_enabled=%d, version=%d p2p_type=%d\n", 1777 ep->mpa_attr.crc_enabled, ep->mpa_attr.recv_marker_enabled, 1778 ep->mpa_attr.xmit_marker_enabled, ep->mpa_attr.version, 1779 ep->mpa_attr.p2p_type); 1780 1781 __state_set(&ep->com, MPA_REQ_RCVD); 1782 1783 /* drive upcall */ 1784 mutex_lock_nested(&ep->parent_ep->com.mutex, SINGLE_DEPTH_NESTING); 1785 if (ep->parent_ep->com.state != DEAD) { 1786 if (connect_request_upcall(ep)) 1787 goto err_unlock_parent; 1788 } else { 1789 goto err_unlock_parent; 1790 } 1791 mutex_unlock(&ep->parent_ep->com.mutex); 1792 return 0; 1793 1794 err_unlock_parent: 1795 mutex_unlock(&ep->parent_ep->com.mutex); 1796 goto err_out; 1797 err_stop_timer: 1798 (void)stop_ep_timer(ep); 1799 err_out: 1800 return 2; 1801 } 1802 1803 static int rx_data(struct c4iw_dev *dev, struct sk_buff *skb) 1804 { 1805 struct c4iw_ep *ep; 1806 struct cpl_rx_data *hdr = cplhdr(skb); 1807 unsigned int dlen = ntohs(hdr->len); 1808 unsigned int tid = GET_TID(hdr); 1809 __u8 status = hdr->status; 1810 int disconnect = 0; 1811 1812 ep = get_ep_from_tid(dev, tid); 1813 if (!ep) 1814 return 0; 1815 pr_debug("ep %p tid %u dlen %u\n", ep, ep->hwtid, dlen); 1816 skb_pull(skb, sizeof(*hdr)); 1817 skb_trim(skb, dlen); 1818 mutex_lock(&ep->com.mutex); 1819 1820 switch (ep->com.state) { 1821 case MPA_REQ_SENT: 1822 update_rx_credits(ep, dlen); 1823 ep->rcv_seq += dlen; 1824 disconnect = process_mpa_reply(ep, skb); 1825 break; 1826 case MPA_REQ_WAIT: 1827 update_rx_credits(ep, dlen); 1828 ep->rcv_seq += dlen; 1829 disconnect = process_mpa_request(ep, skb); 1830 break; 1831 case FPDU_MODE: { 1832 struct c4iw_qp_attributes attrs; 1833 1834 update_rx_credits(ep, dlen); 1835 if (status) 1836 pr_err("%s Unexpected streaming data." \ 1837 " qpid %u ep %p state %d tid %u status %d\n", 1838 __func__, ep->com.qp->wq.sq.qid, ep, 1839 ep->com.state, ep->hwtid, status); 1840 attrs.next_state = C4IW_QP_STATE_TERMINATE; 1841 c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp, 1842 C4IW_QP_ATTR_NEXT_STATE, &attrs, 1); 1843 disconnect = 1; 1844 break; 1845 } 1846 default: 1847 break; 1848 } 1849 mutex_unlock(&ep->com.mutex); 1850 if (disconnect) 1851 c4iw_ep_disconnect(ep, disconnect == 2, GFP_KERNEL); 1852 c4iw_put_ep(&ep->com); 1853 return 0; 1854 } 1855 1856 static void complete_cached_srq_buffers(struct c4iw_ep *ep, u32 srqidx_status) 1857 { 1858 enum chip_type adapter_type; 1859 u32 srqidx; 1860 u8 status; 1861 1862 adapter_type = ep->com.dev->rdev.lldi.adapter_type; > 1863 status = ABORT_RSS_STATUS_G(be32_to_cpu(srqidx_status)); 1864 srqidx = ABORT_RSS_SRQIDX_G(be32_to_cpu(srqidx_status)); 1865 1866 /* 1867 * If this TCB had a srq buffer cached, then we must complete 1868 * it. For user mode, that means saving the srqidx in the 1869 * user/kernel status page for this qp. For kernel mode, just 1870 * synthesize the CQE now. 1871 */ 1872 if (CHELSIO_CHIP_VERSION(adapter_type) > CHELSIO_T5 && srqidx) { 1873 if (ep->com.qp->ibqp.uobject) 1874 t4_set_wq_in_error(&ep->com.qp->wq, srqidx); 1875 else 1876 c4iw_flush_srqidx(ep->com.qp, srqidx); 1877 } 1878 } 1879 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html