Hi, The diff below adds M_CANFAIL to the flag passed to malloc() since we are able to fail gracefully. ok?
Index: sys/dev/pci/if_igc.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_igc.c,v retrieving revision 1.12 diff -u -p -u -p -r1.12 if_igc.c --- sys/dev/pci/if_igc.c 9 Mar 2023 00:13:47 -0000 1.12 +++ sys/dev/pci/if_igc.c 6 Apr 2023 06:50:43 -0000 @@ -1210,7 +1210,7 @@ igc_rxrinfo(struct igc_softc *sc, struct int error, i, n = 0; if ((ifr = mallocarray(sc->sc_nqueues, sizeof(*ifr), M_DEVBUF, - M_WAITOK | M_ZERO)) == NULL) + M_WAITOK | M_CANFAIL | M_ZERO)) == NULL) return ENOMEM; for (i = 0; i < sc->sc_nqueues; i++) { Index: sys/dev/pci/if_ix.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_ix.c,v retrieving revision 1.192 diff -u -p -u -p -r1.192 if_ix.c --- sys/dev/pci/if_ix.c 6 Feb 2023 20:27:44 -0000 1.192 +++ sys/dev/pci/if_ix.c 6 Apr 2023 06:50:44 -0000 @@ -641,7 +641,7 @@ ixgbe_rxrinfo(struct ix_softc *sc, struc if (sc->num_queues > 1) { if ((ifr = mallocarray(sc->num_queues, sizeof(*ifr), M_DEVBUF, - M_WAITOK | M_ZERO)) == NULL) + M_WAITOK | M_CANFAIL | M_ZERO)) == NULL) return (ENOMEM); } else ifr = &ifr1; Index: sys/dev/pci/if_oce.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_oce.c,v retrieving revision 1.106 diff -u -p -u -p -r1.106 if_oce.c --- sys/dev/pci/if_oce.c 11 Mar 2022 18:00:48 -0000 1.106 +++ sys/dev/pci/if_oce.c 6 Apr 2023 06:50:44 -0000 @@ -903,7 +903,7 @@ oce_rxrinfo(struct oce_softc *sc, struct if (sc->sc_nrq > 1) { if ((ifr = mallocarray(sc->sc_nrq, sizeof(*ifr), M_DEVBUF, - M_WAITOK | M_ZERO)) == NULL) + M_WAITOK | M_CANFAIL | M_ZERO)) == NULL) return (ENOMEM); } else ifr = &ifr1;