Commit a134321e authored by erik-smit's avatar erik-smit Committed by Jason Wang
Browse files

ftgmac100: fix dblac write test



The test of the write of the dblac register was testing the old value
instead of the new value. This would accept the write of an invalid value
but subsequently refuse any following valid writes.

Signed-off-by: default avatarerik-smit <erik.lucas.smit@gmail.com>
Reviewed-by: default avatarCédric Le Goater <clg@kaod.org>
Signed-off-by: default avatarJason Wang <jasowang@redhat.com>
parent e7b347d0
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -810,16 +810,18 @@ static void ftgmac100_write(void *opaque, hwaddr addr,
        s->phydata = value & 0xffff;
        break;
    case FTGMAC100_DBLAC: /* DMA Burst Length and Arbitration Control */
        if (FTGMAC100_DBLAC_TXDES_SIZE(s->dblac) < sizeof(FTGMAC100Desc)) {
        if (FTGMAC100_DBLAC_TXDES_SIZE(value) < sizeof(FTGMAC100Desc)) {
            qemu_log_mask(LOG_GUEST_ERROR,
                          "%s: transmit descriptor too small : %d bytes\n",
                          __func__, FTGMAC100_DBLAC_TXDES_SIZE(s->dblac));
                          "%s: transmit descriptor too small: %" PRIx64
                          " bytes\n", __func__,
                          FTGMAC100_DBLAC_TXDES_SIZE(value));
            break;
        }
        if (FTGMAC100_DBLAC_RXDES_SIZE(s->dblac) < sizeof(FTGMAC100Desc)) {
        if (FTGMAC100_DBLAC_RXDES_SIZE(value) < sizeof(FTGMAC100Desc)) {
            qemu_log_mask(LOG_GUEST_ERROR,
                          "%s: receive descriptor too small : %d bytes\n",
                          __func__, FTGMAC100_DBLAC_RXDES_SIZE(s->dblac));
                          "%s: receive descriptor too small : %" PRIx64
                          " bytes\n", __func__,
                          FTGMAC100_DBLAC_RXDES_SIZE(value));
            break;
        }
        s->dblac = value;