Use possibly more efficient ether_addr_equal
instead of memcmp.

Cc: Mauro Carvalho Chehab <m.che...@samsung.com>
Cc: linux-me...@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Yang Yingliang <yangyingli...@huawei.com>
Signed-off-by: Ding Tianhong <dingtianh...@huawei.com>
Acked-by: Mauro Carvalho Chehab <m.che...@samsung.com>
---
 drivers/media/dvb-core/dvb_net.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/media/dvb-core/dvb_net.c b/drivers/media/dvb-core/dvb_net.c
index f91c80c..8a86b30 100644
--- a/drivers/media/dvb-core/dvb_net.c
+++ b/drivers/media/dvb-core/dvb_net.c
@@ -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(eth->h_dest,dev->broadcast))
                        skb->pkt_type=PACKET_BROADCAST;
                else
                        skb->pkt_type=PACKET_MULTICAST;
@@ -674,11 +674,13 @@ 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(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(priv->ule_skb->data,
+                                                                               
              priv->multi_macs[i]); i++)
                                                                                
;
                                                                        if (i 
== priv->multi_num)
                                                                                
drop = 1;
@@ -688,7 +690,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(priv->ule_skb->data, dev->dev_addr))
                                                        drop = 1;
                                                /* else: destination address 
matches the MAC address of our receiver device */
                                        }
-- 
1.8.0


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to