Author: gallatin
Date: Mon Jan 28 14:34:59 2019
New Revision: 343526
URL: https://svnweb.freebsd.org/changeset/base/343526

Log:
  MFC r343430
  
    Fix an iflib driver unload panic introduced in r343085
  
    The new loop to sync and unload descriptors was indexed
    by "i", rather than "j".   The panic was caused by "i"
    being advanced rather than "j", and eventually becoming
    out of bounds.
  
  Reviewed by:  kib
  Sponsored by: Netflix

Modified:
  stable/12/sys/net/iflib.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/net/iflib.c
==============================================================================
--- stable/12/sys/net/iflib.c   Mon Jan 28 12:45:31 2019        (r343525)
+++ stable/12/sys/net/iflib.c   Mon Jan 28 14:34:59 2019        (r343526)
@@ -2192,17 +2192,17 @@ iflib_rx_sds_free(iflib_rxq_t rxq)
                        fl = &rxq->ifr_fl[i];
                        if (fl->ifl_desc_tag != NULL) {
                                if (fl->ifl_sds.ifsd_map != NULL) {
-                                       for (j = 0; j < fl->ifl_size; i++) {
-                                               if (fl->ifl_sds.ifsd_map[i] ==
+                                       for (j = 0; j < fl->ifl_size; j++) {
+                                               if (fl->ifl_sds.ifsd_map[j] ==
                                                    NULL)
-                                               continue;
+                                                       continue;
                                                bus_dmamap_sync(
                                                    fl->ifl_desc_tag,
-                                                   fl->ifl_sds.ifsd_map[i],
+                                                   fl->ifl_sds.ifsd_map[j],
                                                    BUS_DMASYNC_POSTREAD);
                                                bus_dmamap_unload(
                                                    fl->ifl_desc_tag,
-                                                   fl->ifl_sds.ifsd_map[i]);
+                                                   fl->ifl_sds.ifsd_map[j]);
                                        }
                                }
                                bus_dma_tag_destroy(fl->ifl_desc_tag);
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to