handle broadcast packets
[unix-history] / usr / src / sys / vax / if / if_uba.c
index 70e8f7b..8b01de6 100644 (file)
@@ -1,4 +1,4 @@
-/*     if_uba.c        4.7     81/12/21        */
+/*     if_uba.c        4.9     82/02/03        */
 
 #include "../h/param.h"
 #include "../h/systm.h"
 
 #include "../h/param.h"
 #include "../h/systm.h"
@@ -64,8 +64,8 @@ bad:
 
 /*
  * Setup either a ifrw structure by allocating UNIBUS map registers,
 
 /*
  * Setup either a ifrw structure by allocating UNIBUS map registers,
- * a buffered data path, and initializing the fields of the ifrw structure
- * to minimize run-time overhead.
+ * possibly a buffered data path, and initializing the fields of
+ * the ifrw structure to minimize run-time overhead.
  */
 static
 if_ubaalloc(ifu, ifrw, nmr)
  */
 static
 if_ubaalloc(ifu, ifrw, nmr)
@@ -78,7 +78,7 @@ if_ubaalloc(ifu, ifrw, nmr)
 COUNT(IF_UBAALLOC);
        info =
            uballoc(ifu->ifu_uban, ifrw->ifrw_addr, nmr*NBPG + ifu->ifu_hlen,
 COUNT(IF_UBAALLOC);
        info =
            uballoc(ifu->ifu_uban, ifrw->ifrw_addr, nmr*NBPG + ifu->ifu_hlen,
-               UBA_NEED16|UBA_NEEDBDP);
+               ifu->ifu_flags);
        if (info == 0)
                return (0);
        ifrw->ifrw_info = info;
        if (info == 0)
                return (0);
        ifrw->ifrw_info = info;
@@ -171,7 +171,7 @@ nocopy:
                                totlen = off0;
                        }
                } else
                                totlen = off0;
                        }
                } else
-                       totlen -= len;
+                       totlen -= m->m_len;
        }
        return (top);
 bad:
        }
        return (top);
 bad: