Use the recently added and possibly more efficient ether_addr_equal_unaligned to instead of memcmp.
Cc: Marek Lindner mareklindner@neomailbox.ch Cc: Simon Wunderlich sw@simonwunderlich.de Cc: Antonio Quartulli antonio@meshcoding.com Cc: "David S. Miller" davem@davemloft.net Cc: b.a.t.m.a.n@lists.open-mesh.org Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Tan Xiaojun tanxiaojun@huawei.com Signed-off-by: Ding Tianhong dingtianhong@huawei.com --- net/batman-adv/originator.c | 2 +- net/batman-adv/translation-table.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/batman-adv/originator.c b/net/batman-adv/originator.c index 8ab1434..0490a26 100644 --- a/net/batman-adv/originator.c +++ b/net/batman-adv/originator.c @@ -41,7 +41,7 @@ int batadv_compare_orig(const struct hlist_node *node, const void *data2) const void *data1 = container_of(node, struct batadv_orig_node, hash_entry);
- return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0); + return ether_addr_equal_unaligned(data1, data2) ? 1 : 0; }
/** diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c index 4add57d..5e66d4b 100644 --- a/net/batman-adv/translation-table.c +++ b/net/batman-adv/translation-table.c @@ -51,7 +51,7 @@ static int batadv_compare_tt(const struct hlist_node *node, const void *data2) const void *data1 = container_of(node, struct batadv_tt_common_entry, hash_entry);
- return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0); + return ether_addr_equal_unaligned(data1, data2) ? 1 : 0; }
/**
On 23/12/13 06:10, Ding Tianhong wrote:
[...]
--- a/net/batman-adv/originator.c +++ b/net/batman-adv/originator.c @@ -41,7 +41,7 @@ int batadv_compare_orig(const struct hlist_node *node, const void *data2) const void *data1 = container_of(node, struct batadv_orig_node, hash_entry);
- return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0);
- return ether_addr_equal_unaligned(data1, data2) ? 1 : 0;
ether_addr_equal_unaligned() returns a bool value which is implicitly converted to 1 or 0: there is no need for the ternary if anymore.
}
/** diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c index 4add57d..5e66d4b 100644 --- a/net/batman-adv/translation-table.c +++ b/net/batman-adv/translation-table.c @@ -51,7 +51,7 @@ static int batadv_compare_tt(const struct hlist_node *node, const void *data2) const void *data1 = container_of(node, struct batadv_tt_common_entry, hash_entry);
- return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0);
- return ether_addr_equal_unaligned(data1, data2) ? 1 : 0;
same here
Moreover, include linux/etherdevice.h in both files as explained in point 1) of Documentation/SubmitChecklist
Thanks.
Cheers,
On Mon, 2013-12-23 at 09:46 +0100, Antonio Quartulli wrote:
On 23/12/13 06:10, Ding Tianhong wrote:
[...]
--- a/net/batman-adv/originator.c +++ b/net/batman-adv/originator.c @@ -41,7 +41,7 @@ int batadv_compare_orig(const struct hlist_node *node, const void *data2) const void *data1 = container_of(node, struct batadv_orig_node, hash_entry);
- return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0);
- return ether_addr_equal_unaligned(data1, data2) ? 1 : 0;
ether_addr_equal_unaligned() returns a bool value which is implicitly converted to 1 or 0: there is no need for the ternary if anymore.
Should these use batadv_compare_eth?
On 23/12/13 09:59, Joe Perches wrote:
On Mon, 2013-12-23 at 09:46 +0100, Antonio Quartulli wrote:
On 23/12/13 06:10, Ding Tianhong wrote:
[...]
--- a/net/batman-adv/originator.c +++ b/net/batman-adv/originator.c @@ -41,7 +41,7 @@ int batadv_compare_orig(const struct hlist_node *node, const void *data2) const void *data1 = container_of(node, struct batadv_orig_node, hash_entry);
- return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0);
- return ether_addr_equal_unaligned(data1, data2) ? 1 : 0;
ether_addr_equal_unaligned() returns a bool value which is implicitly converted to 1 or 0: there is no need for the ternary if anymore.
Should these use batadv_compare_eth?
That makes sense.
I was wondering whether we should get rid of batadv_compare_eth() at all and always use ether_addr_equal_unaligned(). The "unaligned explanation" is part of the name, so there is no need to use a commented helper anymore.
However, until that moment it is better to get stuck to batadv_compare_eth().
Ding, can you also follow Joe's suggestion for this patch please?
Thanks,
On 2013/12/23 17:06, Antonio Quartulli wrote:
On 23/12/13 09:59, Joe Perches wrote:
On Mon, 2013-12-23 at 09:46 +0100, Antonio Quartulli wrote:
On 23/12/13 06:10, Ding Tianhong wrote:
[...]
--- a/net/batman-adv/originator.c +++ b/net/batman-adv/originator.c @@ -41,7 +41,7 @@ int batadv_compare_orig(const struct hlist_node *node, const void *data2) const void *data1 = container_of(node, struct batadv_orig_node, hash_entry);
- return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0);
- return ether_addr_equal_unaligned(data1, data2) ? 1 : 0;
ether_addr_equal_unaligned() returns a bool value which is implicitly converted to 1 or 0: there is no need for the ternary if anymore.
Should these use batadv_compare_eth?
That makes sense.
I was wondering whether we should get rid of batadv_compare_eth() at all and always use ether_addr_equal_unaligned(). The "unaligned explanation" is part of the name, so there is no need to use a commented helper anymore.
However, until that moment it is better to get stuck to batadv_compare_eth().
Ding, can you also follow Joe's suggestion for this patch please?
Thanks,
Ok
On 2013/12/23 16:59, Joe Perches wrote:
On Mon, 2013-12-23 at 09:46 +0100, Antonio Quartulli wrote:
On 23/12/13 06:10, Ding Tianhong wrote:
[...]
--- a/net/batman-adv/originator.c +++ b/net/batman-adv/originator.c @@ -41,7 +41,7 @@ int batadv_compare_orig(const struct hlist_node *node, const void *data2) const void *data1 = container_of(node, struct batadv_orig_node, hash_entry);
- return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0);
- return ether_addr_equal_unaligned(data1, data2) ? 1 : 0;
ether_addr_equal_unaligned() returns a bool value which is implicitly converted to 1 or 0: there is no need for the ternary if anymore.
Should these use batadv_compare_eth?
Yes, and need to remove the checks for return value.
Regards Ding
On 2013/12/23 16:46, Antonio Quartulli wrote:
On 23/12/13 06:10, Ding Tianhong wrote:
[...]
--- a/net/batman-adv/originator.c +++ b/net/batman-adv/originator.c @@ -41,7 +41,7 @@ int batadv_compare_orig(const struct hlist_node *node, const void *data2) const void *data1 = container_of(node, struct batadv_orig_node, hash_entry);
- return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0);
- return ether_addr_equal_unaligned(data1, data2) ? 1 : 0;
ether_addr_equal_unaligned() returns a bool value which is implicitly converted to 1 or 0: there is no need for the ternary if anymore.
}
/** diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c index 4add57d..5e66d4b 100644 --- a/net/batman-adv/translation-table.c +++ b/net/batman-adv/translation-table.c @@ -51,7 +51,7 @@ static int batadv_compare_tt(const struct hlist_node *node, const void *data2) const void *data1 = container_of(node, struct batadv_tt_common_entry, hash_entry);
- return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0);
- return ether_addr_equal_unaligned(data1, data2) ? 1 : 0;
same here
Moreover, include linux/etherdevice.h in both files as explained in point 1) of Documentation/SubmitChecklist
Thanks.
Cheers,
Yes, thanks a lot, fix it soon.
Regards Ding
b.a.t.m.a.n@lists.open-mesh.org