summaryrefslogtreecommitdiffstats
path: root/sys/compat
diff options
context:
space:
mode:
authorandre <andre@FreeBSD.org>2013-08-25 10:57:09 +0000
committerandre <andre@FreeBSD.org>2013-08-25 10:57:09 +0000
commit6c0efad132654ea9bfc4e58975d1d58ce8d4b424 (patch)
treec06b97898de2cde2e64243afc1672aebf11ef915 /sys/compat
parent8e41c705d027e43af7d37c3bc669b20ac317fd2b (diff)
downloadFreeBSD-src-6c0efad132654ea9bfc4e58975d1d58ce8d4b424.zip
FreeBSD-src-6c0efad132654ea9bfc4e58975d1d58ce8d4b424.tar.gz
Give (*ext_free) an int return value allowing for very sophisticated
external mbuf buffer management capabilities in the future. For now only EXT_FREE_OK is defined with current legacy behavior. Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'sys/compat')
-rw-r--r--sys/compat/ndis/kern_ndis.c12
-rw-r--r--sys/compat/ndis/ndis_var.h2
2 files changed, 7 insertions, 7 deletions
diff --git a/sys/compat/ndis/kern_ndis.c b/sys/compat/ndis/kern_ndis.c
index 71b4b80..d0a05e1 100644
--- a/sys/compat/ndis/kern_ndis.c
+++ b/sys/compat/ndis/kern_ndis.c
@@ -482,16 +482,14 @@ ndis_return(dobj, arg)
KeReleaseSpinLock(&block->nmb_returnlock, irql);
}
-void
-ndis_return_packet(buf, arg)
- void *buf; /* not used */
- void *arg;
+int
+ndis_return_packet(struct mbuf *m, void *buf, void *arg)
{
ndis_packet *p;
ndis_miniport_block *block;
if (arg == NULL)
- return;
+ return (EXT_FREE_OK);
p = arg;
@@ -500,7 +498,7 @@ ndis_return_packet(buf, arg)
/* Release packet when refcount hits zero, otherwise return. */
if (p->np_refcnt)
- return;
+ return (EXT_FREE_OK);
block = ((struct ndis_softc *)p->np_softc)->ndis_block;
@@ -512,6 +510,8 @@ ndis_return_packet(buf, arg)
IoQueueWorkItem(block->nmb_returnitem,
(io_workitem_func)kernndis_functbl[7].ipt_wrap,
WORKQUEUE_CRITICAL, block);
+
+ return (EXT_FREE_OK);
}
void
diff --git a/sys/compat/ndis/ndis_var.h b/sys/compat/ndis/ndis_var.h
index 2692e54..823cfc9 100644
--- a/sys/compat/ndis/ndis_var.h
+++ b/sys/compat/ndis/ndis_var.h
@@ -1743,7 +1743,7 @@ extern int ndis_halt_nic(void *);
extern int ndis_shutdown_nic(void *);
extern int ndis_pnpevent_nic(void *, int);
extern int ndis_init_nic(void *);
-extern void ndis_return_packet(void *, void *);
+extern int ndis_return_packet(struct mbuf *, void *, void *);
extern int ndis_init_dma(void *);
extern int ndis_destroy_dma(void *);
extern int ndis_create_sysctls(void *);
OpenPOWER on IntegriCloud