Re: [PATCH net-next v2 11/20] net: packetengines: slight optimization of addr

2013-12-29 Thread Ding Tianhong
On 2013/12/30 14:05, Joe Perches wrote:
> On Mon, 2013-12-30 at 10:39 +0800, Ding Tianhong wrote:
>> I don't understand packetengine NIC anymore, But I think the change is 
>> clearly,
>> as your said, the broadcast check is enough here, did you mean that?
>>
>>  !is_broadcast_ether_addr((u8 *)(le32_to_cpu(yp->rx_ring_dma) +
>>  entry * sizeof(struct 
>> yellowfin_desc)))
> 
> Not quite.  I meant this could be:
> 
>   u8 *addr = (u8 *)(unsigned long)le32_to_cpu(yp->rx_ring_dma) +
>   entry * 
> sizeof(struct yellowfin_desc);
> 
>   if (!ether_addr_equal(addr, dev->dev_addr) &&
>   !is_broadcast_ether_addr(addr)) {
>   etc...
> 
> but again, I think thus hardly matters and could just as well
> be left alone.
> 
> 

Ok, I will focus on ether_addr_equal in this patch, anymore will left alone. 
Thanks

Regards
Ding

> 
> 


--
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/


Re: [PATCH net-next v2 11/20] net: packetengines: slight optimization of addr

2013-12-29 Thread Joe Perches
On Mon, 2013-12-30 at 10:39 +0800, Ding Tianhong wrote:
> I don't understand packetengine NIC anymore, But I think the change is 
> clearly,
> as your said, the broadcast check is enough here, did you mean that?
> 
>   !is_broadcast_ether_addr((u8 *)(le32_to_cpu(yp->rx_ring_dma) +
>   entry * sizeof(struct 
> yellowfin_desc)))

Not quite.  I meant this could be:

u8 *addr = (u8 *)(unsigned long)le32_to_cpu(yp->rx_ring_dma) +
entry * 
sizeof(struct yellowfin_desc);

if (!ether_addr_equal(addr, dev->dev_addr) &&
!is_broadcast_ether_addr(addr)) {
etc...

but again, I think thus hardly matters and could just as well
be left alone.


--
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/


Re: [PATCH net-next v2 11/20] net: packetengines: slight optimization of addr

2013-12-29 Thread Ding Tianhong
On 2013/12/29 1:23, Joe Perches wrote:
> On Sat, 2013-12-28 at 23:18 +0800, Ding Tianhong wrote:
>> 于 2013/12/28 21:58, Sergei Shtylyov 写道:
>>> Hello.
>>>
>>> On 28-12-2013 10:17, Ding Tianhong wrote:
>>>
 Use possibly more efficient ether_addr_equal
 to instead of memcmp.
>>>
 Cc: "David S. Miller" 
 Signed-off-by: Ding Tianhong 
 ---
   drivers/net/ethernet/packetengines/yellowfin.c |   12 ++--
   1 files changed, 6 insertions(+), 6 deletions(-)
>>>
 diff --git a/drivers/net/ethernet/packetengines/yellowfin.c 
 b/drivers/net/ethernet/packetengines/yellowfin.c
 index d28593b..b83ac0e 100644
 --- a/drivers/net/ethernet/packetengines/yellowfin.c
 +++ b/drivers/net/ethernet/packetengines/yellowfin.c
 @@ -1097,12 +1097,12 @@ static int yellowfin_rx(struct net_device *dev)
   if (status2 & 0x80) dev->stats.rx_dropped++;
   #ifdef YF_PROTOTYPE/* Support for prototype hardware errata. */
   } else if ((yp->flags & HasMACAddrBug)  &&
 -memcmp(le32_to_cpu(yp->rx_ring_dma +
 -entry*sizeof(struct yellowfin_desc)),
 -dev->dev_addr, 6) != 0 &&
 -memcmp(le32_to_cpu(yp->rx_ring_dma +
 -entry*sizeof(struct yellowfin_desc)),
 -"\377\377\377\377\377\377", 6) != 0) {
 +!ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
 +  entry * sizeof(struct yellowfin_desc)),
 +  dev->dev_addr) &&
>>>
>>>Previous line was aligned correctly, the above line should start under 
>>> le32_to_cpu.
>>>
 +!ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
 +  entry * sizeof(struct yellowfin_desc)),
