public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
* [PATCH net] tg3: Expand 4g_overflow_test workaround to skb fragments of any size.
@ 2013-12-20  0:24 Nithin Nayak Sujir
  2013-12-20  0:38 ` Eric Dumazet
  2013-12-20  0:41 ` Eric Dumazet
  0 siblings, 2 replies; 5+ messages in thread
From: Nithin Nayak Sujir @ 2013-12-20  0:24 UTC (permalink / raw)
  To: davem; +Cc: netdev, Nithin Nayak Sujir, stable, Michael Chan

The current driver assumes that an skb fragment can only be upto jumbo
size. Presumably this was a fast-path optimization. This assumption is
no longer true as fragments can be upto 32k.

Cc: stable@vger•kernel.org
Signed-off-by: Nithin Nayak Sujir <nsujir@broadcom•com>
Signed-off-by: Michael Chan <mchan@broadcom•com>
---
 drivers/net/ethernet/broadcom/tg3.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
index f3dd93b..8ab21d7 100644
--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -7622,7 +7622,7 @@ static inline int tg3_4g_overflow_test(dma_addr_t mapping, int len)
 {
 	u32 base = (u32) mapping & 0xffffffff;
 
-	return (base > 0xffffdcc0) && (base + len + 8 < base);
+	return (base + len + 8 < base);
 }
 
 /* Test for TSO DMA buffers that cross into regions which are within MSS bytes
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH net] tg3: Expand 4g_overflow_test workaround to skb fragments of any size.
  2013-12-20  0:24 [PATCH net] tg3: Expand 4g_overflow_test workaround to skb fragments of any size Nithin Nayak Sujir
@ 2013-12-20  0:38 ` Eric Dumazet
  2013-12-20  1:33   ` Nithin Nayak Sujir
  2013-12-20  0:41 ` Eric Dumazet
  1 sibling, 1 reply; 5+ messages in thread
From: Eric Dumazet @ 2013-12-20  0:38 UTC (permalink / raw)
  To: Nithin Nayak Sujir; +Cc: davem, netdev, stable, Michael Chan

On Thu, 2013-12-19 at 16:24 -0800, Nithin Nayak Sujir wrote:
> The current driver assumes that an skb fragment can only be upto jumbo
> size. Presumably this was a fast-path optimization. This assumption is
> no longer true as fragments can be upto 32k.
> 
> Cc: stable@vger•kernel.org
> Signed-off-by: Nithin Nayak Sujir <nsujir@broadcom•com>
> Signed-off-by: Michael Chan <mchan@broadcom•com>
> ---
>  drivers/net/ethernet/broadcom/tg3.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
> index f3dd93b..8ab21d7 100644
> --- a/drivers/net/ethernet/broadcom/tg3.c
> +++ b/drivers/net/ethernet/broadcom/tg3.c
> @@ -7622,7 +7622,7 @@ static inline int tg3_4g_overflow_test(dma_addr_t mapping, int len)
>  {
>  	u32 base = (u32) mapping & 0xffffffff;
>  
> -	return (base > 0xffffdcc0) && (base + len + 8 < base);
> +	return (base + len + 8 < base);
>  }

And it is actually faster ;)

What is 8 value exactly ?

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH net] tg3: Expand 4g_overflow_test workaround to skb fragments of any size.
  2013-12-20  0:24 [PATCH net] tg3: Expand 4g_overflow_test workaround to skb fragments of any size Nithin Nayak Sujir
  2013-12-20  0:38 ` Eric Dumazet
@ 2013-12-20  0:41 ` Eric Dumazet
  2013-12-20  1:35   ` Nithin Nayak Sujir
  1 sibling, 1 reply; 5+ messages in thread
From: Eric Dumazet @ 2013-12-20  0:41 UTC (permalink / raw)
  To: Nithin Nayak Sujir; +Cc: davem, netdev, stable, Michael Chan

On Thu, 2013-12-19 at 16:24 -0800, Nithin Nayak Sujir wrote:
> The current driver assumes that an skb fragment can only be upto jumbo
> size. Presumably this was a fast-path optimization. This assumption is
> no longer true as fragments can be upto 32k.
> 
> Cc: stable@vger•kernel.org
> Signed-off-by: Nithin Nayak Sujir <nsujir@broadcom•com>
> Signed-off-by: Michael Chan <mchan@broadcom•com>
> ---
>  drivers/net/ethernet/broadcom/tg3.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
> index f3dd93b..8ab21d7 100644
> --- a/drivers/net/ethernet/broadcom/tg3.c
> +++ b/drivers/net/ethernet/broadcom/tg3.c
> @@ -7622,7 +7622,7 @@ static inline int tg3_4g_overflow_test(dma_addr_t mapping, int len)
>  {
>  	u32 base = (u32) mapping & 0xffffffff;
>  
> -	return (base > 0xffffdcc0) && (base + len + 8 < base);
> +	return (base + len + 8 < base);
>  }
>  
>  /* Test for TSO DMA buffers that cross into regions which are within MSS bytes

btw this is also :

return base + len + 8 < base;

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH net] tg3: Expand 4g_overflow_test workaround to skb fragments of any size.
  2013-12-20  0:38 ` Eric Dumazet
@ 2013-12-20  1:33   ` Nithin Nayak Sujir
  0 siblings, 0 replies; 5+ messages in thread
From: Nithin Nayak Sujir @ 2013-12-20  1:33 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: davem, netdev, stable, Michael Chan


>> -	return (base > 0xffffdcc0) && (base + len + 8 < base);
>> +	return (base + len + 8 < base);
>>   }
>
> And it is actually faster ;)
>
> What is 8 value exactly ?
>
>

Some older devices needed to be at least 8 bytes away from the boundary. For 
simplicity we use the same check for all devices.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH net] tg3: Expand 4g_overflow_test workaround to skb fragments of any size.
  2013-12-20  0:41 ` Eric Dumazet
@ 2013-12-20  1:35   ` Nithin Nayak Sujir
  0 siblings, 0 replies; 5+ messages in thread
From: Nithin Nayak Sujir @ 2013-12-20  1:35 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: davem, netdev, stable, Michael Chan



On 12/19/2013 04:41 PM, Eric Dumazet wrote:
> On Thu, 2013-12-19 at 16:24 -0800, Nithin Nayak Sujir wrote:
>> The current driver assumes that an skb fragment can only be upto jumbo
>> size. Presumably this was a fast-path optimization. This assumption is
>> no longer true as fragments can be upto 32k.
>>
>> Cc: stable@vger•kernel.org
>> Signed-off-by: Nithin Nayak Sujir <nsujir@broadcom•com>
>> Signed-off-by: Michael Chan <mchan@broadcom•com>
>> ---
>>   drivers/net/ethernet/broadcom/tg3.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
>> index f3dd93b..8ab21d7 100644
>> --- a/drivers/net/ethernet/broadcom/tg3.c
>> +++ b/drivers/net/ethernet/broadcom/tg3.c
>> @@ -7622,7 +7622,7 @@ static inline int tg3_4g_overflow_test(dma_addr_t mapping, int len)
>>   {
>>   	u32 base = (u32) mapping & 0xffffffff;
>>
>> -	return (base > 0xffffdcc0) && (base + len + 8 < base);
>> +	return (base + len + 8 < base);
>>   }
>>
>>   /* Test for TSO DMA buffers that cross into regions which are within MSS bytes
>
> btw this is also :
>
> return base + len + 8 < base;
>
>
>

I'll send a v2.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-12-20  1:35 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-20  0:24 [PATCH net] tg3: Expand 4g_overflow_test workaround to skb fragments of any size Nithin Nayak Sujir
2013-12-20  0:38 ` Eric Dumazet
2013-12-20  1:33   ` Nithin Nayak Sujir
2013-12-20  0:41 ` Eric Dumazet
2013-12-20  1:35   ` Nithin Nayak Sujir

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox