diff mbox

[v3.5,18/19] rtlwifi: slight optimization of addr compare

Message ID 52BC15EA.2020603@huawei.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Ding Tianhong Dec. 26, 2013, 11:41 a.m. UTC
Use possibly more efficient ether_addr_equal_unaligned
instead of memcmp.

Cc: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Chaoming Li <chaoming_li@realsil.com.cn>
Cc: John W. Linville <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
---
 drivers/net/wireless/rtlwifi/cam.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Sergei Shtylyov Dec. 26, 2013, 12:47 p.m. UTC | #1
Hello.

On 26-12-2013 15:41, Ding Tianhong wrote:

> Use possibly more efficient ether_addr_equal_unaligned
> instead of memcmp.

> Cc: Larry Finger <Larry.Finger@lwfinger.net>
> Cc: Chaoming Li <chaoming_li@realsil.com.cn>
> Cc: John W. Linville <linville@tuxdriver.com>
> Cc: linux-wireless@vger.kernel.org
> Cc: netdev@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Weilong Chen <chenweilong@huawei.com>
> Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
> ---
>   drivers/net/wireless/rtlwifi/cam.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)

> diff --git a/drivers/net/wireless/rtlwifi/cam.c b/drivers/net/wireless/rtlwifi/cam.c
> index 0e510f7..0276153 100644
> --- a/drivers/net/wireless/rtlwifi/cam.c
> +++ b/drivers/net/wireless/rtlwifi/cam.c
[...]
> @@ -335,7 +335,7 @@ void rtl_cam_del_entry(struct ieee80211_hw *hw, u8 *sta_addr)
>   		addr = rtlpriv->sec.hwsec_cam_sta_addr[i];
>   		bitmap = (rtlpriv->sec.hwsec_cam_bitmap) >> i;
>   		if (((bitmap & BIT(0)) == BIT(0)) &&
> -		    (memcmp(addr, sta_addr, ETH_ALEN) == 0)) {
> +		    (ether_addr_equal_unaligned(addr, sta_addr))) {

    It's pointless to enclose function call in parens, again.

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
John W. Linville Jan. 6, 2014, 7:53 p.m. UTC | #2
On Thu, Dec 26, 2013 at 04:47:50PM +0400, Sergei Shtylyov wrote:
> Hello.
> 
> On 26-12-2013 15:41, Ding Tianhong wrote:
> 
> >Use possibly more efficient ether_addr_equal_unaligned
> >instead of memcmp.
> 
> >Cc: Larry Finger <Larry.Finger@lwfinger.net>
> >Cc: Chaoming Li <chaoming_li@realsil.com.cn>
> >Cc: John W. Linville <linville@tuxdriver.com>
> >Cc: linux-wireless@vger.kernel.org
> >Cc: netdev@vger.kernel.org
> >Cc: linux-kernel@vger.kernel.org
> >Signed-off-by: Weilong Chen <chenweilong@huawei.com>
> >Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
> >---
> >  drivers/net/wireless/rtlwifi/cam.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> >diff --git a/drivers/net/wireless/rtlwifi/cam.c b/drivers/net/wireless/rtlwifi/cam.c
> >index 0e510f7..0276153 100644
> >--- a/drivers/net/wireless/rtlwifi/cam.c
> >+++ b/drivers/net/wireless/rtlwifi/cam.c
> [...]
> >@@ -335,7 +335,7 @@ void rtl_cam_del_entry(struct ieee80211_hw *hw, u8 *sta_addr)
> >  		addr = rtlpriv->sec.hwsec_cam_sta_addr[i];
> >  		bitmap = (rtlpriv->sec.hwsec_cam_bitmap) >> i;
> >  		if (((bitmap & BIT(0)) == BIT(0)) &&
> >-		    (memcmp(addr, sta_addr, ETH_ALEN) == 0)) {
> >+		    (ether_addr_equal_unaligned(addr, sta_addr))) {
> 
>    It's pointless to enclose function call in parens, again.

I'll correct that issue when merging the patch.
John W. Linville Jan. 6, 2014, 8:51 p.m. UTC | #3
On Mon, Jan 06, 2014 at 02:53:02PM -0500, John W. Linville wrote:
> On Thu, Dec 26, 2013 at 04:47:50PM +0400, Sergei Shtylyov wrote:
> > Hello.
> > 
> > On 26-12-2013 15:41, Ding Tianhong wrote:
> > 
> > >Use possibly more efficient ether_addr_equal_unaligned
> > >instead of memcmp.
> > 
> > >Cc: Larry Finger <Larry.Finger@lwfinger.net>
> > >Cc: Chaoming Li <chaoming_li@realsil.com.cn>
> > >Cc: John W. Linville <linville@tuxdriver.com>
> > >Cc: linux-wireless@vger.kernel.org
> > >Cc: netdev@vger.kernel.org
> > >Cc: linux-kernel@vger.kernel.org
> > >Signed-off-by: Weilong Chen <chenweilong@huawei.com>
> > >Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
> > >---
> > >  drivers/net/wireless/rtlwifi/cam.c | 4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > >diff --git a/drivers/net/wireless/rtlwifi/cam.c b/drivers/net/wireless/rtlwifi/cam.c
> > >index 0e510f7..0276153 100644
> > >--- a/drivers/net/wireless/rtlwifi/cam.c
> > >+++ b/drivers/net/wireless/rtlwifi/cam.c
> > [...]
> > >@@ -335,7 +335,7 @@ void rtl_cam_del_entry(struct ieee80211_hw *hw, u8 *sta_addr)
> > >  		addr = rtlpriv->sec.hwsec_cam_sta_addr[i];
> > >  		bitmap = (rtlpriv->sec.hwsec_cam_bitmap) >> i;
> > >  		if (((bitmap & BIT(0)) == BIT(0)) &&
> > >-		    (memcmp(addr, sta_addr, ETH_ALEN) == 0)) {
> > >+		    (ether_addr_equal_unaligned(addr, sta_addr))) {
> > 
> >    It's pointless to enclose function call in parens, again.
> 
> I'll correct that issue when merging the patch.

Well, that was the plan...  But since ether_addr_equal_unaligned
isn't in the wireless trees at the moment, it will have to wait or go
through another tree that has that definition.  Feel free to respin
with the extra parenthesis removed...

John
diff mbox

Patch

diff --git a/drivers/net/wireless/rtlwifi/cam.c b/drivers/net/wireless/rtlwifi/cam.c
index 0e510f7..0276153 100644
--- a/drivers/net/wireless/rtlwifi/cam.c
+++ b/drivers/net/wireless/rtlwifi/cam.c
@@ -295,7 +295,7 @@  u8 rtl_cam_get_free_entry(struct ieee80211_hw *hw, u8 *sta_addr)
 	/* Does STA already exist? */
 	for (i = 4; i < TOTAL_CAM_ENTRY; i++) {
 		addr = rtlpriv->sec.hwsec_cam_sta_addr[i];
-		if (memcmp(addr, sta_addr, ETH_ALEN) == 0)
+		if (ether_addr_equal_unaligned(addr, sta_addr))
 			return i;
 	}
 	/* Get a free CAM entry. */
@@ -335,7 +335,7 @@  void rtl_cam_del_entry(struct ieee80211_hw *hw, u8 *sta_addr)
 		addr = rtlpriv->sec.hwsec_cam_sta_addr[i];
 		bitmap = (rtlpriv->sec.hwsec_cam_bitmap) >> i;
 		if (((bitmap & BIT(0)) == BIT(0)) &&
-		    (memcmp(addr, sta_addr, ETH_ALEN) == 0)) {
+		    (ether_addr_equal_unaligned(addr, sta_addr))) {
 			/* Remove from HW Security CAM */
 			eth_zero_addr(rtlpriv->sec.hwsec_cam_sta_addr[i]);
 			rtlpriv->sec.hwsec_cam_bitmap &= ~(BIT(0) << i);