From owner-svn-src-projects@freebsd.org Mon Feb 19 12:37:08 2018 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F04A2F22A5C for ; Mon, 19 Feb 2018 12:37:07 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9E12F72D8B; Mon, 19 Feb 2018 12:37:07 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 98ED61A9CA; Mon, 19 Feb 2018 12:37:07 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w1JCb7dK063420; Mon, 19 Feb 2018 12:37:07 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w1JCb7G6063417; Mon, 19 Feb 2018 12:37:07 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201802191237.w1JCb7G6063417@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 19 Feb 2018 12:37:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r329571 - projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp X-SVN-Group: projects X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp X-SVN-Commit-Revision: 329571 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Feb 2018 12:37:08 -0000 Author: hselasky Date: Mon Feb 19 12:37:07 2018 New Revision: 329571 URL: https://svnweb.freebsd.org/changeset/base/329571 Log: MFC r303512: sdp: Use malloc(9) instead of the Linux compat layer. SDP transmit and receive rings are always created in a sleepable context, so we can use M_WAITOK and remove error checks. Sponsored by: EMC / Isilon Storage Division Modified: projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp/sdp.h projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_tx.c Directory Properties: projects/bsd_rdma_4_9_stable_11/ (props changed) Modified: projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp/sdp.h ============================================================================== --- projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp/sdp.h Mon Feb 19 12:34:38 2018 (r329570) +++ projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp/sdp.h Mon Feb 19 12:37:07 2018 (r329571) @@ -453,6 +453,8 @@ struct sdp_sock { #define SDP_RLOCK_ASSERT(ssk) rw_assert(&(ssk)->lock, RA_RLOCKED) #define SDP_LOCK_ASSERT(ssk) rw_assert(&(ssk)->lock, RA_LOCKED) +MALLOC_DECLARE(M_SDP); + static inline void tx_sa_reset(struct tx_srcavail_state *tx_sa) { memset((void *)&tx_sa->busy, 0, Modified: projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c ============================================================================== --- projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c Mon Feb 19 12:34:38 2018 (r329570) +++ projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c Mon Feb 19 12:37:07 2018 (r329571) @@ -64,6 +64,10 @@ #include __FBSDID("$FreeBSD$"); +#include +#include +#include + #include "sdp.h" #include @@ -86,7 +90,7 @@ RW_SYSINIT(sdplockinit, &sdp_lock, "SDP lock"); #define SDP_LIST_RLOCK_ASSERT() rw_assert(&sdp_lock, RW_RLOCKED) #define SDP_LIST_LOCK_ASSERT() rw_assert(&sdp_lock, RW_LOCKED) -static MALLOC_DEFINE(M_SDP, "sdp", "Socket Direct Protocol"); +MALLOC_DEFINE(M_SDP, "sdp", "Sockets Direct Protocol"); static void sdp_stop_keepalive_timer(struct socket *so); Modified: projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_tx.c ============================================================================== --- projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_tx.c Mon Feb 19 12:34:38 2018 (r329570) +++ projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_tx.c Mon Feb 19 12:37:07 2018 (r329571) @@ -432,19 +432,11 @@ sdp_tx_ring_create(struct sdp_sock *ssk, struct ib_dev atomic_set(&ssk->tx_ring.head, 1); atomic_set(&ssk->tx_ring.tail, 1); - ssk->tx_ring.buffer = kzalloc( - sizeof *ssk->tx_ring.buffer * SDP_TX_SIZE, GFP_KERNEL); - if (!ssk->tx_ring.buffer) { - rc = -ENOMEM; - sdp_warn(ssk->socket, "Can't allocate TX Ring size %zd.\n", - sizeof(*ssk->tx_ring.buffer) * SDP_TX_SIZE); + ssk->tx_ring.buffer = malloc(sizeof(*ssk->tx_ring.buffer) * SDP_TX_SIZE, + M_SDP, M_WAITOK); - goto out; - } - tx_cq = ib_create_cq(device, sdp_tx_irq, sdp_tx_cq_event_handler, ssk, &tx_cq_attr); - if (IS_ERR(tx_cq)) { rc = PTR_ERR(tx_cq); sdp_warn(ssk->socket, "Unable to allocate TX CQ: %d.\n", rc); @@ -457,9 +449,8 @@ sdp_tx_ring_create(struct sdp_sock *ssk, struct ib_dev return 0; err_cq: - kfree(ssk->tx_ring.buffer); + free(ssk->tx_ring.buffer, M_SDP); ssk->tx_ring.buffer = NULL; -out: return rc; } @@ -477,8 +468,7 @@ sdp_tx_ring_destroy(struct sdp_sock *ssk) if (ssk->tx_ring.buffer) { sdp_tx_ring_purge(ssk); - - kfree(ssk->tx_ring.buffer); + free(ssk->tx_ring.buffer, M_SDP); ssk->tx_ring.buffer = NULL; }