Skip to contentSkip to conversation

ozwpan: slight optimization of addr compare

PATCH In review Ding Tianhong 2 participants 2 messages Jan 8, 2014

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 8/19 ozwpan: slight optimization of addr compare

Use possibly more efficient ether_addr_equal
instead of memcmp.

---
 drivers/staging/ozwpan/ozcdev.c  | 2 +-
 drivers/staging/ozwpan/ozproto.c | 5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)
drivers/staging/ozwpan/ozcdev.c +1 -1
index 6ce0af9..c363f66 100644
@@ -448,7 +448,7 @@ int oz_cdev_start(struct oz_pd *pd, int resume)
 	}
 	spin_lock(&g_cdev.lock);
 	if ((g_cdev.active_pd == NULL) &&
-		(memcmp(pd->mac_addr, g_cdev.active_addr, ETH_ALEN) == 0)) {
+		ether_addr_equal(pd->mac_addr, g_cdev.active_addr)) {
 		oz_pd_get(pd);
 		g_cdev.active_pd = pd;
 		oz_dbg(ON, "Active PD arrived\n");
drivers/staging/ozwpan/ozproto.c +3 -2
index 88714ec..19a2521 100644
@@ -9,6 +9,7 @@
 #include <linux/timer.h>
 #include <linux/sched.h>
 #include <linux/netdevice.h>
+#include <linux/etherdevice.h>
 #include <linux/errno.h>
 #include <linux/ieee80211.h>
 #include "ozdbg.h"
@@ -180,7 +181,7 @@ static struct oz_pd *oz_connect_req(struct oz_pd *cur_pd, struct oz_elt *elt,
 		spin_lock_bh(&g_polling_lock);
 		list_for_each(e, &g_pd_list) {
 			pd2 = container_of(e, struct oz_pd, link);
-			if (memcmp(pd2->mac_addr, pd_addr, ETH_ALEN) == 0) {
+			if (ether_addr_equal(pd2->mac_addr, pd_addr)) {
 				free_pd = pd;
 				pd = pd2;
 				break;
@@ -597,7 +598,7 @@ struct oz_pd *oz_pd_find(const u8 *mac_addr)
 	spin_lock_bh(&g_polling_lock);
 	list_for_each(e, &g_pd_list) {
 		pd = container_of(e, struct oz_pd, link);
-		if (memcmp(pd->mac_addr, mac_addr, ETH_ALEN) == 0) {
+		if (ether_addr_equal(pd->mac_addr, mac_addr)) {
 			atomic_inc(&pd->ref_count);
 			spin_unlock_bh(&g_polling_lock);
 			return pd;
Signature · 1 line
1.8.0
Acked-by on v1 8/19
#1 lore raw
Quoted 49 lines · Ding Tianhong

Use possibly more efficient ether_addr_equal
instead of memcmp.

---
  drivers/staging/ozwpan/ozcdev.c  | 2 +-
  drivers/staging/ozwpan/ozproto.c | 5 +++--
  2 files changed, 4 insertions(+), 3 deletions(-)
drivers/staging/ozwpan/ozcdev.c +1 -1
index 6ce0af9..c363f66 100644
@@ -448,7 +448,7 @@ int oz_cdev_start(struct oz_pd *pd, int resume)
  	}
  	spin_lock(&g_cdev.lock);
  	if ((g_cdev.active_pd == NULL) &&
-		(memcmp(pd->mac_addr, g_cdev.active_addr, ETH_ALEN) == 0)) {
+		ether_addr_equal(pd->mac_addr, g_cdev.active_addr)) {
  		oz_pd_get(pd);
  		g_cdev.active_pd = pd;
  		oz_dbg(ON, "Active PD arrived\n");
drivers/staging/ozwpan/ozproto.c +2 -1
index 88714ec..19a2521 100644
@@ -9,6 +9,7 @@
  #include <linux/timer.h>
  #include <linux/sched.h>
  #include <linux/netdevice.h>
+#include <linux/etherdevice.h>
  #include <linux/errno.h>
  #include <linux/ieee80211.h>
  #include "ozdbg.h"
@@ -180,7 +181,7 @@ static struct oz_pd *oz_connect_req(struct oz_pd *cur_pd, struct oz_elt *elt,
  		spin_lock_bh(&g_polling_lock);
  		list_for_each(e, &g_pd_list) {
  			pd2 = container_of(e, struct oz_pd, link);
-			if (memcmp(pd2->mac_addr, pd_addr, ETH_ALEN) == 0) {
+			if (ether_addr_equal(pd2->mac_addr, pd_addr)) {
  				free_pd = pd;
  				pd = pd2;
  				break;

drivers/staging/ozwpan/ozproto.c struct oz_pd *oz_pd_find(const u8 *mac_addr) · line 604

Quoted 8 lines
drivers/staging/ozwpan/ozproto.c +1 -1
@@ -597,7 +598,7 @@ struct oz_pd *oz_pd_find(const u8 *mac_addr)
  	spin_lock_bh(&g_polling_lock);
  	list_for_each(e, &g_pd_list) {
  		pd = container_of(e, struct oz_pd, link);
-		if (memcmp(pd->mac_addr, mac_addr, ETH_ALEN) == 0) {
+		if (ether_addr_equal(pd->mac_addr, mac_addr)) {
  			atomic_inc(&pd->ref_count);
  			spin_unlock_bh(&g_polling_lock);
  			return pd;

Thanks,

Signature · 2 lines
Regards,
Rupesh Gujare