diff --git a/sys/kern/kern_mbuf.c b/sys/kern/kern_mbuf.c
--- a/sys/kern/kern_mbuf.c
+++ b/sys/kern/kern_mbuf.c
@@ -950,7 +950,7 @@
 
 	if (m->m_epg_tls != NULL) {
 		/* can't convert TLS mbuf */
-		m_freem(m);
+		m_free(m);
 		*mres = NULL;
 		return (EINVAL);
 	}
@@ -1099,7 +1099,7 @@
 			error = _mb_unmapped_to_ext(m, &m1);
 			if (error != 0) {
 				if (top != m)
-					m_free(top);
+					m_freem(top);
 				m_freem(next);
 				*mres = NULL;
 				return (error);
diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c
--- a/sys/netinet/ip_output.c
+++ b/sys/netinet/ip_output.c
@@ -751,7 +751,7 @@
 				error = ENOBUFS;
 			}
 			IPSTAT_INC(ips_odropped);
-			goto bad;
+			goto done;
 		} else {
 			m = m1;
 		}
@@ -859,7 +859,7 @@
 
 done:
 	return (error);
- bad:
+bad:
 	m_freem(m);
 	goto done;
 }