fix error printing
authorRalph Campbell <ralph@ucbvax.Berkeley.EDU>
Sun, 21 Jun 1992 03:12:48 +0000 (19:12 -0800)
committerRalph Campbell <ralph@ucbvax.Berkeley.EDU>
Sun, 21 Jun 1992 03:12:48 +0000 (19:12 -0800)
SCCS-vsn: sys/pmax/dev/if_le.c 7.4

usr/src/sys/pmax/dev/if_le.c

index ee3aeb6..3c47239 100644 (file)
@@ -7,7 +7,7 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)if_le.c     7.3 (Berkeley) %G%
+ *     @(#)if_le.c     7.4 (Berkeley) %G%
  */
 
 #include "le.h"
  */
 
 #include "le.h"
@@ -598,8 +598,8 @@ leread(unit, buf, len)
                resid = ntohs(sbuf[1]);
 #endif
 #ifdef DS5000
                resid = ntohs(sbuf[1]);
 #endif
 #ifdef DS5000
-               et.ether_type = ntohs((u_short *)(buf + (sizeof(et) + off))[0]);
-               resid = ntohs((u_short *)(buf + (sizeof(et) + off))[1]);
+               et.ether_type = ntohs(((u_short *)(buf + (sizeof(et) + off)))[0]);
+               resid = ntohs(((u_short *)(buf + (sizeof(et) + off)))[1]);
 #endif
                if (off + resid > len)
                        return;         /* sanity */
 #endif
                if (off + resid > len)
                        return;         /* sanity */
@@ -953,6 +953,8 @@ lererror(unit, msg)
 {
        register struct le_softc *le = &le_softc[unit];
        register volatile struct lermd *rmd;
 {
        register struct le_softc *le = &le_softc[unit];
        register volatile struct lermd *rmd;
+       u_char eaddr[6];
+       char *cp;
        int len;
 
        if (!ledebug)
        int len;
 
        if (!ledebug)
@@ -960,11 +962,21 @@ lererror(unit, msg)
 
        rmd = &le->sc_r2->ler2_rmd[le->sc_rmd];
        len = rmd->rmd3;
 
        rmd = &le->sc_r2->ler2_rmd[le->sc_rmd];
        len = rmd->rmd3;
+       if (len > 11) {
+#ifdef DS3100
+               CopyFromBuffer((char *)&le->sc_r2->ler2_rbuf[le->sc_rmd][6],
+                       eaddr, sizeof(eaddr));
+#endif
+#ifdef DS5000
+               bcopy((char *)&le->sc_r2->ler2_rbuf[le->sc_rmd][6],
+                       eaddr, sizeof(eaddr));
+#endif
+               cp = ether_sprintf(eaddr);
+       } else
+               cp = "unknown";
        log(LOG_WARNING,
            "le%d: ierror(%s): from %s: buf=%d, len=%d, rmd1=%b\n",
        log(LOG_WARNING,
            "le%d: ierror(%s): from %s: buf=%d, len=%d, rmd1=%b\n",
-           unit, msg,
-           len > 11 ? ether_sprintf(&le->sc_r2->ler2_rbuf[le->sc_rmd][6]) : "unknown",
-           le->sc_rmd, len,
+           unit, msg, cp, le->sc_rmd, len,
            rmd->rmd1,
            "\20\20OWN\17ERR\16FRAM\15OFLO\14CRC\13RBUF\12STP\11ENP");
 }
            rmd->rmd1,
            "\20\20OWN\17ERR\16FRAM\15OFLO\14CRC\13RBUF\12STP\11ENP");
 }
@@ -974,6 +986,8 @@ lexerror(unit)
 {
        register struct le_softc *le = &le_softc[unit];
        register volatile struct letmd *tmd;
 {
        register struct le_softc *le = &le_softc[unit];
        register volatile struct letmd *tmd;
+       u_char eaddr[6];
+       char *cp;
        int len;
 
        if (!ledebug)
        int len;
 
        if (!ledebug)
@@ -981,11 +995,21 @@ lexerror(unit)
 
        tmd = le->sc_r2->ler2_tmd;
        len = -tmd->tmd2;
 
        tmd = le->sc_r2->ler2_tmd;
        len = -tmd->tmd2;
+       if (len > 5) {
+#ifdef DS3100
+               CopyFromBuffer((char *)&le->sc_r2->ler2_tbuf[le->sc_tmd][0],
+                       eaddr, sizeof(eaddr));
+#endif
+#ifdef DS5000
+               bcopy((char *)&le->sc_r2->ler2_tbuf[le->sc_tmd][0],
+                       eaddr, sizeof(eaddr));
+#endif
+               cp = ether_sprintf(eaddr);
+       } else
+               cp = "unknown";
        log(LOG_WARNING,
            "le%d: oerror: to %s: buf=%d, len=%d, tmd1=%b, tmd3=%b\n",
        log(LOG_WARNING,
            "le%d: oerror: to %s: buf=%d, len=%d, tmd1=%b, tmd3=%b\n",
-           unit,
-           len > 5 ? ether_sprintf(&le->sc_r2->ler2_tbuf[0][0]) : "unknown",
-           0, len,
+           unit, cp, le->sc_tmd, len,
            tmd->tmd1,
            "\20\20OWN\17ERR\16RES\15MORE\14ONE\13DEF\12STP\11ENP",
            tmd->tmd3,
            tmd->tmd1,
            "\20\20OWN\17ERR\16RES\15MORE\14ONE\13DEF\12STP\11ENP",
            tmd->tmd3,