>>>
>>>Start the continuation lines under 'yp', please.
>>>
 +  "\377\377\377\377\377\377")) {
>>>
>>>This line should start under le32_to_cpu.
>>>
>>> WBR, Sergei
>>>
>>
>> Hi sergei:
>> you mean this way?
>>  !ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
>>entry * sizeof(struct yellowfin_desc)),
>>dev->dev_addr) &&
>>
>>  !ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
>>entry * sizeof(struct yellowfin_desc)),
>>"\377\377\377\377\377\377")) {
> 
> Does this really matter?
> Does anyone have a packetengine NIC anymore?
> 
> \377 octal is 0xff, so this is matching a broadcast address.
> is_broadcast_ether_addr(addr) would be appropriate.
> 
> So would using a temporary address.
> 
> u8 *addr = (u8 *)(unsigned long)le32_to_cpu(etc)
> 
> but the whole thing looks very suspect as an le32
> value could not be added to correctly on a
> big-endian arch anyway.
> 
> My guess is this was tested only on an x86 and
> it should be:
> 
>   u8 *addr = (u8 *)(unsigned long)(le32_to_cpu(yp->rx_ring_dma) +
>entry * sizeof(struct yellowfin_desc));
> 
> It maybe better just to leave these two alone.
> 

Hi Joe:

I don't understand packetengine NIC anymore, But I think the change is clearly,
as your said, the broadcast check is enough here, did you mean that?

!is_broadcast_ether_addr((u8 *)(le32_to_cpu(yp->rx_ring_dma) +
entry * sizeof(struct 
yellowfin_desc)))

Thanks

Regards
Ding

> 
> .
> 


--
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/


Re: [PATCH net-next v2 11/20] net: packetengines: slight optimization of addr

2013-12-29 Thread Ding Tianhong
On 2013/12/29 1:23, Joe Perches wrote:
 On Sat, 2013-12-28 at 23:18 +0800, Ding Tianhong wrote:
 于 2013/12/28 21:58, Sergei Shtylyov 写道:
 Hello.

 On 28-12-2013 10:17, Ding Tianhong wrote:

 Use possibly more efficient ether_addr_equal
 to instead of memcmp.

 Cc: David S. Miller da...@davemloft.net
 Signed-off-by: Ding Tianhong dingtianh...@huawei.com
 ---
   drivers/net/ethernet/packetengines/yellowfin.c |   12 ++--
   1 files changed, 6 insertions(+), 6 deletions(-)

 diff --git a/drivers/net/ethernet/packetengines/yellowfin.c 
 b/drivers/net/ethernet/packetengines/yellowfin.c
 index d28593b..b83ac0e 100644
 --- a/drivers/net/ethernet/packetengines/yellowfin.c
 +++ b/drivers/net/ethernet/packetengines/yellowfin.c
 @@ -1097,12 +1097,12 @@ static int yellowfin_rx(struct net_device *dev)
   if (status2  0x80) dev-stats.rx_dropped++;
   #ifdef YF_PROTOTYPE/* Support for prototype hardware errata. */
   } else if ((yp-flags  HasMACAddrBug)  
 -memcmp(le32_to_cpu(yp-rx_ring_dma +
 -entry*sizeof(struct yellowfin_desc)),
 -dev-dev_addr, 6) != 0 
 -memcmp(le32_to_cpu(yp-rx_ring_dma +
 -entry*sizeof(struct yellowfin_desc)),
 -\377\377\377\377\377\377, 6) != 0) {
 +!ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
 +  entry * sizeof(struct yellowfin_desc)),
 +  dev-dev_addr) 

Previous line was aligned correctly, the above line should start under 
 le32_to_cpu.

 +!ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
 +  entry * sizeof(struct yellowfin_desc)),

Start the continuation lines under 'yp', please.

 +  \377\377\377\377\377\377)) {

This line should start under le32_to_cpu.

 WBR, Sergei


 Hi sergei:
 you mean this way?
  !ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
entry * sizeof(struct yellowfin_desc)),
dev-dev_addr) 

  !ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
