Index: dev/ic/dwc_gmac.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/dwc_gmac.c,v retrieving revision 1.63 diff -p -u -r1.63 dwc_gmac.c --- dev/ic/dwc_gmac.c 8 Jul 2019 03:22:38 -0000 1.63 +++ dev/ic/dwc_gmac.c 21 Jul 2019 05:28:51 -0000 @@ -180,10 +180,6 @@ static void dwc_dump_status(struct dwc_g static void dwc_gmac_dump_ffilt(struct dwc_gmac_softc *, uint32_t); #endif -#ifdef NET_MPSAFE -#define DWCGMAC_MPSAFE 1 -#endif - int dwc_gmac_attach(struct dwc_gmac_softc *sc, int phy_id, uint32_t mii_clk) { @@ -698,7 +694,7 @@ fail: static void dwc_gmac_txdesc_sync(struct dwc_gmac_softc *sc, int start, int end, int ops) { - /* 'end' is pointing one descriptor beyound the last we want to sync */ + /* 'end' is pointing one descriptor beyond the last we want to sync */ if (end > start) { bus_dmamap_sync(sc->sc_dmat, sc->sc_dma_ring_map, TX_DESC_OFFSET(start), Index: dev/ic/dwc_gmac_var.h =================================================================== RCS file: /cvsroot/src/sys/dev/ic/dwc_gmac_var.h,v retrieving revision 1.14 diff -p -u -r1.14 dwc_gmac_var.h --- dev/ic/dwc_gmac_var.h 8 Jul 2019 03:22:38 -0000 1.14 +++ dev/ic/dwc_gmac_var.h 21 Jul 2019 05:28:51 -0000 @@ -29,6 +29,20 @@ * POSSIBILITY OF SUCH DAMAGE. */ +#ifdef _KERNEL_OPT +#include "opt_net_mpsafe.h" +#endif + +/* Use DWCGMAC_MPSAFE inside the front-ends for interrupt handlers. */ +#ifdef NET_MPSAFE +#define DWCGMAC_MPSAFE 1 +#endif + +#ifdef DWCGMAC_MPSAFE +#define DWCGMAC_FDT_INTR_MPSAFE 1 +#else +#define DWCGMAC_FDT_INTR_MPSAFE 0 +#endif /* * We could use 1024 DMA descriptors to fill up an 8k page (each is 16 byte). Index: arch/arm/altera/cycv_gmac.c =================================================================== RCS file: /cvsroot/src/sys/arch/arm/altera/cycv_gmac.c,v retrieving revision 1.3 diff -p -u -r1.3 cycv_gmac.c --- arch/arm/altera/cycv_gmac.c 8 Jul 2019 03:22:38 -0000 1.3 +++ arch/arm/altera/cycv_gmac.c 21 Jul 2019 05:28:51 -0000 @@ -129,7 +129,7 @@ cycv_gmac_attach(device_t parent, device aprint_naive("\n"); aprint_normal(": GMAC\n"); - if (fdtbus_intr_establish(phandle, 0, IPL_NET, 0, + if (fdtbus_intr_establish(phandle, 0, IPL_NET, DWCGMAC_FDT_INTR_MPSAFE, cycv_gmac_intr, sc) == NULL) { aprint_error_dev(self, "failed to establish interrupt on %s\n", intrstr); Index: arch/arm/amlogic/meson_dwmac.c =================================================================== RCS file: /cvsroot/src/sys/arch/arm/amlogic/meson_dwmac.c,v retrieving revision 1.6 diff -p -u -r1.6 meson_dwmac.c --- arch/arm/amlogic/meson_dwmac.c 8 Jul 2019 03:22:38 -0000 1.6 +++ arch/arm/amlogic/meson_dwmac.c 21 Jul 2019 05:28:51 -0000 @@ -218,7 +218,8 @@ meson_dwmac_attach(device_t parent, devi aprint_naive("\n"); aprint_normal(": Gigabit Ethernet Controller\n"); - if (fdtbus_intr_establish(phandle, 0, IPL_NET, 0, meson_dwmac_intr, sc) == NULL) { + if (fdtbus_intr_establish(phandle, 0, IPL_NET, DWCGMAC_FDT_INTR_MPSAFE, + meson_dwmac_intr, sc) == NULL) { aprint_error_dev(self, "failed to establish interrupt on %s\n", intrstr); return; } Index: arch/arm/rockchip/rk_gmac.c =================================================================== RCS file: /cvsroot/src/sys/arch/arm/rockchip/rk_gmac.c,v retrieving revision 1.13 diff -p -u -r1.13 rk_gmac.c --- arch/arm/rockchip/rk_gmac.c 8 Jul 2019 03:22:38 -0000 1.13 +++ arch/arm/rockchip/rk_gmac.c 21 Jul 2019 05:28:51 -0000 @@ -421,7 +421,8 @@ rk_gmac_attach(device_t parent, device_t if (dwc_gmac_attach(sc, MII_PHY_ANY, GMAC_MII_CLK_150_250M_DIV102) != 0) return; - if (fdtbus_intr_establish(phandle, 0, IPL_NET, 0, rk_gmac_intr, sc) == NULL) { + if (fdtbus_intr_establish(phandle, 0, IPL_NET, DWCGMAC_FDT_INTR_MPSAFE, + rk_gmac_intr, sc) == NULL) { aprint_error_dev(self, "failed to establish interrupt on %s\n", intrstr); return; } Index: arch/arm/sunxi/sunxi_gmac.c =================================================================== RCS file: /cvsroot/src/sys/arch/arm/sunxi/sunxi_gmac.c,v retrieving revision 1.5 diff -p -u -r1.5 sunxi_gmac.c --- arch/arm/sunxi/sunxi_gmac.c 8 Jul 2019 03:22:38 -0000 1.5 +++ arch/arm/sunxi/sunxi_gmac.c 21 Jul 2019 05:28:51 -0000 @@ -182,7 +182,8 @@ sunxi_gmac_attach(device_t parent, devic aprint_naive("\n"); aprint_normal(": GMAC\n"); - if (fdtbus_intr_establish(phandle, 0, IPL_NET, 0, sunxi_gmac_intr, sc) == NULL) { + if (fdtbus_intr_establish(phandle, 0, IPL_NET, FDT_INTR_MPSAFE, + sunxi_gmac_intr, sc) == NULL) { aprint_error_dev(self, "failed to establish interrupt on %s\n", intrstr); return; }