Brief NE2K driver fix
authorPaul Pearce <pearce@eecs.berkeley.edu>
Wed, 24 Feb 2010 00:59:18 +0000 (16:59 -0800)
committerKevin Klues <klueska@ros-dev.(none)>
Wed, 24 Mar 2010 19:07:52 +0000 (12:07 -0700)
There there are some cases in which a new packet is signaled of zero length.
This was causing errors further up the stack, so I added a fix to deal with
this at the driver layer.

kern/arch/i386/ne2k.c
user/lwip/include/lwip/lwipopts.h

index 9ed4df2..6acd541 100644 (file)
@@ -393,6 +393,11 @@ void ne2k_handle_rx_packet() {
        }
        outb(ne2k_io_base_addr + NE2K_PG0_RW_BNRY, curr);
 
+       if (packet_len == 0) {
+               ne2k_debug("Triggered on an empty packet.\n");
+               return;
+       }
+
        spin_lock(&packet_buffer_lock);
 
        if (packet_buffer_count >= PACKET_BUFFER_SIZE) {
index dbbf195..acf1f0f 100644 (file)
@@ -7,6 +7,8 @@
 #define LWIP_DHCP 1
 #define LWIP_ICMP 1
 
+#define MEM_LIBC_MALLOC 1
+
 #define TCP_SND_BUF 1096
 
 #define TCPIP_MBOX_SIZE 4096
 #define DEFAULT_TCP_RECVMBOX_SIZE 4096
 #define DEFAULT_ACCEPTMBOX_SIZE 4096
 
-//#define ETHARP_DEBUG LWIP_DBG_ON
-//#define NETIF_DEBUG LWIP_DBG_ON
-//#define PBUF_DEBUG LWIP_DBG_ON
-//#define INET_DEBUG LWIP_DBG_ON
-//#define IP_DEBUG LWIP_DBG_ON
-//#define RAW_DEBUG LWIP_DBG_ON
-//#define UDP_DEBUG LWIP_DBG_ON
+#if 0
+#define ETHARP_DEBUG LWIP_DBG_ON
+#define NETIF_DEBUG LWIP_DBG_ON
+#define PBUF_DEBUG LWIP_DBG_ON
+#define INET_DEBUG LWIP_DBG_ON
+#define IP_DEBUG LWIP_DBG_ON
+#define RAW_DEBUG LWIP_DBG_ON
+#define UDP_DEBUG LWIP_DBG_ON
 
-//#define LWIP_DEBUG 1
+#define LWIP_DEBUG 1
+#endif