Module Name:    src
Committed By:   rin
Date:           Mon May  3 10:28:26 UTC 2021

Modified Files:
        src/sys/dev/acpi: genet_acpi.c
        src/sys/dev/fdt: genet_fdt.c
        src/sys/dev/ic: bcmgenet.c bcmgenetvar.h

Log Message:
genet(4): Add support for rnd(9).


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/dev/acpi/genet_acpi.c
cvs rdiff -u -r1.5 -r1.6 src/sys/dev/fdt/genet_fdt.c
cvs rdiff -u -r1.8 -r1.9 src/sys/dev/ic/bcmgenet.c
cvs rdiff -u -r1.3 -r1.4 src/sys/dev/ic/bcmgenetvar.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/acpi/genet_acpi.c
diff -u src/sys/dev/acpi/genet_acpi.c:1.4 src/sys/dev/acpi/genet_acpi.c:1.5
--- src/sys/dev/acpi/genet_acpi.c:1.4	Fri Jan 29 15:49:55 2021
+++ src/sys/dev/acpi/genet_acpi.c	Mon May  3 10:28:26 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: genet_acpi.c,v 1.4 2021/01/29 15:49:55 thorpej Exp $ */
+/* $NetBSD: genet_acpi.c,v 1.5 2021/05/03 10:28:26 rin Exp $ */
 
 /*-
  * Copyright (c) 2020 Jared McNeill <jmcne...@invisible.ca>
@@ -29,13 +29,15 @@
 #include "opt_net_mpsafe.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: genet_acpi.c,v 1.4 2021/01/29 15:49:55 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: genet_acpi.c,v 1.5 2021/05/03 10:28:26 rin Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
 #include <sys/cpu.h>
 #include <sys/device.h>
 
+#include <sys/rndsource.h>
+
 #include <net/if.h>
 #include <net/if_dl.h>
 #include <net/if_ether.h>

Index: src/sys/dev/fdt/genet_fdt.c
diff -u src/sys/dev/fdt/genet_fdt.c:1.5 src/sys/dev/fdt/genet_fdt.c:1.6
--- src/sys/dev/fdt/genet_fdt.c:1.5	Mon Mar  8 13:15:06 2021
+++ src/sys/dev/fdt/genet_fdt.c	Mon May  3 10:28:26 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: genet_fdt.c,v 1.5 2021/03/08 13:15:06 mlelstv Exp $ */
+/* $NetBSD: genet_fdt.c,v 1.6 2021/05/03 10:28:26 rin Exp $ */
 
 /*-
  * Copyright (c) 2020 Jared McNeill <jmcne...@invisible.ca>
@@ -29,7 +29,7 @@
 #include "opt_net_mpsafe.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: genet_fdt.c,v 1.5 2021/03/08 13:15:06 mlelstv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: genet_fdt.c,v 1.6 2021/05/03 10:28:26 rin Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -38,6 +38,8 @@ __KERNEL_RCSID(0, "$NetBSD: genet_fdt.c,
 #include <sys/systm.h>
 #include <sys/kernel.h>
 
+#include <sys/rndsource.h>
+
 #include <net/if.h>
 #include <net/if_dl.h>
 #include <net/if_ether.h>

Index: src/sys/dev/ic/bcmgenet.c
diff -u src/sys/dev/ic/bcmgenet.c:1.8 src/sys/dev/ic/bcmgenet.c:1.9
--- src/sys/dev/ic/bcmgenet.c:1.8	Mon Mar  8 13:14:44 2021
+++ src/sys/dev/ic/bcmgenet.c	Mon May  3 10:28:26 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: bcmgenet.c,v 1.8 2021/03/08 13:14:44 mlelstv Exp $ */
+/* $NetBSD: bcmgenet.c,v 1.9 2021/05/03 10:28:26 rin Exp $ */
 
 /*-
  * Copyright (c) 2020 Jared McNeill <jmcne...@invisible.ca>
@@ -34,7 +34,7 @@
 #include "opt_ddb.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bcmgenet.c,v 1.8 2021/03/08 13:14:44 mlelstv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bcmgenet.c,v 1.9 2021/05/03 10:28:26 rin Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -46,6 +46,8 @@ __KERNEL_RCSID(0, "$NetBSD: bcmgenet.c,v
 #include <sys/callout.h>
 #include <sys/cprng.h>
 
+#include <sys/rndsource.h>
+
 #include <net/if.h>
 #include <net/if_dl.h>
 #include <net/if_ether.h>
@@ -681,6 +683,7 @@ genet_rxintr(struct genet_softc *sc, int
 	int error, index, len, n;
 	struct mbuf *m, *m0;
 	uint32_t status, pidx, total;
+	int pkts = 0;
 
 	pidx = RD4(sc, GENET_RX_DMA_PROD_INDEX(qid)) & 0xffff;
 	total = (pidx - sc->sc_rx.cidx) & 0xffff;
@@ -749,6 +752,7 @@ genet_rxintr(struct genet_softc *sc, int
 		m_adj(m, ETHER_ALIGN);
 
 		if_percpuq_enqueue(ifp->if_percpuq, m);
+		++pkts;
 
 next:
 		index = RX_NEXT(index);
@@ -756,6 +760,9 @@ next:
 		sc->sc_rx.cidx = (sc->sc_rx.cidx + 1) & 0xffff;
 		WR4(sc, GENET_RX_DMA_CONS_INDEX(qid), sc->sc_rx.cidx);
 	}
+
+	if (pkts != 0)
+		rnd_add_uint32(&sc->sc_rndsource, pkts);
 }
 
 static void
@@ -785,6 +792,9 @@ genet_txintr(struct genet_softc *sc, int
 	}
 
 	if_statadd(ifp, if_opackets, pkts);
+
+	if (pkts != 0)
+		rnd_add_uint32(&sc->sc_rndsource, pkts);
 }
 
 static void
@@ -1100,6 +1110,9 @@ genet_attach(struct genet_softc *sc)
 	/* Attach ethernet interface */
 	ether_ifattach(ifp, eaddr);
 
+	rnd_attach_source(&sc->sc_rndsource, ifp->if_xname, RND_TYPE_NET,
+	    RND_FLAG_DEFAULT);
+
 	return 0;
 }
 

Index: src/sys/dev/ic/bcmgenetvar.h
diff -u src/sys/dev/ic/bcmgenetvar.h:1.3 src/sys/dev/ic/bcmgenetvar.h:1.4
--- src/sys/dev/ic/bcmgenetvar.h:1.3	Mon Mar  8 13:14:44 2021
+++ src/sys/dev/ic/bcmgenetvar.h	Mon May  3 10:28:26 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: bcmgenetvar.h,v 1.3 2021/03/08 13:14:44 mlelstv Exp $ */
+/* $NetBSD: bcmgenetvar.h,v 1.4 2021/05/03 10:28:26 rin Exp $ */
 
 /*-
  * Copyright (c) 2020 Jared McNeill <jmcne...@invisible.ca>
@@ -70,6 +70,8 @@ struct genet_softc {
 
 	struct genet_ring	sc_tx;
 	struct genet_ring	sc_rx;
+
+	krndsource_t		sc_rndsource;
 };
 
 int	genet_attach(struct genet_softc *);

Reply via email to