Author: yongari
Date: Mon Nov  7 22:47:25 2011
New Revision: 227322
URL: http://svn.freebsd.org/changeset/base/227322

Log:
  Show RX buffer allocation failure and do not blindly send alive
  message to firmware. Probably the correct way for this error is to
  send a TI_CMD_CODE_STACK_DOWN message to firmware and let firmware
  handle the rest.

Modified:
  head/sys/dev/ti/if_ti.c

Modified: head/sys/dev/ti/if_ti.c
==============================================================================
--- head/sys/dev/ti/if_ti.c     Mon Nov  7 22:34:07 2011        (r227321)
+++ head/sys/dev/ti/if_ti.c     Mon Nov  7 22:47:25 2011        (r227322)
@@ -3160,18 +3160,34 @@ static void ti_init2(struct ti_softc *sc
        }
 
        /* Init RX ring. */
-       ti_init_rx_ring_std(sc);
+       if (ti_init_rx_ring_std(sc) != 0) {
+               /* XXX */
+               device_printf(sc->ti_dev, "no memory for std Rx buffers.\n");
+               return;
+       }
 
        /* Init jumbo RX ring. */
-       if (ifp->if_mtu > (ETHERMTU + ETHER_HDR_LEN + ETHER_CRC_LEN))
-               ti_init_rx_ring_jumbo(sc);
+       if (ifp->if_mtu > (ETHERMTU + ETHER_HDR_LEN + ETHER_CRC_LEN)) {
+               if (ti_init_rx_ring_jumbo(sc) != 0) {
+                       /* XXX */
+                       device_printf(sc->ti_dev,
+                           "no memory for jumbo Rx buffers.\n");
+                       return;
+               }
+       }
 
        /*
         * If this is a Tigon 2, we can also configure the
         * mini ring.
         */
-       if (sc->ti_hwrev == TI_HWREV_TIGON_II)
-               ti_init_rx_ring_mini(sc);
+       if (sc->ti_hwrev == TI_HWREV_TIGON_II) {
+               if (ti_init_rx_ring_mini(sc) != 0) {
+                       /* XXX */
+                       device_printf(sc->ti_dev,
+                           "no memory for mini Rx buffers.\n");
+                       return;
+               }
+       }
 
        CSR_WRITE_4(sc, TI_GCR_RXRETURNCONS_IDX, 0);
        sc->ti_rx_saved_considx = 0;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to