summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHartmut Brandt <harti@FreeBSD.org>2003-10-29 13:21:38 +0000
committerHartmut Brandt <harti@FreeBSD.org>2003-10-29 13:21:38 +0000
commit908b018b4964038ffde4514ce08cbdb85eb46de7 (patch)
tree5f1a0d67a9cff35cb179f16fc412ff6a16126299
parent76728073565a3e27462fa573d9ca87a47b1bf9c8 (diff)
Notes
-rw-r--r--sys/dev/hatm/if_hatm_intr.c6
-rw-r--r--sys/dev/hatm/if_hatmvar.h1
2 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/hatm/if_hatm_intr.c b/sys/dev/hatm/if_hatm_intr.c
index cf2bfd3a5963b..97c4e2008f529 100644
--- a/sys/dev/hatm/if_hatm_intr.c
+++ b/sys/dev/hatm/if_hatm_intr.c
@@ -426,8 +426,9 @@ hatm_rx_buffer(struct hatm_softc *sc, u_int group, u_int handle)
c0->hdr.chunkno, chunkno));
if (m != NULL) {
+ m->m_ext.ref_cnt = &c0->hdr.ref_cnt;
m_extadd(m, (void *)c0, MBUF0_SIZE,
- hatm_mbuf0_free, sc, M_PKTHDR, EXT_NET_DRV);
+ hatm_mbuf0_free, sc, M_PKTHDR, EXT_EXTREF);
m->m_data += MBUF0_OFFSET;
} else
hatm_mbuf0_free(c0, sc);
@@ -442,8 +443,9 @@ hatm_rx_buffer(struct hatm_softc *sc, u_int group, u_int handle)
c1->hdr.chunkno, chunkno));
if (m != NULL) {
+ m->m_ext.ref_cnt = &c1->hdr.ref_cnt;
m_extadd(m, (void *)c1, MBUF1_SIZE,
- hatm_mbuf1_free, sc, M_PKTHDR, EXT_NET_DRV);
+ hatm_mbuf1_free, sc, M_PKTHDR, EXT_EXTREF);
m->m_data += MBUF1_OFFSET;
} else
hatm_mbuf1_free(c1, sc);
diff --git a/sys/dev/hatm/if_hatmvar.h b/sys/dev/hatm/if_hatmvar.h
index d821923b0d99e..7686e481fb8a2 100644
--- a/sys/dev/hatm/if_hatmvar.h
+++ b/sys/dev/hatm/if_hatmvar.h
@@ -275,6 +275,7 @@ struct mbuf_page {
struct mbuf_chunk_hdr {
uint16_t pageno;
uint16_t chunkno;
+ u_int ref_cnt;
};
#define MBUFX_STORAGE_SIZE(X) (MBUF##X##_CHUNK \