summaryrefslogtreecommitdiffstats
path: root/sys/dev/ips/ips.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/ips/ips.c')
-rw-r--r--sys/dev/ips/ips.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/dev/ips/ips.c b/sys/dev/ips/ips.c
index 20f5c31..b2532e9 100644
--- a/sys/dev/ips/ips.c
+++ b/sys/dev/ips/ips.c
@@ -37,6 +37,8 @@ static d_open_t ips_open;
static d_close_t ips_close;
static d_ioctl_t ips_ioctl;
+MALLOC_DEFINE(M_IPSBUF, "ipsbuf","IPS driver buffer");
+
static struct cdevsw ips_cdevsw = {
.d_version = D_VERSION,
.d_flags = D_NEEDGIANT,
@@ -170,13 +172,13 @@ static int ips_add_waiting_command(ips_softc_t *sc, int (*callback)(ips_command_
unsigned long memflags = 0;
if(IPS_NOWAIT_FLAG & flags)
memflags = M_NOWAIT;
- waiter = malloc(sizeof(ips_wait_list_t), M_DEVBUF, memflags);
+ waiter = malloc(sizeof(ips_wait_list_t), M_IPSBUF, memflags);
if(!waiter)
return ENOMEM;
mask = splbio();
if(sc->state & IPS_OFFLINE){
splx(mask);
- free(waiter, M_DEVBUF);
+ free(waiter, M_IPSBUF);
return EIO;
}
command = SLIST_FIRST(&sc->free_cmd_list);
@@ -186,7 +188,7 @@ static int ips_add_waiting_command(ips_softc_t *sc, int (*callback)(ips_command_
splx(mask);
clear_ips_command(command);
bzero(command->command_buffer, IPS_COMMAND_LEN);
- free(waiter, M_DEVBUF);
+ free(waiter, M_IPSBUF);
command->arg = data;
return callback(command);
}
@@ -221,7 +223,7 @@ static void ips_run_waiting_command(ips_softc_t *sc)
bzero(command->command_buffer, IPS_COMMAND_LEN);
command->arg = waiter->data;
callback = waiter->callback;
- free(waiter, M_DEVBUF);
+ free(waiter, M_IPSBUF);
callback(command);
return;
}
OpenPOWER on IntegriCloud