entry * sizeof(struct yellowfin_desc)),
\377\377\377\377\377\377)) {
 
 Does this really matter?
 Does anyone have a packetengine NIC anymore?
 
 \377 octal is 0xff, so this is matching a broadcast address.
 is_broadcast_ether_addr(addr) would be appropriate.
 
 So would using a temporary address.
 
 u8 *addr = (u8 *)(unsigned long)le32_to_cpu(etc)
 
 but the whole thing looks very suspect as an le32
 value could not be added to correctly on a
 big-endian arch anyway.
 
 My guess is this was tested only on an x86 and
 it should be:
 
   u8 *addr = (u8 *)(unsigned long)(le32_to_cpu(yp-rx_ring_dma) +
entry * sizeof(struct yellowfin_desc));
 
 It maybe better just to leave these two alone.
 

Hi Joe:

I don't understand packetengine NIC anymore, But I think the change is clearly,
as your said, the broadcast check is enough here, did you mean that?

!is_broadcast_ether_addr((u8 *)(le32_to_cpu(yp-rx_ring_dma) +
entry * sizeof(struct 
yellowfin_desc)))

Thanks

Regards
Ding

 
 .
 


--
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/


Re: [PATCH net-next v2 11/20] net: packetengines: slight optimization of addr

2013-12-29 Thread Joe Perches
On Mon, 2013-12-30 at 10:39 +0800, Ding Tianhong wrote:
 I don't understand packetengine NIC anymore, But I think the change is 
 clearly,
 as your said, the broadcast check is enough here, did you mean that?
 
   !is_broadcast_ether_addr((u8 *)(le32_to_cpu(yp-rx_ring_dma) +
   entry * sizeof(struct 
 yellowfin_desc)))

Not quite.  I meant this could be:

u8 *addr = (u8 *)(unsigned long)le32_to_cpu(yp-rx_ring_dma) +
entry * 
sizeof(struct yellowfin_desc);

if (!ether_addr_equal(addr, dev-dev_addr) 
!is_broadcast_ether_addr(addr)) {
etc...

but again, I think thus hardly matters and could just as well
be left alone.


--
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/


Re: [PATCH net-next v2 11/20] net: packetengines: slight optimization of addr

2013-12-29 Thread Ding Tianhong
On 2013/12/30 14:05, Joe Perches wrote:
 On Mon, 2013-12-30 at 10:39 +0800, Ding Tianhong wrote:
 I don't understand packetengine NIC anymore, But I think the change is 
 clearly,
 as your said, the broadcast check is enough here, did you mean that?

  !is_broadcast_ether_addr((u8 *)(le32_to_cpu(yp-rx_ring_dma) +
  entry * sizeof(struct 
 yellowfin_desc)))
 
 Not quite.  I meant this could be:
 
   u8 *addr = (u8 *)(unsigned long)le32_to_cpu(yp-rx_ring_dma) +
   entry * 
 sizeof(struct yellowfin_desc);
 
   if (!ether_addr_equal(addr, dev-dev_addr) 
   !is_broadcast_ether_addr(addr)) {
   etc...
 
 but again, I think thus hardly matters and could just as well
 be left alone.
 
 

Ok, I will focus on ether_addr_equal in this patch, anymore will left alone. 
Thanks

Regards
Ding

 
 


--
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/


Re: [PATCH net-next v2 11/20] net: packetengines: slight optimization of addr

2013-12-28 Thread Sergei Shtylyov

Hello.

On 12/28/2013 06:18 PM, Ding Tianhong wrote:


Use possibly more efficient ether_addr_equal
to instead of memcmp.



Cc: "David S. Miller" 
Signed-off-by: Ding Tianhong 
---
   drivers/net/ethernet/packetengines/yellowfin.c |   12 ++--
   1 files changed, 6 insertions(+), 6 deletions(-)



diff --git a/drivers/net/ethernet/packetengines/yellowfin.c 
b/drivers/net/ethernet/packetengines/yellowfin.c
index d28593b..b83ac0e 100644
--- a/drivers/net/ethernet/packetengines/yellowfin.c
+++ b/drivers/net/ethernet/packetengines/yellowfin.c
@@ -1097,12 +1097,12 @@ static int yellowfin_rx(struct net_device *dev)
   if (status2 & 0x80) dev->stats.rx_dropped++;
   #ifdef YF_PROTOTYPE/* Support for prototype hardware errata. */
   } else if ((yp->flags & HasMACAddrBug)  &&
-memcmp(le32_to_cpu(yp->rx_ring_dma +
-entry*sizeof(struct yellowfin_desc)),
-dev->dev_addr, 6) != 0 &&
-memcmp(le32_to_cpu(yp->rx_ring_dma +
-entry*sizeof(struct yellowfin_desc)),
-"\377\377\377\377\377\377", 6) != 0) {
+!ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
+  entry * sizeof(struct yellowfin_desc)),
+  dev->dev_addr) &&



Previous line was aligned correctly, the above line should start under 
le32_to_cpu.



+!ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
+  entry * sizeof(struct yellowfin_desc)),



