Commit 9c92bf7f authored by Jason Wang's avatar Jason Wang Committed by Anthony Liguori
Browse files

Revert "rtl8139: do the network/host communication only in normal operating mode"



This reverts commit ff71f2e8. 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: default avatarJason Wang <jasowang@redhat.com>
Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
parent 74f4d227
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -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 */