From 9c92bf7f6c3f675e60b8ba8a5287bb88ea1eac36 Mon Sep 17 00:00:00 2001 From: Jason Wang Date: Thu, 10 May 2012 16:37:22 +0800 Subject: [PATCH] Revert "rtl8139: do the network/host communication only in normal operating mode" This reverts commit ff71f2e8cacefae99179993204172bc65e4303df. This is because the linux 8139cp driver would leave the card in "Config Register Write Enable" mode after the eeprom were read or write ( which is unexpected in the spec ). Also a physical 8139 card can still DMA into host memory in modes other than Normal mode, so we need revert this commit to align with the behavior of physical card. The issue of 8139cp driver should be fixed in linux seperately. Signed-off-by: Jason Wang Signed-off-by: Anthony Liguori --- hw/rtl8139.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/hw/rtl8139.c b/hw/rtl8139.c index eb22d04fa..2413bc3d2 100644 --- a/hw/rtl8139.c +++ b/hw/rtl8139.c @@ -791,9 +791,6 @@ 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. @@ -836,12 +833,6 @@ 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 */ -- 2.39.2