Start the continuation lines under 'yp', please.



+  "\377\377\377\377\377\377")) {



This line should start under le32_to_cpu.



WBR, Sergei




Hi sergei:
you mean this way?
!ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
  entry * sizeof(struct yellowfin_desc)),
  dev->dev_addr) &&

!ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
  entry * sizeof(struct yellowfin_desc)),
  "\377\377\377\377\377\377")) {


   Yes, exactly.


Regards
Ding


WBR, Sergei

--
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/


Re: [PATCH net-next v2 11/20] net: packetengines: slight optimization of addr

2013-12-28 Thread Joe Perches
On Sat, 2013-12-28 at 23:18 +0800, Ding Tianhong wrote:
> 于 2013/12/28 21:58, Sergei Shtylyov 写道:
> > Hello.
> > 
> > On 28-12-2013 10:17, Ding Tianhong wrote:
> > 
> >> Use possibly more efficient ether_addr_equal
> >> to instead of memcmp.
> > 
> >> Cc: "David S. Miller" 
> >> Signed-off-by: Ding Tianhong 
> >> ---
> >>   drivers/net/ethernet/packetengines/yellowfin.c |   12 ++--
> >>   1 files changed, 6 insertions(+), 6 deletions(-)
> > 
> >> diff --git a/drivers/net/ethernet/packetengines/yellowfin.c 
> >> b/drivers/net/ethernet/packetengines/yellowfin.c
> >> index d28593b..b83ac0e 100644
> >> --- a/drivers/net/ethernet/packetengines/yellowfin.c
> >> +++ b/drivers/net/ethernet/packetengines/yellowfin.c
> >> @@ -1097,12 +1097,12 @@ static int yellowfin_rx(struct net_device *dev)
> >>   if (status2 & 0x80) dev->stats.rx_dropped++;
> >>   #ifdef YF_PROTOTYPE/* Support for prototype hardware errata. */
> >>   } else if ((yp->flags & HasMACAddrBug)  &&
> >> -memcmp(le32_to_cpu(yp->rx_ring_dma +
> >> -entry*sizeof(struct yellowfin_desc)),
> >> -dev->dev_addr, 6) != 0 &&
> >> -memcmp(le32_to_cpu(yp->rx_ring_dma +
> >> -entry*sizeof(struct yellowfin_desc)),
> >> -"\377\377\377\377\377\377", 6) != 0) {
> >> +!ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
> >> +  entry * sizeof(struct yellowfin_desc)),
> >> +  dev->dev_addr) &&
> > 
> >Previous line was aligned correctly, the above line should start under 
> > le32_to_cpu.
> > 
> >> +!ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
> >> +  entry * sizeof(struct yellowfin_desc)),
> > 
> >Start the continuation lines under 'yp', please.
> > 
> >> +  "\377\377\377\377\377\377")) {
> > 
> >This line should start under le32_to_cpu.
> > 
> > WBR, Sergei
> > 
> 
> Hi sergei:
> you mean this way?
>   !ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
> entry * sizeof(struct yellowfin_desc)),
> dev->dev_addr) &&
> 
>   !ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
> entry * sizeof(struct yellowfin_desc)),
> "\377\377\377\377\377\377")) {

Does this really matter?
Does anyone have a packetengine NIC anymore?

\377 octal is 0xff, so this is matching a broadcast address.
is_broadcast_ether_addr(addr) would be appropriate.

So would using a temporary address.

u8 *addr = (u8 *)(unsigned long)le32_to_cpu(etc)

but the whole thing looks very suspect as an le32
value could not be added to correctly on a
big-endian arch anyway.

My guess is this was tested only on an x86 and
it should be:

u8 *addr = (u8 *)(unsigned long)(le32_to_cpu(yp->rx_ring_dma) +
 entry * sizeof(struct yellowfin_desc));

It maybe better just to leave these two alone.

--
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/


Re: [PATCH net-next v2 11/20] net: packetengines: slight optimization of addr

2013-12-28 Thread Ding Tianhong
于 2013/12/28 21:58, Sergei Shtylyov 写道:
> Hello.
> 
> On 28-12-2013 10:17, Ding Tianhong wrote:
> 
>> Use possibly more efficient ether_addr_equal
>> to instead of memcmp.
> 
>> Cc: "David S. Miller" 
>> Signed-off-by: Ding Tianhong 
>> ---
>>   drivers/net/ethernet/packetengines/yellowfin.c |   12 ++--
>>   1 files changed, 6 insertions(+), 6 deletions(-)
> 
>> diff --git a/drivers/net/ethernet/packetengines/yellowfin.c 
>> b/drivers/net/ethernet/packetengines/yellowfin.c
>> index d28593b..b83ac0e 100644
>> --- a/drivers/net/ethernet/packetengines/yellowfin.c
>> +++ b/drivers/net/ethernet/packetengines/yellowfin.c
>> @@ -1097,12 +1097,12 @@ static int yellowfin_rx(struct net_device *dev)
>>   if (status2 & 0x80) dev->stats.rx_dropped++;
>>   #ifdef YF_PROTOTYPE/* Support for prototype hardware errata. */
>>   } else if ((yp->flags & HasMACAddrBug)  &&
>> -memcmp(le32_to_cpu(yp->rx_ring_dma +
>> -entry*sizeof(struct yellowfin_desc)),
>> -dev->dev_addr, 6) != 0 &&
>> -memcmp(le32_to_cpu(yp->rx_ring_dma +
>> -entry*sizeof(struct yellowfin_desc)),
>> -"\377\377\377\377\377\377", 6) != 0) {
>> +!ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
>> +  entry * sizeof(struct yellowfin_desc)),
>> +  dev->dev_addr) &&
> 
>Previous line was aligned correctly, the above line should start under 
> le32_to_cpu.
> 
>> +!ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
>> +  entry * sizeof(struct yellowfin_desc)),
> 
>Start the continuation lines under 'yp', please.
> 
>> +  "\377\377\377\377\377\377")) {
> 
>This line should start under le32_to_cpu.
> 
> WBR, Sergei
> 

Hi sergei:
you mean this way?
!ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
  entry * sizeof(struct yellowfin_desc)),
  dev->dev_addr) &&

!ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
  entry * sizeof(struct yellowfin_desc)),
  "\377\377\377\377\377\377")) {

Regards
Ding

> -- 
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
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/


Re: [PATCH net-next v2 11/20] net: packetengines: slight optimization of addr

2013-12-28 Thread Sergei Shtylyov

Hello.

On 28-12-2013 10:17, Ding Tianhong wrote:


Use possibly more efficient ether_addr_equal
to instead of memcmp.



Cc: "David S. Miller" 
Signed-off-by: Ding Tianhong 
---
  drivers/net/ethernet/packetengines/yellowfin.c |   12 ++--
  1 files changed, 6 insertions(+), 6 deletions(-)



diff --git a/drivers/net/ethernet/packetengines/yellowfin.c 
b/drivers/net/ethernet/packetengines/yellowfin.c
index d28593b..b83ac0e 100644
--- a/drivers/net/ethernet/packetengines/yellowfin.c
+++ b/drivers/net/ethernet/packetengines/yellowfin.c
@@ -1097,12 +1097,12 @@ static int yellowfin_rx(struct net_device *dev)
if (status2 & 0x80) dev->stats.rx_dropped++;
  #ifdef YF_PROTOTYPE   /* Support for prototype hardware errata. */
} else if ((yp->flags & HasMACAddrBug)  &&
-   memcmp(le32_to_cpu(yp->rx_ring_dma +
-   entry*sizeof(struct yellowfin_desc)),
-   dev->dev_addr, 6) != 0 &&
-   memcmp(le32_to_cpu(yp->rx_ring_dma +
-   entry*sizeof(struct yellowfin_desc)),
-   "\377\377\377\377\377\377", 6) != 0) {
+   !ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
+ entry * sizeof(struct 
yellowfin_desc)),
+ dev->dev_addr) &&


   Previous line was aligned correctly, the above line should start under 
le32_to_cpu.



+   !ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
+ entry * sizeof(struct 
yellowfin_desc)),


   Start the continuation lines under 'yp', please.


