summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortrasz <trasz@FreeBSD.org>2014-03-27 11:10:13 +0000
committertrasz <trasz@FreeBSD.org>2014-03-27 11:10:13 +0000
commit427a2d21c4d21db6b006e9bb60f5259c47517553 (patch)
tree70024dc4c015c82656cef151d295da19ea664ab8
parentb46b2184f035b7399cc4585988f4d1d73a7d91b6 (diff)
downloadFreeBSD-src-427a2d21c4d21db6b006e9bb60f5259c47517553.zip
FreeBSD-src-427a2d21c4d21db6b006e9bb60f5259c47517553.tar.gz
Remove ctl_mem_pool.{c,h}.
Sponsored by: The FreeBSD Foundation
-rw-r--r--sys/cam/ctl/README.ctl.txt8
-rw-r--r--sys/cam/ctl/ctl_frontend_cam_sim.c1
-rw-r--r--sys/cam/ctl/ctl_frontend_internal.c165
-rw-r--r--sys/cam/ctl/ctl_mem_pool.c192
-rw-r--r--sys/cam/ctl/ctl_mem_pool.h83
-rw-r--r--sys/conf/files1
-rw-r--r--sys/modules/ctl/Makefile1
7 files changed, 19 insertions, 432 deletions
diff --git a/sys/cam/ctl/README.ctl.txt b/sys/cam/ctl/README.ctl.txt
index 1325cc8..a6de201 100644
--- a/sys/cam/ctl/README.ctl.txt
+++ b/sys/cam/ctl/README.ctl.txt
@@ -394,14 +394,6 @@ ctl_ioctl.h:
This defines all ioctls available through the CTL character device, and
the data structures needed for those ioctls.
-ctl_mem_pool.c
-ctl_mem_pool.h:
---------------
-
-Generic memory pool implementation. This is currently only used by the
-internal frontend. The internal frontend can probably be rewritten to use
-UMA zones and this can be removed.
-
ctl_private.h:
-------------
diff --git a/sys/cam/ctl/ctl_frontend_cam_sim.c b/sys/cam/ctl/ctl_frontend_cam_sim.c
index f381a6b..37366e5 100644
--- a/sys/cam/ctl/ctl_frontend_cam_sim.c
+++ b/sys/cam/ctl/ctl_frontend_cam_sim.c
@@ -65,7 +65,6 @@ __FBSDID("$FreeBSD$");
#include <cam/ctl/ctl.h>
#include <cam/ctl/ctl_frontend.h>
#include <cam/ctl/ctl_frontend_internal.h>
-#include <cam/ctl/ctl_mem_pool.h>
#include <cam/ctl/ctl_debug.h>
#define io_ptr spriv_ptr1
diff --git a/sys/cam/ctl/ctl_frontend_internal.c b/sys/cam/ctl/ctl_frontend_internal.c
index 7b42b53..85eec74 100644
--- a/sys/cam/ctl/ctl_frontend_internal.c
+++ b/sys/cam/ctl/ctl_frontend_internal.c
@@ -62,6 +62,7 @@ __FBSDID("$FreeBSD$");
#include <sys/queue.h>
#include <sys/sbuf.h>
#include <sys/sysctl.h>
+#include <vm/uma.h>
#include <cam/scsi/scsi_all.h>
#include <cam/scsi/scsi_da.h>
#include <cam/ctl/ctl_io.h>
@@ -73,7 +74,6 @@ __FBSDID("$FreeBSD$");
#include <cam/ctl/ctl_util.h>
#include <cam/ctl/ctl_ha.h>
#include <cam/ctl/ctl_private.h>
-#include <cam/ctl/ctl_mem_pool.h>
#include <cam/ctl/ctl_debug.h>
#include <cam/ctl/ctl_scsi_all.h>
#include <cam/ctl/ctl_error.h>
@@ -118,7 +118,6 @@ struct cfi_metatask {
cfi_tasktype tasktype;
cfi_mt_status status;
union cfi_taskinfo taskinfo;
- struct ctl_mem_element *element;
void *cfi_context;
STAILQ_ENTRY(cfi_metatask) links;
};
@@ -153,7 +152,6 @@ struct cfi_lun {
int blocksize_powerof2;
uint32_t cur_tag_num;
cfi_lun_state state;
- struct ctl_mem_element *element;
struct cfi_softc *softc;
STAILQ_HEAD(, cfi_lun_io) io_list;
STAILQ_ENTRY(cfi_lun) links;
@@ -181,12 +179,13 @@ struct cfi_softc {
cfi_flags flags;
STAILQ_HEAD(, cfi_lun) lun_list;
STAILQ_HEAD(, cfi_metatask) metatask_list;
- struct ctl_mem_pool lun_pool;
- struct ctl_mem_pool metatask_pool;
};
MALLOC_DEFINE(M_CTL_CFI, "ctlcfi", "CTL CFI");
+static uma_zone_t cfi_lun_zone;
+static uma_zone_t cfi_metatask_zone;
+
static struct cfi_softc fetd_internal_softc;
int cfi_init(void);
@@ -275,48 +274,15 @@ cfi_init(void)
if (ctl_frontend_register(fe, (softc->flags & CTL_FLAG_MASTER_SHELF)) != 0)
{
printf("%s: internal frontend registration failed\n", __func__);
- retval = 1;
- goto bailout;
- }
-
- if (ctl_init_mem_pool(&softc->lun_pool,
- sizeof(struct cfi_lun),
- CTL_MEM_POOL_PERM_GROW, /*grow_inc*/ 3,
- /* initial_pool_size */ CTL_MAX_LUNS) != 0) {
- printf("%s: can't initialize LUN memory pool\n", __func__);
- retval = 1;
- goto bailout_error;
+ return (0);
}
- if (ctl_init_mem_pool(&softc->metatask_pool,
- sizeof(struct cfi_metatask),
- CTL_MEM_POOL_PERM_GROW, /*grow_inc*/ 3,
- /*initial_pool_size*/ 10) != 0) {
- printf("%s: can't initialize metatask memory pool\n", __func__);
- retval = 2;
- goto bailout_error;
- }
-bailout:
+ cfi_lun_zone = uma_zcreate("cfi_lun", sizeof(struct cfi_lun),
+ NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
+ cfi_metatask_zone = uma_zcreate("cfi_metatask", sizeof(struct cfi_metatask),
+ NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
return (0);
-
-bailout_error:
-
- switch (retval) {
- case 3:
- ctl_shrink_mem_pool(&softc->metatask_pool);
- /* FALLTHROUGH */
- case 2:
- ctl_shrink_mem_pool(&softc->lun_pool);
- /* FALLTHROUGH */
- case 1:
- ctl_frontend_deregister(fe);
- break;
- default:
- break;
- }
-
- return (ENOMEM);
}
void
@@ -332,11 +298,8 @@ cfi_shutdown(void)
if (ctl_frontend_deregister(&softc->fe) != 0)
printf("%s: ctl_frontend_deregister() failed\n", __func__);
- if (ctl_shrink_mem_pool(&softc->lun_pool) != 0)
- printf("%s: error shrinking LUN pool\n", __func__);
-
- if (ctl_shrink_mem_pool(&softc->metatask_pool) != 0)
- printf("%s: error shrinking LUN pool\n", __func__);
+ uma_zdestroy(cfi_lun_zone);
+ uma_zdestroy(cfi_metatask_zone);
}
static int
@@ -398,7 +361,6 @@ cfi_targ_disable(void *arg, struct ctl_id targ_id)
static int
cfi_lun_enable(void *arg, struct ctl_id target_id, int lun_id)
{
- struct ctl_mem_element *element;
struct cfi_softc *softc;
struct cfi_lun *lun;
int found;
@@ -423,16 +385,12 @@ cfi_lun_enable(void *arg, struct ctl_id target_id, int lun_id)
if (found != 0)
return (0);
- element = ctl_alloc_mem_element(&softc->lun_pool, /*can_wait*/ 0);
-
- if (element == NULL) {
+ lun = uma_zalloc(cfi_lun_zone, M_NOWAIT | M_ZERO);
+ if (lun == NULL) {
printf("%s: unable to allocate LUN structure\n", __func__);
return (1);
}
- lun = (struct cfi_lun *)element->bytes;
-
- lun->element = element;
lun->target_id = target_id;
lun->lun_id = lun_id;
lun->cur_tag_num = 0;
@@ -485,7 +443,7 @@ cfi_lun_disable(void *arg, struct ctl_id target_id, int lun_id)
return (1);
}
- ctl_free_mem_element(lun->element);
+ uma_zfree(cfi_lun_zone, lun);
return (0);
}
@@ -1682,106 +1640,20 @@ cfi_action(struct cfi_metatask *metatask)
}
}
-#ifdef oldapi
-void
-cfi_shutdown_shelf(cfi_cb_t callback, void *callback_arg)
-{
- struct ctl_mem_element *element;
- struct cfi_softc *softc;
- struct cfi_metatask *metatask;
-
- softc = &fetd_internal_softc;
-
- element = ctl_alloc_mem_element(&softc->metatask_pool, /*can_wait*/ 0);
- if (element == NULL) {
- callback(callback_arg,
- /*status*/ CFI_MT_ERROR,
- /*sluns_found*/ 0,
- /*sluns_complete*/ 0,
- /*sluns_failed*/ 0);
- return;
- }
-
- metatask = (struct cfi_metatask *)element->bytes;
-
- memset(metatask, 0, sizeof(*metatask));
- metatask->tasktype = CFI_TASK_SHUTDOWN;
- metatask->status = CFI_MT_NONE;
- metatask->taskinfo.startstop.callback = callback;
- metatask->taskinfo.startstop.callback_arg = callback_arg;
- metatask->element = element;
-
- cfi_action(softc, metatask);
-
- /*
- * - send a report luns to lun 0, get LUN list.
- * - send an inquiry to each lun
- * - send a stop/offline to each direct access LUN
- * - if we get a reservation conflict, reset the LUN and then
- * retry sending the stop/offline
- * - return status back to the caller
- */
-}
-
-void
-cfi_start_shelf(cfi_cb_t callback, void *callback_arg)
-{
- struct ctl_mem_element *element;
- struct cfi_softc *softc;
- struct cfi_metatask *metatask;
-
- softc = &fetd_internal_softc;
-
- element = ctl_alloc_mem_element(&softc->metatask_pool, /*can_wait*/ 0);
- if (element == NULL) {
- callback(callback_arg,
- /*status*/ CFI_MT_ERROR,
- /*sluns_found*/ 0,
- /*sluns_complete*/ 0,
- /*sluns_failed*/ 0);
- return;
- }
-
- metatask = (struct cfi_metatask *)element->bytes;
-
- memset(metatask, 0, sizeof(*metatask));
- metatask->tasktype = CFI_TASK_STARTUP;
- metatask->status = CFI_MT_NONE;
- metatask->taskinfo.startstop.callback = callback;
- metatask->taskinfo.startstop.callback_arg = callback_arg;
- metatask->element = element;
-
- cfi_action(softc, metatask);
-
- /*
- * - send a report luns to lun 0, get LUN list.
- * - send an inquiry to each lun
- * - send a stop/offline to each direct access LUN
- * - if we get a reservation conflict, reset the LUN and then
- * retry sending the stop/offline
- * - return status back to the caller
- */
-}
-
-#endif
-
struct cfi_metatask *
cfi_alloc_metatask(int can_wait)
{
- struct ctl_mem_element *element;
struct cfi_metatask *metatask;
struct cfi_softc *softc;
softc = &fetd_internal_softc;
- element = ctl_alloc_mem_element(&softc->metatask_pool, can_wait);
- if (element == NULL)
+ metatask = uma_zalloc(cfi_metatask_zone,
+ (can_wait ? M_WAITOK : M_NOWAIT) | M_ZERO);
+ if (metatask == NULL)
return (NULL);
- metatask = (struct cfi_metatask *)element->bytes;
- memset(metatask, 0, sizeof(*metatask));
metatask->status = CFI_MT_NONE;
- metatask->element = element;
return (metatask);
}
@@ -1789,7 +1661,8 @@ cfi_alloc_metatask(int can_wait)
void
cfi_free_metatask(struct cfi_metatask *metatask)
{
- ctl_free_mem_element(metatask->element);
+
+ uma_zfree(cfi_metatask_zone, metatask);
}
/*
diff --git a/sys/cam/ctl/ctl_mem_pool.c b/sys/cam/ctl/ctl_mem_pool.c
deleted file mode 100644
index 801fbc9..0000000
--- a/sys/cam/ctl/ctl_mem_pool.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/*-
- * Copyright (c) 2003, 2004 Silicon Graphics International Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- *
- * $Id: //depot/users/kenm/FreeBSD-test2/sys/cam/ctl/ctl_mem_pool.c#1 $
- */
-/*
- * CAM Target Layer memory pool code.
- *
- * Author: Ken Merry <ken@FreeBSD.org>
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <sys/types.h>
-#include <sys/malloc.h>
-#include <sys/lock.h>
-#include <sys/mutex.h>
-#include <sys/condvar.h>
-#include <sys/queue.h>
-
-#include <cam/ctl/ctl_mem_pool.h>
-
-MALLOC_DEFINE(M_CTL_POOL, "ctlpool", "CTL memory pool");
-
-int
-ctl_init_mem_pool(struct ctl_mem_pool *pool, int chunk_size,
- ctl_mem_pool_flags flags, int grow_inc,
- int initial_pool_size)
-{
- pool->flags = flags;
- pool->chunk_size = chunk_size;
- pool->grow_inc = grow_inc;
- mtx_init(&pool->lock, "Pool mutex", NULL, MTX_DEF);
- STAILQ_INIT(&pool->free_mem_list);
- cv_init(&pool->wait_mem, "CTL mem pool");
-
- if (ctl_grow_mem_pool(pool, initial_pool_size, /*can_wait*/ 1) !=
- initial_pool_size)
- return (1);
- else
- return (0);
-}
-
-struct ctl_mem_element *
-ctl_alloc_mem_element(struct ctl_mem_pool *pool, int can_wait)
-{
- struct ctl_mem_element *mem;
-
- for (;;) {
- mtx_lock(&pool->lock);
-
- mem = STAILQ_FIRST(&pool->free_mem_list);
- if (mem != NULL) {
- STAILQ_REMOVE(&pool->free_mem_list, mem,
- ctl_mem_element, links);
- mem->flags = CTL_MEM_ELEMENT_PREALLOC;
- }
- mtx_unlock(&pool->lock);
-
- if (mem != NULL)
- return (mem);
-
- /*
- * Grow the pool permanantly by the requested increment
- * instead of temporarily. This has the effect that
- * whatever the high water mark of transactions is for
- * this pool, we'll keep that much memory around.
- */
- if (pool->flags & CTL_MEM_POOL_PERM_GROW) {
- if (ctl_grow_mem_pool(pool, pool->grow_inc,
- can_wait) != 0)
- continue;
- }
- mem = (struct ctl_mem_element *)malloc(sizeof(*mem),
- M_CTL_POOL, can_wait ? M_WAITOK : M_NOWAIT);
-
- if (mem != NULL) {
- mem->flags = CTL_MEM_ELEMENT_NONE;
- mem->pool = pool;
-
- mem->bytes = malloc(pool->chunk_size, M_CTL_POOL,
- can_wait ? M_WAITOK : M_NOWAIT);
- if (mem->bytes == NULL) {
- free(mem, M_CTL_POOL);
- mem = NULL;
- } else {
- return (mem);
- }
- }
-
- if (can_wait == 0)
- return (NULL);
-
- cv_wait_unlock(&pool->wait_mem, &pool->lock);
- }
-}
-
-void
-ctl_free_mem_element(struct ctl_mem_element *mem)
-{
- struct ctl_mem_pool *pool;
-
- pool = mem->pool;
-
- if (mem->flags & CTL_MEM_ELEMENT_PREALLOC) {
- mtx_lock(&pool->lock);
- STAILQ_INSERT_TAIL(&pool->free_mem_list, mem, links);
- mtx_unlock(&pool->lock);
- cv_broadcast(&pool->wait_mem);
- } else
- free(mem, M_CTL_POOL);
-}
-
-int
-ctl_grow_mem_pool(struct ctl_mem_pool *pool, int count, int can_wait)
-{
- int i;
-
- for (i = 0; i < count; i++) {
- struct ctl_mem_element *mem;
-
- mem = (struct ctl_mem_element *)malloc(sizeof(*mem),
- M_CTL_POOL, can_wait ? M_WAITOK : M_NOWAIT);
-
- if (mem == NULL)
- break;
-
- mem->bytes = malloc(pool->chunk_size, M_CTL_POOL, can_wait ?
- M_WAITOK : M_NOWAIT);
- if (mem->bytes == NULL) {
- free(mem, M_CTL_POOL);
- break;
- }
- mem->flags = CTL_MEM_ELEMENT_PREALLOC;
- mem->pool = pool;
- mtx_lock(&pool->lock);
- STAILQ_INSERT_TAIL(&pool->free_mem_list, mem, links);
- mtx_unlock(&pool->lock);
- }
-
- return (i);
-}
-
-int
-ctl_shrink_mem_pool(struct ctl_mem_pool *pool)
-{
- struct ctl_mem_element *mem, *mem_next;
-
- mtx_lock(&pool->lock);
- for (mem = STAILQ_FIRST(&pool->free_mem_list); mem != NULL;
- mem = mem_next) {
- mem_next = STAILQ_NEXT(mem, links);
-
- STAILQ_REMOVE(&pool->free_mem_list, mem, ctl_mem_element,
- links);
- free(mem->bytes, M_CTL_POOL);
- free(mem, M_CTL_POOL);
- }
- mtx_unlock(&pool->lock);
-
- return (0);
-}
diff --git a/sys/cam/ctl/ctl_mem_pool.h b/sys/cam/ctl/ctl_mem_pool.h
deleted file mode 100644
index a1df7e3..0000000
--- a/sys/cam/ctl/ctl_mem_pool.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*-
- * Copyright (c) 2003, 2004 Silicon Graphics International Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- *
- * $Id: //depot/users/kenm/FreeBSD-test2/sys/cam/ctl/ctl_mem_pool.h#1 $
- * $FreeBSD$
- */
-/*
- * CAM Target Layer memory pool code.
- *
- * Author: Ken Merry <ken@FreeBSD.org>
- */
-
-#ifndef _CTL_MEMPOOL_H_
-#define _CTL_MEMPOOL_H_
-
-typedef enum {
- CTL_MEM_POOL_NONE,
- CTL_MEM_POOL_PERM_GROW
-} ctl_mem_pool_flags;
-
-struct ctl_mem_pool {
- ctl_mem_pool_flags flags;
- int chunk_size;
- int grow_inc;
- struct mtx lock;
- struct cv wait_mem;
- STAILQ_HEAD(, ctl_mem_element) free_mem_list;
-};
-
-typedef enum {
- CTL_MEM_ELEMENT_NONE,
- CTL_MEM_ELEMENT_PREALLOC
-} ctl_mem_element_flags;
-
-struct ctl_mem_element {
- ctl_mem_element_flags flags;
- struct ctl_mem_pool *pool;
- uint8_t *bytes;
- STAILQ_ENTRY(ctl_mem_element) links;
-};
-
-#ifdef _KERNEL
-
-MALLOC_DECLARE(M_CTL_POOL);
-
-int ctl_init_mem_pool(struct ctl_mem_pool *pool, int chunk_size,
- ctl_mem_pool_flags flags, int grow_inc,
- int initial_pool_size);
-struct ctl_mem_element *ctl_alloc_mem_element(struct ctl_mem_pool *pool,
- int can_wait);
-void ctl_free_mem_element(struct ctl_mem_element *mem);
-int ctl_grow_mem_pool(struct ctl_mem_pool *pool, int count,
- int can_wait);
-int ctl_shrink_mem_pool(struct ctl_mem_pool *pool);
-#endif /* _KERNEL */
-
-#endif /* _CTL_MEMPOOL_H_ */
diff --git a/sys/conf/files b/sys/conf/files
index 596cc69..26325db 100644
--- a/sys/conf/files
+++ b/sys/conf/files
@@ -85,7 +85,6 @@ cam/ctl/ctl_frontend.c optional ctl
cam/ctl/ctl_frontend_cam_sim.c optional ctl
cam/ctl/ctl_frontend_internal.c optional ctl
cam/ctl/ctl_frontend_iscsi.c optional ctl
-cam/ctl/ctl_mem_pool.c optional ctl
cam/ctl/ctl_scsi_all.c optional ctl
cam/ctl/ctl_error.c optional ctl
cam/ctl/ctl_util.c optional ctl
diff --git a/sys/modules/ctl/Makefile b/sys/modules/ctl/Makefile
index 08cd639..c4fe649 100644
--- a/sys/modules/ctl/Makefile
+++ b/sys/modules/ctl/Makefile
@@ -13,7 +13,6 @@ SRCS+= ctl_frontend.c
SRCS+= ctl_frontend_cam_sim.c
SRCS+= ctl_frontend_internal.c
SRCS+= ctl_frontend_iscsi.c
-SRCS+= ctl_mem_pool.c
SRCS+= ctl_scsi_all.c
SRCS+= ctl_error.c
SRCS+= ctl_util.c
OpenPOWER on IntegriCloud