]> git.proxmox.com Git - qemu.git/commitdiff
Revert "Revert "rtl8139: do the network/host communication only in normal operating...
authorAnthony Liguori <aliguori@us.ibm.com>
Tue, 5 Jun 2012 01:05:51 +0000 (09:05 +0800)
committerAnthony Liguori <aliguori@us.ibm.com>
Tue, 5 Jun 2012 01:05:51 +0000 (09:05 +0800)
This reverts commit 9c92bf7f6c3f675e60b8ba8a5287bb88ea1eac36.

Per Jason's request.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
hw/rtl8139.c

index 2413bc3d25944bcae6c9e55ebd40cbe571fc10bb..eb22d04fad829e89ffdd71d2bf6ec6b7f909e08f 100644 (file)
@@ -791,6 +791,9 @@ static int rtl8139_can_receive(VLANClientState *nc)
       return 1;
     if (!rtl8139_receiver_enabled(s))
       return 1;
+    /* network/host communication happens only in normal mode */
+    if ((s->Cfg9346 & Chip9346_op_mask) != Cfg9346_Normal)
+       return 0;
 
     if (rtl8139_cp_receiver_enabled(s)) {
         /* ??? Flow control not implemented in c+ mode.
@@ -833,6 +836,12 @@ static ssize_t rtl8139_do_receive(VLANClientState *nc, const uint8_t *buf, size_
         return -1;
     }
 
+    /* check whether we are in normal mode */
+    if ((s->Cfg9346 & Chip9346_op_mask) != Cfg9346_Normal) {
+        DPRINTF("not in normal op mode\n");
+        return -1;
+    }
+
     /* XXX: check this */
     if (s->RxConfig & AcceptAllPhys) {
         /* promiscuous: receive all */