Module Name: src
Committed By: yamaguchi
Date: Fri Apr 16 01:44:35 UTC 2021
Modified Files:
src/sys/net: if_pppoe.c
Log Message:
Sort initialization sequence in pppoe_clone_create() out
for refactoring
It has no functionality impact
To generate a diff of this commit:
cvs rdiff -u -r1.165 -r1.166 src/sys/net/if_pppoe.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/net/if_pppoe.c
diff -u src/sys/net/if_pppoe.c:1.165 src/sys/net/if_pppoe.c:1.166
--- src/sys/net/if_pppoe.c:1.165 Fri Apr 16 01:32:04 2021
+++ src/sys/net/if_pppoe.c Fri Apr 16 01:44:35 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: if_pppoe.c,v 1.165 2021/04/16 01:32:04 yamaguchi Exp $ */
+/* $NetBSD: if_pppoe.c,v 1.166 2021/04/16 01:44:35 yamaguchi Exp $ */
/*
* Copyright (c) 2002, 2008 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_pppoe.c,v 1.165 2021/04/16 01:32:04 yamaguchi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_pppoe.c,v 1.166 2021/04/16 01:44:35 yamaguchi Exp $");
#ifdef _KERNEL_OPT
#include "pppoe.h"
@@ -339,34 +339,43 @@ static int
pppoe_clone_create(struct if_clone *ifc, int unit)
{
struct pppoe_softc *sc;
+ struct ifnet *ifp;
int rv;
sc = kmem_zalloc(sizeof(*sc), KM_SLEEP);
+ ifp = &sc->sc_sppp.pp_if;
rw_init(&sc->sc_lock);
pppoe_softc_genid(&sc->sc_id);
+ /* changed to real address later */
+ memcpy(&sc->sc_dest, etherbroadcastaddr, sizeof(sc->sc_dest));
- if_initname(&sc->sc_sppp.pp_if, "pppoe", unit);
- sc->sc_sppp.pp_if.if_softc = sc;
- sc->sc_sppp.pp_if.if_mtu = PPPOE_MAXMTU;
- sc->sc_sppp.pp_if.if_flags = IFF_SIMPLEX|IFF_POINTOPOINT|IFF_MULTICAST;
+ if_initname(ifp, "pppoe", unit);
+ ifp->if_softc = sc;
+ ifp->if_mtu = PPPOE_MAXMTU;
+ ifp->if_flags = IFF_SIMPLEX|IFF_POINTOPOINT|IFF_MULTICAST;
+#ifdef PPPOE_MPSAFE
+ ifp->if_extflags = IFEF_MPSAFE;
+#endif
+ ifp->if_type = IFT_PPP;
+ ifp->if_hdrlen = sizeof(struct ether_header) + PPPOE_HEADERLEN;
+ ifp->if_dlt = DLT_PPP_ETHER;
+ ifp->if_ioctl = pppoe_ioctl;
+ ifp->if_start = pppoe_start;
#ifdef PPPOE_MPSAFE
- sc->sc_sppp.pp_if.if_extflags = IFEF_MPSAFE;
+ ifp->if_transmit = pppoe_transmit;
#endif
- sc->sc_sppp.pp_if.if_type = IFT_PPP;
- sc->sc_sppp.pp_if.if_hdrlen = sizeof(struct ether_header) + PPPOE_HEADERLEN;
- sc->sc_sppp.pp_if.if_dlt = DLT_PPP_ETHER;
+ IFQ_SET_MAXLEN(&ifp->if_snd, IFQ_MAXLEN);
+ IFQ_SET_READY(&ifp->if_snd);
+
+ sc->sc_sppp.pp_tls = pppoe_tls;
+ sc->sc_sppp.pp_tlf = pppoe_tlf;
sc->sc_sppp.pp_flags |= PP_KEEPALIVE | /* use LCP keepalive */
PP_NOFRAMING; /* no serial encapsulation */
- sc->sc_sppp.pp_if.if_ioctl = pppoe_ioctl;
- IFQ_SET_MAXLEN(&sc->sc_sppp.pp_if.if_snd, IFQ_MAXLEN);
- IFQ_SET_READY(&sc->sc_sppp.pp_if.if_snd);
-
- /* changed to real address later */
- memcpy(&sc->sc_dest, etherbroadcastaddr, sizeof(sc->sc_dest));
+ sc->sc_sppp.pp_framebytes = PPPOE_HEADERLEN; /* framing added to ppp packets */
rv = workqueue_create(&sc->sc_timeout_wq,
- sc->sc_sppp.pp_if.if_xname, pppoe_timeout_wk, sc,
+ ifp->if_xname, pppoe_timeout_wk, sc,
PRI_SOFTNET, IPL_SOFTNET, 0);
if (rv != 0)
goto destroy_sclock;
@@ -374,33 +383,23 @@ pppoe_clone_create(struct if_clone *ifc,
callout_init(&sc->sc_timeout, CALLOUT_MPSAFE);
callout_setfunc(&sc->sc_timeout, pppoe_timeout_co, sc);
- sc->sc_sppp.pp_if.if_start = pppoe_start;
-#ifdef PPPOE_MPSAFE
- sc->sc_sppp.pp_if.if_transmit = pppoe_transmit;
-#endif
- sc->sc_sppp.pp_tls = pppoe_tls;
- sc->sc_sppp.pp_tlf = pppoe_tlf;
- sc->sc_sppp.pp_framebytes = PPPOE_HEADERLEN; /* framing added to ppp packets */
-
- rv = if_initialize(&sc->sc_sppp.pp_if);
+ rv = if_initialize(ifp);
if (rv != 0)
goto destroy_timeout;
- sc->sc_sppp.pp_if.if_percpuq = if_percpuq_create(&sc->sc_sppp.pp_if);
- sppp_attach(&sc->sc_sppp.pp_if);
+ ifp->if_percpuq = if_percpuq_create(ifp);
- bpf_attach(&sc->sc_sppp.pp_if, DLT_PPP_ETHER, 0);
rw_enter(&pppoe_softc_list_lock, RW_READER);
if (LIST_EMPTY(&pppoe_softc_list)) {
pfil_add_ihook(pppoe_ifattach_hook, NULL, PFIL_IFNET, if_pfil);
}
+ LIST_INSERT_HEAD(&pppoe_softc_list, sc, sc_list);
rw_exit(&pppoe_softc_list_lock);
- if_register(&sc->sc_sppp.pp_if);
+ sppp_attach(ifp);
+ bpf_attach(ifp, DLT_PPP_ETHER, 0);
+ if_register(ifp);
- rw_enter(&pppoe_softc_list_lock, RW_WRITER);
- LIST_INSERT_HEAD(&pppoe_softc_list, sc, sc_list);
- rw_exit(&pppoe_softc_list_lock);
return 0;
destroy_timeout: