public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] MIPS: Octeon: Use defines instead of magic numbers
@ 2016-09-12 20:33 Asbjoern Sloth Toennesen
  2016-09-12 21:03 ` Aaro Koskinen
  2016-09-12 22:00 ` David Daney
  0 siblings, 2 replies; 5+ messages in thread
From: Asbjoern Sloth Toennesen @ 2016-09-12 20:33 UTC (permalink / raw)
  To: Ralf Baechle; +Cc: linux-mips, linux-kernel

The patch will be followed by a similar patch to
drivers/staging/octeon/ethernet.c

Signed-off-by: Asbjoern Sloth Toennesen <asbjorn@asbjorn.st>
---
 arch/mips/cavium-octeon/executive/cvmx-helper.c | 15 ++++++++++-----
 arch/mips/include/asm/octeon/cvmx-ipd-defs.h    |  2 ++
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/arch/mips/cavium-octeon/executive/cvmx-helper.c b/arch/mips/cavium-octeon/executive/cvmx-helper.c
index ff26d02..9b938c8 100644
--- a/arch/mips/cavium-octeon/executive/cvmx-helper.c
+++ b/arch/mips/cavium-octeon/executive/cvmx-helper.c
@@ -46,6 +46,8 @@
 #include <asm/octeon/cvmx-smix-defs.h>
 #include <asm/octeon/cvmx-asxx-defs.h>
 
