Message ID | 1503065708-28277-4-git-send-email-mark.cave-ayland@ilande.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 08/18/2017 11:15 AM, Mark Cave-Ayland wrote: > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > --- > hw/net/pcnet.c | 16 +--------------- > 1 file changed, 1 insertion(+), 15 deletions(-) > > diff --git a/hw/net/pcnet.c b/hw/net/pcnet.c > index 6544553..c050993 100644 > --- a/hw/net/pcnet.c > +++ b/hw/net/pcnet.c > @@ -522,23 +522,9 @@ static inline void pcnet_rmd_store(PCNetState *s, struct pcnet_RMD *rmd, > be16_to_cpu(hdr->ether_type)); \ > } while (0) > > -#define MULTICAST_FILTER_LEN 8 > - > static inline uint32_t lnc_mchash(const uint8_t *ether_addr) > { > -#define LNC_POLYNOMIAL 0xEDB88320UL > - uint32_t crc = 0xFFFFFFFF; > - int idx, bit; > - uint8_t data; > - > - for (idx = 0; idx < 6; idx++) { > - for (data = *ether_addr++, bit = 0; bit < MULTICAST_FILTER_LEN; bit++) { > - crc = (crc >> 1) ^ (((crc ^ data) & 1) ? LNC_POLYNOMIAL : 0); > - data >>= 1; > - } > - } > - return crc; > -#undef LNC_POLYNOMIAL > + return net_crc32_le(ether_addr, 6); using ETH_ALEN: Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > } > > #define CRC(crc, ch) (crc = (crc >> 8) ^ crctab[(crc ^ (ch)) & 0xff])
On 08/18/2017 01:59 PM, Philippe Mathieu-Daudé wrote: > On 08/18/2017 11:15 AM, Mark Cave-Ayland wrote: >> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> >> --- >> hw/net/pcnet.c | 16 +--------------- >> 1 file changed, 1 insertion(+), 15 deletions(-) >> >> diff --git a/hw/net/pcnet.c b/hw/net/pcnet.c >> index 6544553..c050993 100644 >> --- a/hw/net/pcnet.c >> +++ b/hw/net/pcnet.c >> @@ -522,23 +522,9 @@ static inline void pcnet_rmd_store(PCNetState *s, >> struct pcnet_RMD *rmd, >> be16_to_cpu(hdr->ether_type)); \ >> } while (0) >> -#define MULTICAST_FILTER_LEN 8 >> - >> static inline uint32_t lnc_mchash(const uint8_t *ether_addr) >> { >> -#define LNC_POLYNOMIAL 0xEDB88320UL >> - uint32_t crc = 0xFFFFFFFF; >> - int idx, bit; >> - uint8_t data; >> - >> - for (idx = 0; idx < 6; idx++) { >> - for (data = *ether_addr++, bit = 0; bit < >> MULTICAST_FILTER_LEN; bit++) { >> - crc = (crc >> 1) ^ (((crc ^ data) & 1) ? LNC_POLYNOMIAL : >> 0); >> - data >>= 1; >> - } >> - } >> - return crc; >> -#undef LNC_POLYNOMIAL >> + return net_crc32_le(ether_addr, 6); with previous suggestion from patch 1/4: return mac_crc32_le(ether_addr); > > using ETH_ALEN: > Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > >> } >> #define CRC(crc, ch) (crc = (crc >> 8) ^ crctab[(crc ^ (ch)) & >> 0xff]) >
diff --git a/hw/net/pcnet.c b/hw/net/pcnet.c index 6544553..c050993 100644 --- a/hw/net/pcnet.c +++ b/hw/net/pcnet.c @@ -522,23 +522,9 @@ static inline void pcnet_rmd_store(PCNetState *s, struct pcnet_RMD *rmd, be16_to_cpu(hdr->ether_type)); \ } while (0) -#define MULTICAST_FILTER_LEN 8 - static inline uint32_t lnc_mchash(const uint8_t *ether_addr) { -#define LNC_POLYNOMIAL 0xEDB88320UL - uint32_t crc = 0xFFFFFFFF; - int idx, bit; - uint8_t data; - - for (idx = 0; idx < 6; idx++) { - for (data = *ether_addr++, bit = 0; bit < MULTICAST_FILTER_LEN; bit++) { - crc = (crc >> 1) ^ (((crc ^ data) & 1) ? LNC_POLYNOMIAL : 0); - data >>= 1; - } - } - return crc; -#undef LNC_POLYNOMIAL + return net_crc32_le(ether_addr, 6); } #define CRC(crc, ch) (crc = (crc >> 8) ^ crctab[(crc ^ (ch)) & 0xff])
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> --- hw/net/pcnet.c | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-)