When stsp changed bwi_encap() for 30 bit addresses in rev 1.106 code
authorjsg <jsg@openbsd.org>
Sun, 3 Aug 2014 14:23:59 +0000 (14:23 +0000)
committerjsg <jsg@openbsd.org>
Sun, 3 Aug 2014 14:23:59 +0000 (14:23 +0000)
that used to always initialise the error variable is no longer run.

And at the end of bwi_encap() there is:

if (error)
m_freem(m);
return (error);

Fixing this prevents packet loss stsp was seeing.

ok stsp@ miod@ deraadt@

sys/dev/ic/bwi.c

index 80d1ef7..ff33df7 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: bwi.c,v 1.107 2014/07/22 13:12:11 mpi Exp $   */
+/*     $OpenBSD: bwi.c,v 1.108 2014/08/03 14:23:59 jsg Exp $   */
 
 /*
  * Copyright (c) 2007 The DragonFly Project.  All rights reserved.
@@ -8946,7 +8946,7 @@ bwi_encap(struct bwi_softc *sc, int idx, struct mbuf *m,
        uint32_t mac_ctrl;
        uint16_t phy_ctrl;
        bus_addr_t paddr;
-       int pkt_len, error;
+       int pkt_len, error = 0;
 #if 0
        const uint8_t *p;
        int i;