Patchwork skge: Add DMA mask quirk for Marvell 88E8001 on ASUS P5NSLI motherboard.

login
register
mail settings
Submitter Graham Gower
Date Oct. 7, 2012, 5:55 a.m.
Message ID <50711961.1010101@gmail.com>
Download mbox | patch
Permalink /patch/189789/
State Rejected
Delegated to: David Miller
Headers show

Comments

Graham Gower - Oct. 7, 2012, 5:55 a.m.
Marvell 88E8001 on an ASUS P5NSLI motherboard is unable to send/receive
packets on a system with >4gb ram unless a 32bit DMA mask is used.

This issue has been around for years and a fix was sent 3.5 years ago, but
there was some debate as to whether it should instead be fixed as a PCI quirk.
http://www.spinics.net/lists/netdev/msg88670.html

However, 18 months later a similar workaround was introduced for another
chipset exhibiting the same problem.
http://www.spinics.net/lists/netdev/msg142287.html

Signed-off-by: Graham Gower <graham.gower@gmail.com>

--
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
Jan Ceuleers - Oct. 7, 2012, 9:32 a.m.
On 10/07/2012 07:55 AM, Graham Gower wrote:
> Signed-off-by: Graham Gower <graham.gower@gmail.com>
> 
> --- skge.c.bak    2012-10-07 13:00:56.000000000 +1030
> +++ skge.c    2012-10-07 13:26:03.000000000 +1030
> @@ -4143,6 +4143,13 @@

Graham,

Your patch should include the path to the file being patched relative to
the base directory. So in this case something like

--- a/drivers/net/ethernet/marvell/skge.c ...
+++ b/drivers/net/ethernet/marvell/skge.c ...

HTH, Jan
--
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
Graham Gower - Oct. 8, 2012, 5:33 a.m.
On 10/07/2012 08:02 PM, Jan Ceuleers wrote:
> On 10/07/2012 07:55 AM, Graham Gower wrote:
>> Signed-off-by: Graham Gower <graham.gower@gmail.com>
>>
>> --- skge.c.bak    2012-10-07 13:00:56.000000000 +1030
>> +++ skge.c    2012-10-07 13:26:03.000000000 +1030
>> @@ -4143,6 +4143,13 @@
>
> Graham,
>
> Your patch should include the path to the file being patched relative to
> the base directory. So in this case something like
>
> --- a/drivers/net/ethernet/marvell/skge.c ...
> +++ b/drivers/net/ethernet/marvell/skge.c ...
>
> HTH, Jan
>

Thanks, I should know this stuff. Just an oversight because I was
too lazy to clone a repository and diffed against the single file.

-Graham
--
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
stephen hemminger - Oct. 8, 2012, 4:16 p.m.
On Sun, 07 Oct 2012 16:25:45 +1030
Graham Gower <graham.gower@gmail.com> wrote:

> Marvell 88E8001 on an ASUS P5NSLI motherboard is unable to send/receive
> packets on a system with >4gb ram unless a 32bit DMA mask is used.
> 
> This issue has been around for years and a fix was sent 3.5 years ago, but
> there was some debate as to whether it should instead be fixed as a PCI quirk.
> http://www.spinics.net/lists/netdev/msg88670.html
> 
> However, 18 months later a similar workaround was introduced for another
> chipset exhibiting the same problem.
> http://www.spinics.net/lists/netdev/msg142287.html
> 
> Signed-off-by: Graham Gower <graham.gower@gmail.com>
> 
> --- skge.c.bak	2012-10-07 13:00:56.000000000 +1030
> +++ skge.c	2012-10-07 13:26:03.000000000 +1030
> @@ -4143,6 +4143,13 @@
>   			DMI_MATCH(DMI_BOARD_NAME, "nForce"),
>   		},
>   	},
> +	{
> +		.ident = "ASUS P5NSLI",
> +		.matches = {
> +			DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
> +			DMI_MATCH(DMI_BOARD_NAME, "P5NSLI")
> +		},
> +	},
>   	{}
>   };
>   

This fix is fine, but like Jan said it needs to be based at the
right place in the filesystem tree for inclusion.

I wonder if it would be a good idea to add a way to automatically
check for this quirk using the debug registers on the chip which allow
peeking. Using the test registers B3_RAM_DATA_LO/B3_RAM_DATA_HI.

The problem is that might introduce worse problems if it causes
DMA access to non-existent memory and trying to recover from the fault.
--
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

Patch

--- skge.c.bak	2012-10-07 13:00:56.000000000 +1030
+++ skge.c	2012-10-07 13:26:03.000000000 +1030
@@ -4143,6 +4143,13 @@ 
  			DMI_MATCH(DMI_BOARD_NAME, "nForce"),
  		},
  	},
+	{
+		.ident = "ASUS P5NSLI",
+		.matches = {
+			DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
+			DMI_MATCH(DMI_BOARD_NAME, "P5NSLI")
+		},
+	},
  	{}
  };