aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEnji Cooper <ngie@FreeBSD.org>2026-02-26 21:31:25 +0000
committerEnji Cooper <ngie@FreeBSD.org>2026-02-27 18:43:20 +0000
commitafbfc2a617ee16b4c3bafef869690b594f812690 (patch)
treea68db932fa4a425d8fbfdb6d469c9af12bfa9d32
parentc3577fcf3fd0494cc992021d4debbca09241a49e (diff)
gre: unbreak LINT-NOINET
- Move some of the braces under their respective conditionals to make the statements more self-encapsulated and only define the `aliasreq` union in the event either INET or INET6 is defined. - Fix a copy-paste error: `in_gre_ioctl` should be `in6_gre_ioctl` in the INET6 case. Reported by: tinderbox Fixes: e1e18cc12e68 ("if_gre: Add netlink support with tests") Differential Revision: https://reviews.freebsd.org/D55546
-rw-r--r--sys/net/if_gre.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/sys/net/if_gre.c b/sys/net/if_gre.c
index 758f25ccb859..f8036bf4446d 100644
--- a/sys/net/if_gre.c
+++ b/sys/net/if_gre.c
@@ -327,10 +327,10 @@ gre_clone_dump_nl(struct ifnet *ifp, struct nl_writer *nw)
#endif
} else if (sc->gre_family == AF_INET6) {
#ifdef INET6
- if (in_gre_ioctl(sc, SIOCGIFPSRCADDR_IN6, (caddr_t)&ifr) == 0)
+ if (in6_gre_ioctl(sc, SIOCGIFPSRCADDR_IN6, (caddr_t)&ifr) == 0)
nlattr_add_in6_addr(nw, IFLA_GRE_LOCAL,
(const struct in6_addr *)&ifr.ifr_addr);
- if (in_gre_ioctl(sc, SIOCGIFPDSTADDR_IN6, (caddr_t)&ifr) == 0)
+ if (in6_gre_ioctl(sc, SIOCGIFPDSTADDR_IN6, (caddr_t)&ifr) == 0)
nlattr_add_in6_addr(nw, IFLA_GRE_LOCAL,
(const struct in6_addr *)&ifr.ifr_dstaddr);
#endif
@@ -1041,10 +1041,16 @@ static int
gre_set_addr_nl(struct gre_softc *sc, struct nl_pstate *npt,
struct sockaddr *src, struct sockaddr *dst)
{
+#if defined(INET) || defined(INET6)
union {
+#ifdef INET
struct in_aliasreq in;
+#endif
+#ifdef INET6
struct in6_aliasreq in6;
+#endif
} aliasreq;
+#endif
int error;
/* XXX: this sanity check runs again in in[6]_gre_ioctl */
@@ -1057,16 +1063,18 @@ gre_set_addr_nl(struct gre_softc *sc, struct nl_pstate *npt,
sx_xlock(&gre_ioctl_sx);
error = in_gre_ioctl(sc, SIOCSIFPHYADDR, (caddr_t)&aliasreq.in);
sx_xunlock(&gre_ioctl_sx);
+ }
#endif
#ifdef INET6
- } else if (src->sa_family == AF_INET6) {
+ else if (src->sa_family == AF_INET6) {
memcpy(&aliasreq.in6.ifra_addr, src, sizeof(struct sockaddr_in6));
memcpy(&aliasreq.in6.ifra_dstaddr, dst, sizeof(struct sockaddr_in6));
sx_xlock(&gre_ioctl_sx);
error = in6_gre_ioctl(sc, SIOCSIFPHYADDR_IN6, (caddr_t)&aliasreq.in6);
sx_xunlock(&gre_ioctl_sx);
+ }
#endif
- } else
+ else
error = EAFNOSUPPORT;
if (error == EADDRNOTAVAIL)