media: dvb_core: slight optimization of addr compare
PATCH 10/21 media: dvb_core: slight optimization of addr compare
Use the recently added and possibly more efficient ether_addr_equal_unaligned to instead of memcmp.
Cc Mauro Carvalho Chehab <[email protected]>
Signed-off-by Yang Yingliang <[email protected]>
Signed-off-by Ding Tianhong <[email protected]>
--- drivers/media/dvb-core/dvb_net.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
drivers/media/dvb-core/dvb_net.c +5 -5
@@ -179,7 +179,7 @@ static __be16 dvb_net_eth_type_trans(struct sk_buff *skb, eth =eth_hdr (skb);if (*eth->h_dest &1 ) { -if (memcmp (eth->h_dest,dev->broadcast,ETH_ALEN )==0 ) +if (ether_addr_equal_unaligned (eth->h_dest, dev->broadcast)) skb->pkt_type=PACKET_BROADCAST ;else skb->pkt_type=PACKET_MULTICAST ;
@@ -674,11 +674,11 @@ static void dvb_net_ule( struct net_device *dev, const u8 *buf, size_t buf_len )if (priv->rx_mode !=RX_MODE_PROMISC ) {if (priv->ule_skb->data[0 ] &0x01 ) {/* multicast or broadcast */ -if (memcmp (priv->ule_skb->data, bc_addr,ETH_ALEN )) { +if (!ether_addr_equal_unaligned (priv->ule_skb->data, bc_addr)) {/* multicast */ if (priv->rx_mode ==RX_MODE_MULTI ) {int i; -for (i =0 ; i < priv->multi_num &&memcmp (priv->ule_skb->data, priv->multi_macs[i],ETH_ALEN ); i++) +for (i =0 ; i < priv->multi_num && !ether_addr_equal_unaligned (priv->ule_skb->data, priv->multi_macs[i]); i++) ;if (i == priv->multi_num) drop =1 ;
@@ -688,7 +688,7 @@ static void dvb_net_ule( struct net_device *dev, const u8 *buf, size_t buf_len ) }/* else: broadcast */ } -else if (memcmp (priv->ule_skb->data, dev->dev_addr,ETH_ALEN )) +else if (!ether_addr_equal_unaligned (priv->ule_skb->data, dev->dev_addr)) drop =1 ;/* else: destination address matches the MAC address of our receiver device */ }
@@ -837,7 +837,7 @@ static void dvb_net_sec(struct net_device *dev, }if (pkt[5 ] &0x02 ) {/* handle LLC/SNAP, see rfc-1042 */ -if (pkt_len <24 ||memcmp (&pkt[12 ],"\xaa\xaa\x03\0\0\0" ,6 )) { +if (pkt_len <24 || !ether_addr_equal_unaligned (&pkt[12 ],"\xaa\xaa\x03\0\0\0" )) { stats->rx_dropped++;return ; }
Signature · 1 line
1.8.0
Em Mon, 23 Dec 2013 13:10:35 +0800
Ding Tianhong <[email protected]> escreveu:
Quoted 2 lines
Use the recently added and possibly more efficient
ether_addr_equal_unalignedto instead of memcmp.
I'm ok with this change, but I prefer if you could merge it together with the other patches, as I don't have the patch that added ether_addr_equal_unaligned() on my tree yet.
Quoted 2 lines
Cc Mauro Carvalho Chehab <[email protected]>
Quoted 53 lines
Signed-off-by Yang Yingliang <[email protected]>Signed-off-by Ding Tianhong <[email protected]>--- drivers/media/dvb-core/dvb_net.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)drivers/media/dvb-core/dvb_net.c +5
-5@@ -179,7 +179,7 @@ static __be16 dvb_net_eth_type_trans(struct sk_buff *skb, eth =eth_hdr (skb);if (*eth->h_dest &1 ) { -if (memcmp (eth->h_dest,dev->broadcast,ETH_ALEN )==0 ) +if (ether_addr_equal_unaligned (eth->h_dest, dev->broadcast)) skb->pkt_type=PACKET_BROADCAST ;else skb->pkt_type=PACKET_MULTICAST ;@@ -674,11 +674,11 @@ static void dvb_net_ule( struct net_device *dev, const u8 *buf, size_t buf_len )if (priv->rx_mode !=RX_MODE_PROMISC ) {if (priv->ule_skb->data[0 ] &0x01 ) {/* multicast or broadcast */ -if (memcmp (priv->ule_skb->data, bc_addr,ETH_ALEN )) { +if (!ether_addr_equal_unaligned (priv->ule_skb->data, bc_addr)) {/* multicast */ if (priv->rx_mode ==RX_MODE_MULTI ) {int i; -for (i =0 ; i < priv->multi_num &&memcmp (priv->ule_skb->data, priv->multi_macs[i],ETH_ALEN ); i++) +for (i =0 ; i < priv->multi_num && !ether_addr_equal_unaligned (priv->ule_skb->data, priv->multi_macs[i]); i++) ;if (i == priv->multi_num) drop =1 ;@@ -688,7 +688,7 @@ static void dvb_net_ule( struct net_device *dev, const u8 *buf, size_t buf_len ) }/* else: broadcast */ } -else if (memcmp (priv->ule_skb->data, dev->dev_addr,ETH_ALEN )) +else if (!ether_addr_equal_unaligned (priv->ule_skb->data, dev->dev_addr)) drop =1 ;/* else: destination address matches the MAC address of our receiver device */ }@@ -837,7 +837,7 @@ static void dvb_net_sec(struct net_device *dev, }if (pkt[5 ] &0x02 ) {/* handle LLC/SNAP, see rfc-1042 */ -if (pkt_len <24 ||memcmp (&pkt[12 ],"\xaa\xaa\x03\0\0\0" ,6 )) { +if (pkt_len <24 || !ether_addr_equal_unaligned (&pkt[12 ],"\xaa\xaa\x03\0\0\0" )) { stats->rx_dropped++;return ; }
Signature · 2 lines
Cheers, Mauro