svn commit: r268529 - in head/sys: compat/ndis dev/cas dev/cxgbe dev/hatm dev/iscsi_initiator dev/lge dev/mwl dev/wb kern sys

Gleb Smirnoff glebius at FreeBSD.org
Fri Jul 11 13:58:52 UTC 2014


Author: glebius
Date: Fri Jul 11 13:58:48 2014
New Revision: 268529
URL: http://svnweb.freebsd.org/changeset/base/268529

Log:
  All mbuf external free functions never fail, so let them be void.
  
  Sponsored by:	Nginx, Inc.

Modified:
  head/sys/compat/ndis/kern_ndis.c
  head/sys/compat/ndis/ndis_var.h
  head/sys/dev/cas/if_cas.c
  head/sys/dev/cxgbe/t4_sge.c
  head/sys/dev/hatm/if_hatm_intr.c
  head/sys/dev/iscsi_initiator/isc_soc.c
  head/sys/dev/lge/if_lge.c
  head/sys/dev/mwl/if_mwl.c
  head/sys/dev/wb/if_wb.c
  head/sys/kern/subr_mbpool.c
  head/sys/kern/uipc_mbuf.c
  head/sys/kern/uipc_syscalls.c
  head/sys/sys/mbpool.h
  head/sys/sys/mbuf.h
  head/sys/sys/sf_buf.h

Modified: head/sys/compat/ndis/kern_ndis.c
==============================================================================
--- head/sys/compat/ndis/kern_ndis.c	Fri Jul 11 12:51:07 2014	(r268528)
+++ head/sys/compat/ndis/kern_ndis.c	Fri Jul 11 13:58:48 2014	(r268529)
@@ -483,14 +483,14 @@ ndis_return(dobj, arg)
 	KeReleaseSpinLock(&block->nmb_returnlock, irql);
 }
 