+#include <linux/if_ether.h>
+
 /**
  * cvmx_override_pko_queue_priority(int ipd_port, uint64_t
  * priorities[16]) is a function pointer. It is meant to allow
@@ -918,7 +920,8 @@ int __cvmx_helper_errata_fix_ipd_ptr_alignment(void)
 		p64 = (uint64_t *) cvmx_phys_to_ptr(pkt_buffer.s.addr);
 		p64[0] = 0xffffffffffff0000ull;
 		p64[1] = 0x08004510ull;
-		p64[2] = ((uint64_t) (size - 14) << 48) | 0x5ae740004000ull;
+		p64[2] = ((uint64_t) (size - ETH_HLEN) << 48)
+			| 0x5ae740004000ull;
 		p64[3] = 0x3a5fc0a81073c0a8ull;
 
 		for (i = 0; i < num_segs; i++) {
@@ -954,11 +957,13 @@ int __cvmx_helper_errata_fix_ipd_ptr_alignment(void)
 			       1 << INDEX(FIX_IPD_OUTPORT));
 
 		cvmx_write_csr(CVMX_GMXX_RXX_JABBER
-			       (INDEX(FIX_IPD_OUTPORT),
-				INTERFACE(FIX_IPD_OUTPORT)), 65392 - 14 - 4);
+				(INDEX(FIX_IPD_OUTPORT),
+					INTERFACE(FIX_IPD_OUTPORT)),
+				CVMX_IPD_MAX_MTU - ETH_HLEN - ETH_FCS_LEN);
 		cvmx_write_csr(CVMX_GMXX_RXX_FRM_MAX
-			       (INDEX(FIX_IPD_OUTPORT),
-				INTERFACE(FIX_IPD_OUTPORT)), 65392 - 14 - 4);
+				(INDEX(FIX_IPD_OUTPORT),
+					INTERFACE(FIX_IPD_OUTPORT)),
+				CVMX_IPD_MAX_MTU - ETH_HLEN - ETH_FCS_LEN);
 
 		cvmx_pko_send_packet_prepare(FIX_IPD_OUTPORT,
 					     cvmx_pko_get_base_queue
diff --git a/arch/mips/include/asm/octeon/cvmx-ipd-defs.h b/arch/mips/include/asm/octeon/cvmx-ipd-defs.h
index 1193f73..a877917 100644
--- a/arch/mips/include/asm/octeon/cvmx-ipd-defs.h
+++ b/arch/mips/include/asm/octeon/cvmx-ipd-defs.h
@@ -28,6 +28,8 @@
 #ifndef __CVMX_IPD_DEFS_H__
 #define __CVMX_IPD_DEFS_H__
 
+#define CVMX_IPD_MAX_MTU 65392
+
 #define CVMX_IPD_1ST_MBUFF_SKIP (CVMX_ADD_IO_SEG(0x00014F0000000000ull))
 #define CVMX_IPD_1st_NEXT_PTR_BACK (CVMX_ADD_IO_SEG(0x00014F0000000150ull))
 #define CVMX_IPD_2nd_NEXT_PTR_BACK (CVMX_ADD_IO_SEG(0x00014F0000000158ull))
-- 
2.9.3

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

* Re: [PATCH] MIPS: Octeon: Use defines instead of magic numbers
  2016-09-12 20:33 [PATCH] MIPS: Octeon: Use defines instead of magic numbers Asbjoern Sloth Toennesen
@ 2016-09-12 21:03 ` Aaro Koskinen
  2016-09-13 19:04   ` Asbjørn Sloth Tønnesen
  2016-09-12 22:00 ` David Daney
  1 sibling, 1 reply; 5+ messages in thread
From: Aaro Koskinen @ 2016-09-12 21:03 UTC (permalink / raw)
  To: Asbjoern Sloth Toennesen; +Cc: Ralf Baechle, linux-mips, linux-kernel

On Mon, Sep 12, 2016 at 08:33:43PM +0000, Asbjoern Sloth Toennesen wrote:
> The patch will be followed by a similar patch to
> drivers/staging/octeon/ethernet.c

I think you should:

	1. Move this function to staging/octeon

	2. Do required cleanups there

	3. Finally delete the function under arch/mips

We shouldn't start making cleanups (except code removal) to ethernet code
under mips/cavium-octeon/executive as it really does not belong there...

A.

> Signed-off-by: Asbjoern Sloth Toennesen <asbjorn@asbjorn.st>
> ---
>  arch/mips/cavium-octeon/executive/cvmx-helper.c | 15 ++++++++++-----
>  arch/mips/include/asm/octeon/cvmx-ipd-defs.h    |  2 ++
>  2 files changed, 12 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/mips/cavium-octeon/executive/cvmx-helper.c b/arch/mips/cavium-octeon/executive/cvmx-helper.c
> index ff26d02..9b938c8 100644
> --- a/arch/mips/cavium-octeon/executive/cvmx-helper.c
> +++ b/arch/mips/cavium-octeon/executive/cvmx-helper.c
> @@ -46,6 +46,8 @@
>  #include <asm/octeon/cvmx-smix-defs.h>
>  #include <asm/octeon/cvmx-asxx-defs.h>
>  
> +#include <linux/if_ether.h>
> +
>  /**
>   * cvmx_override_pko_queue_priority(int ipd_port, uint64_t
>   * priorities[16]) is a function pointer. It is meant to allow
> @@ -918,7 +920,8 @@ int __cvmx_helper_errata_fix_ipd_ptr_alignment(void)
>  		p64 = (uint64_t *) cvmx_phys_to_ptr(pkt_buffer.s.addr);
>  		p64[0] = 0xffffffffffff0000ull;
>  		p64[1] = 0x08004510ull;
> -		p64[2] = ((uint64_t) (size - 14) << 48) | 0x5ae740004000ull;
> +		p64[2] = ((uint64_t) (size - ETH_HLEN) << 48)
> +			| 0x5ae740004000ull;
>  		p64[3] = 0x3a5fc0a81073c0a8ull;
>  
>  		for (i = 0; i < num_segs; i++) {
> @@ -954,11 +957,13 @@ int __cvmx_helper_errata_fix_ipd_ptr_alignment(void)
>  			       1 << INDEX(FIX_IPD_OUTPORT));
>  
>  		cvmx_write_csr(CVMX_GMXX_RXX_JABBER
> -			       (INDEX(FIX_IPD_OUTPORT),
> -				INTERFACE(FIX_IPD_OUTPORT)), 65392 - 14 - 4);
> +				(INDEX(FIX_IPD_OUTPORT),
> +					INTERFACE(FIX_IPD_OUTPORT)),
> +				CVMX_IPD_MAX_MTU - ETH_HLEN - ETH_FCS_LEN);
>  		cvmx_write_csr(CVMX_GMXX_RXX_FRM_MAX
> -			       (INDEX(FIX_IPD_OUTPORT),
> -				INTERFACE(FIX_IPD_OUTPORT)), 65392 - 14 - 4);
> +				(INDEX(FIX_IPD_OUTPORT),
> +					INTERFACE(FIX_IPD_OUTPORT)),
> +				CVMX_IPD_MAX_MTU - ETH_HLEN - ETH_FCS_LEN);
>  
>  		cvmx_pko_send_packet_prepare(FIX_IPD_OUTPORT,
>  					     cvmx_pko_get_base_queue
> diff --git a/arch/mips/include/asm/octeon/cvmx-ipd-defs.h b/arch/mips/include/asm/octeon/cvmx-ipd-defs.h
> index 1193f73..a877917 100644
> --- a/arch/mips/include/asm/octeon/cvmx-ipd-defs.h
> +++ b/arch/mips/include/asm/octeon/cvmx-ipd-defs.h
> @@ -28,6 +28,8 @@
>  #ifndef __CVMX_IPD_DEFS_H__
>  #define __CVMX_IPD_DEFS_H__
>  
> +#define CVMX_IPD_MAX_MTU 65392
> +
>  #define CVMX_IPD_1ST_MBUFF_SKIP (CVMX_ADD_IO_SEG(0x00014F0000000000ull))
>  #define CVMX_IPD_1st_NEXT_PTR_BACK (CVMX_ADD_IO_SEG(0x00014F0000000150ull))
>  #define CVMX_IPD_2nd_NEXT_PTR_BACK (CVMX_ADD_IO_SEG(0x00014F0000000158ull))
> -- 
> 2.9.3
> 
> 

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

* Re: [PATCH] MIPS: Octeon: Use defines instead of magic numbers
  2016-09-12 20:33 [PATCH] MIPS: Octeon: Use defines instead of magic numbers Asbjoern Sloth Toennesen
  2016-09-12 21:03 ` Aaro Koskinen
@ 2016-09-12 22:00 ` David Daney
  1 sibling, 0 replies; 5+ messages in thread
From: David Daney @ 2016-09-12 22:00 UTC (permalink / raw)
  To: Asbjoern Sloth Toennesen; +Cc: Ralf Baechle, linux-mips, linux-kernel

On 09/12/2016 01:33 PM, Asbjoern Sloth Toennesen wrote:
> The patch will be followed by a similar patch to
> drivers/staging/octeon/ethernet.c
>
> Signed-off-by: Asbjoern Sloth Toennesen <asbjorn@asbjorn.st>
> ---
>   arch/mips/cavium-octeon/executive/cvmx-helper.c | 15 ++++++++++-----
>   arch/mips/include/asm/octeon/cvmx-ipd-defs.h    |  2 ++
>   2 files changed, 12 insertions(+), 5 deletions(-)
>

Nobody knows what the purpose of 
__cvmx_helper_errata_fix_ipd_ptr_alignment() is.  Since there are no 
commercially available devices with the effected hardware (cn30xx, 
cn31xx), perhaps we should just remove the whole thing.


> diff --git a/arch/mips/cavium-octeon/executive/cvmx-helper.c b/arch/mips/cavium-octeon/executive/cvmx-helper.c
> index ff26d02..9b938c8 100644
> --- a/arch/mips/cavium-octeon/executive/cvmx-helper.c
> +++ b/arch/mips/cavium-octeon/executive/cvmx-helper.c
> @@ -46,6 +46,8 @@
>   #include <asm/octeon/cvmx-smix-defs.h>
>   #include <asm/octeon/cvmx-asxx-defs.h>
>
> +#include <linux/if_ether.h>
> +
>   /**
>    * cvmx_override_pko_queue_priority(int ipd_port, uint64_t
>    * priorities[16]) is a function pointer. It is meant to allow
> @@ -918,7 +920,8 @@ int __cvmx_helper_errata_fix_ipd_ptr_alignment(void)
>   		p64 = (uint64_t *) cvmx_phys_to_ptr(pkt_buffer.s.addr);
>   		p64[0] = 0xffffffffffff0000ull;
>   		p64[1] = 0x08004510ull;
> -		p64[2] = ((uint64_t) (size - 14) << 48) | 0x5ae740004000ull;
> +		p64[2] = ((uint64_t) (size - ETH_HLEN) << 48)
> +			| 0x5ae740004000ull;
>   		p64[3] = 0x3a5fc0a81073c0a8ull;
>
>   		for (i = 0; i < num_segs; i++) {
> @@ -954,11 +957,13 @@ int __cvmx_helper_errata_fix_ipd_ptr_alignment(void)
>   			       1 << INDEX(FIX_IPD_OUTPORT));
>
>   		cvmx_write_csr(CVMX_GMXX_RXX_JABBER
> -			       (INDEX(FIX_IPD_OUTPORT),
> -				INTERFACE(FIX_IPD_OUTPORT)), 65392 - 14 - 4);
> +				(INDEX(FIX_IPD_OUTPORT),
> +					INTERFACE(FIX_IPD_OUTPORT)),
> +				CVMX_IPD_MAX_MTU - ETH_HLEN - ETH_FCS_LEN);
>   		cvmx_write_csr(CVMX_GMXX_RXX_FRM_MAX
> -			       (INDEX(FIX_IPD_OUTPORT),
> -				INTERFACE(FIX_IPD_OUTPORT)), 65392 - 14 - 4);
> +				(INDEX(FIX_IPD_OUTPORT),
> +					INTERFACE(FIX_IPD_OUTPORT)),
> +				CVMX_IPD_MAX_MTU - ETH_HLEN - ETH_FCS_LEN);
>
>   		cvmx_pko_send_packet_prepare(FIX_IPD_OUTPORT,
>   					     cvmx_pko_get_base_queue
> diff --git a/arch/mips/include/asm/octeon/cvmx-ipd-defs.h b/arch/mips/include/asm/octeon/cvmx-ipd-defs.h
> index 1193f73..a877917 100644
> --- a/arch/mips/include/asm/octeon/cvmx-ipd-defs.h
> +++ b/arch/mips/include/asm/octeon/cvmx-ipd-defs.h
> @@ -28,6 +28,8 @@
>   #ifndef __CVMX_IPD_DEFS_H__
>   #define __CVMX_IPD_DEFS_H__
>
> +#define CVMX_IPD_MAX_MTU 65392
> +
>   #define CVMX_IPD_1ST_MBUFF_SKIP (CVMX_ADD_IO_SEG(0x00014F0000000000ull))
>   #define CVMX_IPD_1st_NEXT_PTR_BACK (CVMX_ADD_IO_SEG(0x00014F0000000150ull))
>   #define CVMX_IPD_2nd_NEXT_PTR_BACK (CVMX_ADD_IO_SEG(0x00014F0000000158ull))
>

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

* Re: [PATCH] MIPS: Octeon: Use defines instead of magic numbers
  2016-09-12 21:03 ` Aaro Koskinen
@ 2016-09-13 19:04   ` Asbjørn Sloth Tønnesen
  2016-09-13 19:31     ` Aaro Koskinen
  0 siblings, 1 reply; 5+ messages in thread
From: Asbjørn Sloth Tønnesen @ 2016-09-13 19:04 UTC (permalink / raw)
  To: Aaro Koskinen; +Cc: Ralf Baechle, linux-mips, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 858 bytes --]

Hi Aaro,

On Tue, 13 Sep 2016 00:03:14 +0300, Aaro Koskinen <aaro.koskinen@iki.fi> wrote:
> On Mon, Sep 12, 2016 at 08:33:43PM +0000, Asbjoern Sloth Toennesen wrote:
> > The patch will be followed by a similar patch to
> > drivers/staging/octeon/ethernet.c
> 
> I think you should:
> 
> 	1. Move this function to staging/octeon
> 
> 	2. Do required cleanups there
> 
> 	3. Finally delete the function under arch/mips
> 
> We shouldn't start making cleanups (except code removal) to ethernet code
> under mips/cavium-octeon/executive as it really does not belong there...

I agree that this would make sense, however I just came across this looking
at the general MTU code across drivers, and don't have a real interest in
this particular driver nor mips, so I am not looking to fall that deep into
the rabbit hole.

-- 
Best regards
Asbjørn Sloth Tønnesen

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

* Re: [PATCH] MIPS: Octeon: Use defines instead of magic numbers
  2016-09-13 19:04   ` Asbjørn Sloth Tønnesen
@ 2016-09-13 19:31     ` Aaro Koskinen
  0 siblings, 0 replies; 5+ messages in thread
From: Aaro Koskinen @ 2016-09-13 19:31 UTC (permalink / raw)
  To: Asbjørn Sloth Tønnesen; +Cc: Ralf Baechle, linux-mips, linux-kernel

Hi,

On Tue, Sep 13, 2016 at 07:04:54PM +0000, Asbjørn Sloth Tønnesen wrote:
> On Tue, 13 Sep 2016 00:03:14 +0300, Aaro Koskinen <aaro.koskinen@iki.fi> wrote:
> > On Mon, Sep 12, 2016 at 08:33:43PM +0000, Asbjoern Sloth Toennesen wrote:
> > > The patch will be followed by a similar patch to
> > > drivers/staging/octeon/ethernet.c
> > 
> > I think you should:
> > 
> > 	1. Move this function to staging/octeon
> > 
> > 	2. Do required cleanups there
> > 
> > 	3. Finally delete the function under arch/mips
> > 
> > We shouldn't start making cleanups (except code removal) to ethernet code
> > under mips/cavium-octeon/executive as it really does not belong there...
> 
> I agree that this would make sense, however I just came across this looking
> at the general MTU code across drivers, and don't have a real interest in
> this particular driver nor mips, so I am not looking to fall that deep into
> the rabbit hole.

In that case please leave the code alone. NAK for this patch.

A.

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

end of thread, other threads:[~2016-09-13 19:31 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-12 20:33 [PATCH] MIPS: Octeon: Use defines instead of magic numbers Asbjoern Sloth Toennesen
2016-09-12 21:03 ` Aaro Koskinen
2016-09-13 19:04   ` Asbjørn Sloth Tønnesen
2016-09-13 19:31     ` Aaro Koskinen
2016-09-12 22:00 ` David Daney

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