+ 
"\377\377\377\377\377\377")) {


   This line should start under le32_to_cpu.

WBR, Sergei

--
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/


Re: [PATCH net-next v2 11/20] net: packetengines: slight optimization of addr

2013-12-28 Thread Sergei Shtylyov

Hello.

On 28-12-2013 10:17, Ding Tianhong wrote:


Use possibly more efficient ether_addr_equal
to instead of memcmp.



Cc: David S. Miller da...@davemloft.net
Signed-off-by: Ding Tianhong dingtianh...@huawei.com
---
  drivers/net/ethernet/packetengines/yellowfin.c |   12 ++--
  1 files changed, 6 insertions(+), 6 deletions(-)



diff --git a/drivers/net/ethernet/packetengines/yellowfin.c 
b/drivers/net/ethernet/packetengines/yellowfin.c
index d28593b..b83ac0e 100644
--- a/drivers/net/ethernet/packetengines/yellowfin.c
+++ b/drivers/net/ethernet/packetengines/yellowfin.c
@@ -1097,12 +1097,12 @@ static int yellowfin_rx(struct net_device *dev)
if (status2  0x80) dev-stats.rx_dropped++;
  #ifdef YF_PROTOTYPE   /* Support for prototype hardware errata. */
} else if ((yp-flags  HasMACAddrBug)  
-   memcmp(le32_to_cpu(yp-rx_ring_dma +
-   entry*sizeof(struct yellowfin_desc)),
-   dev-dev_addr, 6) != 0 
-   memcmp(le32_to_cpu(yp-rx_ring_dma +
-   entry*sizeof(struct yellowfin_desc)),
-   \377\377\377\377\377\377, 6) != 0) {
+   !ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
+ entry * sizeof(struct 
yellowfin_desc)),
+ dev-dev_addr) 


   Previous line was aligned correctly, the above line should start under 
le32_to_cpu.



+   !ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
+ entry * sizeof(struct 
yellowfin_desc)),


   Start the continuation lines under 'yp', please.


+ 
\377\377\377\377\377\377)) {


   This line should start under le32_to_cpu.

WBR, Sergei

--
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/


Re: [PATCH net-next v2 11/20] net: packetengines: slight optimization of addr

2013-12-28 Thread Ding Tianhong
于 2013/12/28 21:58, Sergei Shtylyov 写道:
 Hello.
 
 On 28-12-2013 10:17, Ding Tianhong wrote:
 
 Use possibly more efficient ether_addr_equal
 to instead of memcmp.
 
 Cc: David S. Miller da...@davemloft.net
 Signed-off-by: Ding Tianhong dingtianh...@huawei.com
 ---
   drivers/net/ethernet/packetengines/yellowfin.c |   12 ++--
   1 files changed, 6 insertions(+), 6 deletions(-)
 
 diff --git a/drivers/net/ethernet/packetengines/yellowfin.c 
 b/drivers/net/ethernet/packetengines/yellowfin.c
 index d28593b..b83ac0e 100644
 --- a/drivers/net/ethernet/packetengines/yellowfin.c
 +++ b/drivers/net/ethernet/packetengines/yellowfin.c
 @@ -1097,12 +1097,12 @@ static int yellowfin_rx(struct net_device *dev)
   if (status2  0x80) dev-stats.rx_dropped++;
   #ifdef YF_PROTOTYPE/* Support for prototype hardware errata. */
   } else if ((yp-flags  HasMACAddrBug)  
 -memcmp(le32_to_cpu(yp-rx_ring_dma +
 -entry*sizeof(struct yellowfin_desc)),
 -dev-dev_addr, 6) != 0 
 -memcmp(le32_to_cpu(yp-rx_ring_dma +
 -entry*sizeof(struct yellowfin_desc)),
 -\377\377\377\377\377\377, 6) != 0) {
 +!ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
 +  entry * sizeof(struct yellowfin_desc)),
 +  dev-dev_addr) 
 
Previous line was aligned correctly, the above line should start under 
 le32_to_cpu.
 
 +!ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
 +  entry * sizeof(struct yellowfin_desc)),
 
Start the continuation lines under 'yp', please.
 
 +  \377\377\377\377\377\377)) {
 
This line should start under le32_to_cpu.
 
 WBR, Sergei
 

Hi sergei:
you mean this way?
!ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
  entry * sizeof(struct yellowfin_desc)),
  dev-dev_addr) 

!ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
  entry * sizeof(struct yellowfin_desc)),
  \377\377\377\377\377\377)) {

Regards
Ding

 -- 
 To unsubscribe from this list: send the line unsubscribe netdev in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 

--
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/


Re: [PATCH net-next v2 11/20] net: packetengines: slight optimization of addr

2013-12-28 Thread Joe Perches
On Sat, 2013-12-28 at 23:18 +0800, Ding Tianhong wrote:
 于 2013/12/28 21:58, Sergei Shtylyov 写道:
  Hello.
  
  On 28-12-2013 10:17, Ding Tianhong wrote:
  
  Use possibly more efficient ether_addr_equal
  to instead of memcmp.
  
  Cc: David S. Miller da...@davemloft.net
  Signed-off-by: Ding Tianhong dingtianh...@huawei.com
  ---
drivers/net/ethernet/packetengines/yellowfin.c |   12 ++--
1 files changed, 6 insertions(+), 6 deletions(-)
  
  diff --git a/drivers/net/ethernet/packetengines/yellowfin.c 
  b/drivers/net/ethernet/packetengines/yellowfin.c
  index d28593b..b83ac0e 100644
  --- a/drivers/net/ethernet/packetengines/yellowfin.c
  +++ b/drivers/net/ethernet/packetengines/yellowfin.c
  @@ -1097,12 +1097,12 @@ static int yellowfin_rx(struct net_device *dev)
if (status2  0x80) dev-stats.rx_dropped++;
#ifdef YF_PROTOTYPE/* Support for prototype hardware errata. */
} else if ((yp-flags  HasMACAddrBug)  
  -memcmp(le32_to_cpu(yp-rx_ring_dma +
  -entry*sizeof(struct yellowfin_desc)),
  -dev-dev_addr, 6) != 0 
  -memcmp(le32_to_cpu(yp-rx_ring_dma +
  -entry*sizeof(struct yellowfin_desc)),
  -\377\377\377\377\377\377, 6) != 0) {
  +!ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
  +  entry * sizeof(struct yellowfin_desc)),
  +  dev-dev_addr) 
  
 Previous line was aligned correctly, the above line should start under 
  le32_to_cpu.
  
  +!ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
  +  entry * sizeof(struct yellowfin_desc)),
  
 Start the continuation lines under 'yp', please.
  
  +  \377\377\377\377\377\377)) {
  
 This line should start under le32_to_cpu.
  
  WBR, Sergei
  
 
 Hi sergei:
 you mean this way?
   !ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
 entry * sizeof(struct yellowfin_desc)),
 dev-dev_addr) 
 
   !ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
 entry * sizeof(struct yellowfin_desc)),
 \377\377\377\377\377\377)) {

Does this really matter?
Does anyone have a packetengine NIC anymore?

\377 octal is 0xff, so this is matching a broadcast address.
is_broadcast_ether_addr(addr) would be appropriate.

So would using a temporary address.

u8 *addr = (u8 *)(unsigned long)le32_to_cpu(etc)

but the whole thing looks very suspect as an le32
value could not be added to correctly on a
big-endian arch anyway.

My guess is this was tested only on an x86 and
it should be:

u8 *addr = (u8 *)(unsigned long)(le32_to_cpu(yp-rx_ring_dma) +
 entry * sizeof(struct yellowfin_desc));

It maybe better just to leave these two alone.

--
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/


Re: [PATCH net-next v2 11/20] net: packetengines: slight optimization of addr

2013-12-28 Thread Sergei Shtylyov

Hello.

On 12/28/2013 06:18 PM, Ding Tianhong wrote:


Use possibly more efficient ether_addr_equal
to instead of memcmp.



Cc: David S. Miller da...@davemloft.net
Signed-off-by: Ding Tianhong dingtianh...@huawei.com
---
   drivers/net/ethernet/packetengines/yellowfin.c |   12 ++--
   1 files changed, 6 insertions(+), 6 deletions(-)



diff --git a/drivers/net/ethernet/packetengines/yellowfin.c 
b/drivers/net/ethernet/packetengines/yellowfin.c
index d28593b..b83ac0e 100644
--- a/drivers/net/ethernet/packetengines/yellowfin.c
+++ b/drivers/net/ethernet/packetengines/yellowfin.c
@@ -1097,12 +1097,12 @@ static int yellowfin_rx(struct net_device *dev)
   if (status2  0x80) dev-stats.rx_dropped++;
   #ifdef YF_PROTOTYPE/* Support for prototype hardware errata. */
   } else if ((yp-flags  HasMACAddrBug)  
-memcmp(le32_to_cpu(yp-rx_ring_dma +
-entry*sizeof(struct yellowfin_desc)),
-dev-dev_addr, 6) != 0 
-memcmp(le32_to_cpu(yp-rx_ring_dma +
-entry*sizeof(struct yellowfin_desc)),
-\377\377\377\377\377\377, 6) != 0) {
+!ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
+  entry * sizeof(struct yellowfin_desc)),
+  dev-dev_addr) 