-int
+void
 ndis_return_packet(struct mbuf *m, void *buf, void *arg)
 {
 	ndis_packet		*p;
 	ndis_miniport_block	*block;
 
 	if (arg == NULL)
-		return (EXT_FREE_OK);
+		return;
 
 	p = arg;
 
@@ -499,7 +499,7 @@ ndis_return_packet(struct mbuf *m, void 
 
 	/* Release packet when refcount hits zero, otherwise return. */
 	if (p->np_refcnt)
-		return (EXT_FREE_OK);
+		return;
 
 	block = ((struct ndis_softc *)p->np_softc)->ndis_block;
 
@@ -511,8 +511,6 @@ ndis_return_packet(struct mbuf *m, void 
 	IoQueueWorkItem(block->nmb_returnitem,
 	    (io_workitem_func)kernndis_functbl[7].ipt_wrap,
 	    WORKQUEUE_CRITICAL, block);
-
-	return (EXT_FREE_OK);
 }
 
 void

Modified: head/sys/compat/ndis/ndis_var.h
==============================================================================
--- head/sys/compat/ndis/ndis_var.h	Fri Jul 11 12:51:07 2014	(r268528)
+++ head/sys/compat/ndis/ndis_var.h	Fri Jul 11 13:58:48 2014	(r268529)
@@ -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 int ndis_return_packet(struct mbuf *, void *, void *);
+extern void 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 *);

Modified: head/sys/dev/cas/if_cas.c
==============================================================================
--- head/sys/dev/cas/if_cas.c	Fri Jul 11 12:51:07 2014	(r268528)
+++ head/sys/dev/cas/if_cas.c	Fri Jul 11 13:58:48 2014	(r268529)
@@ -133,7 +133,7 @@ static void	cas_detach(struct cas_softc 
 static int	cas_disable_rx(struct cas_softc *sc);
 static int	cas_disable_tx(struct cas_softc *sc);
 static void	cas_eint(struct cas_softc *sc, u_int status);
-static int	cas_free(struct mbuf *m, void *arg1, void* arg2);
+static void	cas_free(struct mbuf *m, void *arg1, void* arg2);
 static void	cas_init(void *xsc);
 static void	cas_init_locked(struct cas_softc *sc);
 static void	cas_init_regs(struct cas_softc *sc);
@@ -1888,7 +1888,7 @@ cas_rint(struct cas_softc *sc)
 #endif
 }
 
-static int
+static void
 cas_free(struct mbuf *m, void *arg1, void *arg2)
 {
 	struct cas_rxdsoft *rxds;
@@ -1905,7 +1905,7 @@ cas_free(struct mbuf *m, void *arg1, voi
 	rxds = &sc->sc_rxdsoft[idx];
 #endif
 	if (refcount_release(&rxds->rxds_refcount) == 0)
-		return (EXT_FREE_OK);
+		return;
 
 	/*
 	 * NB: this function can be called via m_freem(9) within
@@ -1916,7 +1916,6 @@ cas_free(struct mbuf *m, void *arg1, voi
 	cas_add_rxdesc(sc, idx);
 	if (locked == 0)
 		CAS_UNLOCK(sc);
-	return (EXT_FREE_OK);
 }
 
 static inline void

Modified: head/sys/dev/cxgbe/t4_sge.c
==============================================================================
--- head/sys/dev/cxgbe/t4_sge.c	Fri Jul 11 12:51:07 2014	(r268528)
+++ head/sys/dev/cxgbe/t4_sge.c	Fri Jul 11 13:58:48 2014	(r268529)
@@ -1506,15 +1506,13 @@ cl_metadata(struct adapter *sc, struct s
 	return (NULL);
 }
 
-static int
+static void
 rxb_free(struct mbuf *m, void *arg1, void *arg2)
 {
 	uma_zone_t zone = arg1;
 	caddr_t cl = arg2;
 
 	uma_zfree(zone, cl);
-
-	return (EXT_FREE_OK);
 }
 
 /*

Modified: head/sys/dev/hatm/if_hatm_intr.c
==============================================================================
--- head/sys/dev/hatm/if_hatm_intr.c	Fri Jul 11 12:51:07 2014	(r268528)
+++ head/sys/dev/hatm/if_hatm_intr.c	Fri Jul 11 13:58:48 2014	(r268529)
@@ -261,7 +261,7 @@ hatm_mbuf_page_alloc(struct hatm_softc *
 /*
  * Free an mbuf and put it onto the free list.
  */
-static int
+static void
 hatm_mbuf0_free(struct mbuf *m, void *buf, void *args)
 {
 	struct hatm_softc *sc = args;
@@ -271,9 +271,8 @@ hatm_mbuf0_free(struct mbuf *m, void *bu
 	    ("freeing unused mbuf %x", c->hdr.flags));
 	c->hdr.flags &= ~MBUF_USED;
 	hatm_ext_free(&sc->mbuf_list[0], (struct mbufx_free *)c);
-	return (EXT_FREE_OK);
 }
-static int
+static void
 hatm_mbuf1_free(struct mbuf *m, void *buf, void *args)
 {
 	struct hatm_softc *sc = args;
@@ -283,7 +282,6 @@ hatm_mbuf1_free(struct mbuf *m, void *bu
 	    ("freeing unused mbuf %x", c->hdr.flags));
 	c->hdr.flags &= ~MBUF_USED;
 	hatm_ext_free(&sc->mbuf_list[1], (struct mbufx_free *)c);
-	return (EXT_FREE_OK);
 }
 
 static void

Modified: head/sys/dev/iscsi_initiator/isc_soc.c
==============================================================================
--- head/sys/dev/iscsi_initiator/isc_soc.c	Fri Jul 11 12:51:07 2014	(r268528)
+++ head/sys/dev/iscsi_initiator/isc_soc.c	Fri Jul 11 13:58:48 2014	(r268529)
@@ -68,7 +68,7 @@ static int ou_refcnt = 0;
 /*
  | function for freeing external storage for mbuf
  */
-static int
+static void
 ext_free(struct mbuf *m, void *a, void *b)
 {
      pduq_t *pq = b;
@@ -78,7 +78,6 @@ ext_free(struct mbuf *m, void *a, void *
 	  free(pq->buf, M_ISCSIBUF);
 	  pq->buf = NULL;
      }
-     return (EXT_FREE_OK);
 }
 
 int

Modified: head/sys/dev/lge/if_lge.c
==============================================================================
--- head/sys/dev/lge/if_lge.c	Fri Jul 11 12:51:07 2014	(r268528)
+++ head/sys/dev/lge/if_lge.c	Fri Jul 11 13:58:48 2014	(r268529)
@@ -123,7 +123,7 @@ static int lge_detach(device_t);
 static int lge_alloc_jumbo_mem(struct lge_softc *);
 static void lge_free_jumbo_mem(struct lge_softc *);
 static void *lge_jalloc(struct lge_softc *);
-static int lge_jfree(struct mbuf *, void *, void *);
+static void lge_jfree(struct mbuf *, void *, void *);
 
 static int lge_newbuf(struct lge_softc *, struct lge_rx_desc *, struct mbuf *);
 static int lge_encap(struct lge_softc *, struct mbuf *, u_int32_t *);
@@ -847,7 +847,7 @@ lge_jalloc(sc)
 /*
  * Release a jumbo buffer.
  */
-static int
+static void
 lge_jfree(struct mbuf *m, void *buf, void *args)
 {
 	struct lge_softc	*sc;
@@ -873,8 +873,6 @@ lge_jfree(struct mbuf *m, void *buf, voi
 	entry->slot = i;
 	SLIST_REMOVE_HEAD(&sc->lge_jinuse_listhead, jpool_entries);
 	SLIST_INSERT_HEAD(&sc->lge_jfree_listhead, entry, jpool_entries);
-
-	return (EXT_FREE_OK);
 }
 
 /*

Modified: head/sys/dev/mwl/if_mwl.c
==============================================================================
--- head/sys/dev/mwl/if_mwl.c	Fri Jul 11 12:51:07 2014	(r268528)
+++ head/sys/dev/mwl/if_mwl.c	Fri Jul 11 13:58:48 2014	(r268529)
@@ -2605,7 +2605,7 @@ mwl_rxbuf_init(struct mwl_softc *sc, str
 	return 0;
 }
 
-static int
+static void
 mwl_ext_free(struct mbuf *m, void *data, void *arg)
 {
 	struct mwl_softc *sc = arg;
@@ -2621,7 +2621,6 @@ mwl_ext_free(struct mbuf *m, void *data,
 		sc->sc_rxblocked = 0;
 		mwl_hal_intrset(sc->sc_mh, sc->sc_imask);
 	}
-	return (EXT_FREE_OK);
 }
 
 struct mwl_frame_bar {

Modified: head/sys/dev/wb/if_wb.c
==============================================================================
--- head/sys/dev/wb/if_wb.c	Fri Jul 11 12:51:07 2014	(r268528)
+++ head/sys/dev/wb/if_wb.c	Fri Jul 11 13:58:48 2014	(r268529)
@@ -143,7 +143,7 @@ static int wb_probe(device_t);
 static int wb_attach(device_t);
 static int wb_detach(device_t);
 
-static int wb_bfree(struct mbuf *, void *addr, void *args);
+static void wb_bfree(struct mbuf *, void *addr, void *args);
 static int wb_newbuf(struct wb_softc *, struct wb_chain_onefrag *,
 		struct mbuf *);
 static int wb_encap(struct wb_softc *, struct wb_chain *, struct mbuf *);
@@ -823,11 +823,9 @@ wb_list_rx_init(sc)
 	return(0);
 }
 
-static int
+static void
 wb_bfree(struct mbuf *m, void *buf, void *args)
 {
-
-	return (EXT_FREE_OK);
 }
 
 /*

Modified: head/sys/kern/subr_mbpool.c
==============================================================================
--- head/sys/kern/subr_mbpool.c	Fri Jul 11 12:51:07 2014	(r268528)
+++ head/sys/kern/subr_mbpool.c	Fri Jul 11 13:58:48 2014	(r268529)
@@ -283,12 +283,11 @@ mbp_free(struct mbpool *p, void *ptr)
 /*
  * Mbuf system external mbuf free routine
  */
-int
+void
 mbp_ext_free(struct mbuf *m, void *buf, void *arg)
 {
-	mbp_free(arg, buf);
 
-	return (EXT_FREE_OK);
+	mbp_free(arg, buf);
 }
 
 /*

Modified: head/sys/kern/uipc_mbuf.c
==============================================================================
--- head/sys/kern/uipc_mbuf.c	Fri Jul 11 12:51:07 2014	(r268528)
+++ head/sys/kern/uipc_mbuf.c	Fri Jul 11 13:58:48 2014	(r268529)
@@ -255,7 +255,7 @@ m_freem(struct mbuf *mb)
  */
 int
 m_extadd(struct mbuf *mb, caddr_t buf, u_int size,
-    int (*freef)(struct mbuf *, void *, void *), void *arg1, void *arg2,
+    void (*freef)(struct mbuf *, void *, void *), void *arg1, void *arg2,
     int flags, int type, int wait)
 {
 	KASSERT(type != EXT_CLUSTER, ("%s: EXT_CLUSTER not allowed", __func__));
@@ -329,7 +329,7 @@ mb_free_ext(struct mbuf *m)
 		case EXT_EXTREF:
 			KASSERT(m->m_ext.ext_free != NULL,
 				("%s: ext_free not set", __func__));
-			(void)(*(m->m_ext.ext_free))(m, m->m_ext.ext_arg1,
+			(*(m->m_ext.ext_free))(m, m->m_ext.ext_arg1,
 			    m->m_ext.ext_arg2);
 			break;
 		default:

Modified: head/sys/kern/uipc_syscalls.c
==============================================================================
--- head/sys/kern/uipc_syscalls.c	Fri Jul 11 12:51:07 2014	(r268528)
+++ head/sys/kern/uipc_syscalls.c	Fri Jul 11 13:58:48 2014	(r268529)
@@ -1987,7 +1987,7 @@ filt_sfsync(struct knote *kn, long hint)
 /*
  * Detach mapped page and release resources back to the system.
  */
-int
+void
 sf_buf_mext(struct mbuf *mb, void *addr, void *args)
 {
 	vm_page_t m;
@@ -2009,10 +2009,6 @@ sf_buf_mext(struct mbuf *mb, void *addr,
 		sfs = addr;
 		sf_sync_deref(sfs);
 	}
-	/*
-	 * sfs may be invalid at this point, don't use it!
-	 */
-	return (EXT_FREE_OK);
 }
 
 /*
@@ -3066,14 +3062,14 @@ retry_space:
 			m0 = m_get((mnw ? M_NOWAIT : M_WAITOK), MT_DATA);
 			if (m0 == NULL) {
 				error = (mnw ? EAGAIN : ENOBUFS);
-				(void)sf_buf_mext(NULL, NULL, sf);
+				sf_buf_mext(NULL, NULL, sf);
 				break;
 			}
 			if (m_extadd(m0, (caddr_t )sf_buf_kva(sf), PAGE_SIZE,
 			    sf_buf_mext, sfs, sf, M_RDONLY, EXT_SFBUF,
 			    (mnw ? M_NOWAIT : M_WAITOK)) != 0) {
 				error = (mnw ? EAGAIN : ENOBUFS);
-				(void)sf_buf_mext(NULL, NULL, sf);
+				sf_buf_mext(NULL, NULL, sf);
 				m_freem(m0);
 				break;
 			}

Modified: head/sys/sys/mbpool.h
==============================================================================
--- head/sys/sys/mbpool.h	Fri Jul 11 12:51:07 2014	(r268528)
+++ head/sys/sys/mbpool.h	Fri Jul 11 13:58:48 2014	(r268529)
@@ -69,7 +69,7 @@ void *mbp_alloc(struct mbpool *, bus_add
 void mbp_free(struct mbpool *, void *);
 
 /* free a chunk that is an external mbuf */
-int mbp_ext_free(struct mbuf *, void *, void *);
+void mbp_ext_free(struct mbuf *, void *, void *);
 
 /* free all buffers that are marked to be on the card */
 void mbp_card_free(struct mbpool *);

Modified: head/sys/sys/mbuf.h
==============================================================================
--- head/sys/sys/mbuf.h	Fri Jul 11 12:51:07 2014	(r268528)
+++ head/sys/sys/mbuf.h	Fri Jul 11 13:58:48 2014	(r268529)
@@ -173,7 +173,7 @@ struct m_ext {
 	uint32_t	 ext_size;	/* size of buffer, for ext_free */
 	uint32_t	 ext_type:8,	/* type of external storage */
 			 ext_flags:24;	/* external storage mbuf flags */
-	int		(*ext_free)	/* free routine if not the usual */
+	void		(*ext_free)	/* free routine if not the usual */
 			    (struct mbuf *, void *, void *);
 	void		*ext_arg1;	/* optional argument pointer */
 	void		*ext_arg2;	/* optional argument pointer */
@@ -374,11 +374,6 @@ struct mbuf {
     "\30EXT_FLAG_EXP4"
 
 /*
- * Return values for (*ext_free).
- */
-#define	EXT_FREE_OK	0	/* Normal return */
-
-/*
  * Flags indicating checksum, segmentation and other offload work to be
  * done, or already done, by hardware or lower layers.  It is split into
  * separate inbound and outbound flags.
@@ -543,7 +538,7 @@ m_gettype(int size)
  */
 static __inline void
 m_extaddref(struct mbuf *m, caddr_t buf, u_int size, u_int *ref_cnt,
-    int (*freef)(struct mbuf *, void *, void *), void *arg1, void *arg2)
+    void (*freef)(struct mbuf *, void *, void *), void *arg1, void *arg2)
 {
 
 	KASSERT(ref_cnt != NULL, ("%s: ref_cnt not provided", __func__));
@@ -910,7 +905,7 @@ int		 m_apply(struct mbuf *, int, int,
 int		 m_append(struct mbuf *, int, c_caddr_t);
 void		 m_cat(struct mbuf *, struct mbuf *);
 int		 m_extadd(struct mbuf *, caddr_t, u_int,
-		    int (*)(struct mbuf *, void *, void *), void *, void *,
+		    void (*)(struct mbuf *, void *, void *), void *, void *,
 		    int, int, int);
 struct mbuf	*m_collapse(struct mbuf *, int, int);
 void		 m_copyback(struct mbuf *, int, int, c_caddr_t);

Modified: head/sys/sys/sf_buf.h
==============================================================================
--- head/sys/sys/sf_buf.h	Fri Jul 11 12:51:07 2014	(r268528)
+++ head/sys/sys/sf_buf.h	Fri Jul 11 13:58:48 2014	(r268529)
@@ -61,6 +61,6 @@ extern counter_u64_t sfstat[sizeof(struc
 #define	SFSTAT_INC(name)	SFSTAT_ADD(name, 1)
 #endif /* _KERNEL */
 
-int	sf_buf_mext(struct mbuf *mb, void *addr, void *args);
+void	sf_buf_mext(struct mbuf *mb, void *addr, void *args);
 
 #endif /* !_SYS_SF_BUF_H_ */


More information about the svn-src-head mailing list