[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCHv3 06/13] sungem: fix multicast filter CRC calcul
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [PATCHv3 06/13] sungem: fix multicast filter CRC calculation |
Date: |
Fri, 15 Dec 2017 16:46:17 -0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 |
On 12/15/2017 03:41 PM, Mark Cave-Ayland wrote:
> From the Linux sungem driver, we know that the multicast filter CRC is
> implemented using ether_crc_le() which isn't the same as calling zlib's
> crc32() function (the zlib implementation requires a complemented initial
> value
> and also returns the complemented result).
>
> Fix the multicast filter by simply using the new net_crc32_le() function.
>
> Signed-off-by: Mark Cave-Ayland <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
> ---
> hw/net/sungem.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/hw/net/sungem.c b/hw/net/sungem.c
> index 6aa8d1117b..60f1e479f3 100644
> --- a/hw/net/sungem.c
> +++ b/hw/net/sungem.c
> @@ -11,12 +11,11 @@
> #include "hw/pci/pci.h"
> #include "qemu/log.h"
> #include "net/net.h"
> +#include "net/eth.h"
> #include "net/checksum.h"
> #include "hw/net/mii.h"
> #include "sysemu/sysemu.h"
> #include "trace.h"
> -/* For crc32 */
> -#include <zlib.h>
>
> #define TYPE_SUNGEM "sungem"
>
> @@ -595,7 +594,7 @@ static ssize_t sungem_receive(NetClientState *nc, const
> uint8_t *buf,
> }
>
> /* Get MAC crc */
> - mac_crc = crc32(~0, buf, 6);
> + mac_crc = net_crc32_le(buf, ETH_ALEN);
>
> /* Packet isn't for me ? */
> rx_cond = sungem_check_rx_mac(s, buf, mac_crc);
>
- [Qemu-devel] [PATCHv3 00/13] net: introduce common net_crc32() and net_crc32_le() functions, Mark Cave-Ayland, 2017/12/15
- [Qemu-devel] [PATCHv3 06/13] sungem: fix multicast filter CRC calculation, Mark Cave-Ayland, 2017/12/15
- Re: [Qemu-devel] [PATCHv3 06/13] sungem: fix multicast filter CRC calculation,
Philippe Mathieu-Daudé <=
- [Qemu-devel] [PATCHv3 02/13] net: introduce net_crc32_le() function, Mark Cave-Ayland, 2017/12/15
- [Qemu-devel] [PATCHv3 01/13] net: move CRC32 calculation from compute_mcast_idx() into its own net_crc32() function, Mark Cave-Ayland, 2017/12/15
- [Qemu-devel] [PATCHv3 09/13] lan9118: use inline net_crc32() and bitshift instead of compute_mcast_idx(), Mark Cave-Ayland, 2017/12/15
- [Qemu-devel] [PATCHv3 08/13] opencores_eth: use inline net_crc32() and bitshift instead of compute_mcast_idx(), Mark Cave-Ayland, 2017/12/15
- [Qemu-devel] [PATCHv3 07/13] eepro100: use inline net_crc32() and bitshift instead of compute_mcast_idx(), Mark Cave-Ayland, 2017/12/15
- [Qemu-devel] [PATCHv3 03/13] pcnet: switch pcnet over to use net_crc32_le(), Mark Cave-Ayland, 2017/12/15
- [Qemu-devel] [PATCHv3 04/13] eepro100: switch eepro100 e100_compute_mcast_idx() over to use net_crc32(), Mark Cave-Ayland, 2017/12/15
- [Qemu-devel] [PATCHv3 05/13] sunhme: switch sunhme over to use net_crc32_le(), Mark Cave-Ayland, 2017/12/15
- [Qemu-devel] [PATCHv3 12/13] rtl8139: use inline net_crc32() and bitshift instead of compute_mcast_idx(), Mark Cave-Ayland, 2017/12/15