Previous line was aligned correctly, the above line should start under 
le32_to_cpu.



+!ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
+  entry * sizeof(struct yellowfin_desc)),



Start the continuation lines under 'yp', please.



+  \377\377\377\377\377\377)) {



This line should start under le32_to_cpu.



WBR, Sergei




Hi sergei:
you mean this way?
!ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
  entry * sizeof(struct yellowfin_desc)),
  dev-dev_addr) 

!ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
  entry * sizeof(struct yellowfin_desc)),
  \377\377\377\377\377\377)) {


   Yes, exactly.


Regards
Ding


WBR, Sergei

--
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/


[PATCH net-next v2 11/20] net: packetengines: slight optimization of addr

2013-12-27 Thread Ding Tianhong
Use possibly more efficient ether_addr_equal
to instead of memcmp.

Cc: "David S. Miller" 
Signed-off-by: Ding Tianhong 
---
 drivers/net/ethernet/packetengines/yellowfin.c |   12 ++--
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/packetengines/yellowfin.c 
b/drivers/net/ethernet/packetengines/yellowfin.c
index d28593b..b83ac0e 100644
--- a/drivers/net/ethernet/packetengines/yellowfin.c
+++ b/drivers/net/ethernet/packetengines/yellowfin.c
@@ -1097,12 +1097,12 @@ static int yellowfin_rx(struct net_device *dev)
if (status2 & 0x80) dev->stats.rx_dropped++;
 #ifdef YF_PROTOTYPE/* Support for prototype hardware errata. */
} else if ((yp->flags & HasMACAddrBug)  &&
-   memcmp(le32_to_cpu(yp->rx_ring_dma +
-   entry*sizeof(struct yellowfin_desc)),
-   dev->dev_addr, 6) != 0 &&
-   memcmp(le32_to_cpu(yp->rx_ring_dma +
-   entry*sizeof(struct yellowfin_desc)),
-   "\377\377\377\377\377\377", 6) != 0) {
+   !ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
+ entry * sizeof(struct 
yellowfin_desc)),
+ dev->dev_addr) &&
+   !ether_addr_equal(le32_to_cpu(yp->rx_ring_dma +
+ entry * sizeof(struct 
yellowfin_desc)),
+ 
"\377\377\377\377\377\377")) {
if (bogus_rx++ == 0)
netdev_warn(dev, "Bad frame to %pM\n",
buf_addr);
-- 
1.7.1



--
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/


[PATCH net-next v2 11/20] net: packetengines: slight optimization of addr

2013-12-27 Thread Ding Tianhong
Use possibly more efficient ether_addr_equal
to instead of memcmp.

Cc: David S. Miller da...@davemloft.net
Signed-off-by: Ding Tianhong dingtianh...@huawei.com
---
 drivers/net/ethernet/packetengines/yellowfin.c |   12 ++--
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/packetengines/yellowfin.c 
b/drivers/net/ethernet/packetengines/yellowfin.c
index d28593b..b83ac0e 100644
--- a/drivers/net/ethernet/packetengines/yellowfin.c
+++ b/drivers/net/ethernet/packetengines/yellowfin.c
@@ -1097,12 +1097,12 @@ static int yellowfin_rx(struct net_device *dev)
if (status2  0x80) dev-stats.rx_dropped++;
 #ifdef YF_PROTOTYPE/* Support for prototype hardware errata. */
} else if ((yp-flags  HasMACAddrBug)  
-   memcmp(le32_to_cpu(yp-rx_ring_dma +
-   entry*sizeof(struct yellowfin_desc)),
-   dev-dev_addr, 6) != 0 
-   memcmp(le32_to_cpu(yp-rx_ring_dma +
-   entry*sizeof(struct yellowfin_desc)),
-   \377\377\377\377\377\377, 6) != 0) {
+   !ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
+ entry * sizeof(struct 
yellowfin_desc)),
+ dev-dev_addr) 
+   !ether_addr_equal(le32_to_cpu(yp-rx_ring_dma +
+ entry * sizeof(struct 
yellowfin_desc)),
+ 
\377\377\377\377\377\377)) {
if (bogus_rx++ == 0)
netdev_warn(dev, Bad frame to %pM\n,
buf_addr);
-- 
1.7.1



--
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/