* [PATCH] skge: add quirk to limit DMA
@ 2010-09-29 9:33 Stanislaw Gruszka
2010-10-05 7:18 ` David Miller
0 siblings, 1 reply; 4+ messages in thread
From: Stanislaw Gruszka @ 2010-09-29 9:33 UTC (permalink / raw)
To: Stephen Hemminger, netdev; +Cc: luya
Skge devices installed on some Gigabyte motherboards are not able to
perform 64 dma correctly due to board PCI implementation, so limit
DMA to 32bit if such boards are detected.
Bug was reported here:
https://bugzilla.redhat.com/show_bug.cgi?id=447489
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Tested-by: Luya Tshimbalanga <luya@fedoraproject.org>
---
drivers/net/skge.c | 22 +++++++++++++++++++++-
1 files changed, 21 insertions(+), 1 deletions(-)
diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index a8a6358..571d4c3 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -43,6 +43,7 @@
#include <linux/seq_file.h>
#include <linux/mii.h>
#include <linux/slab.h>
+#include <linux/dmi.h>
#include <asm/irq.h>
#include "skge.h"
@@ -3869,6 +3870,8 @@ static void __devinit skge_show_addr(struct net_device *dev)
netif_info(skge, probe, skge->netdev, "addr %pM\n", dev->dev_addr);
}
+static int only_32bit_dma;
+
static int __devinit skge_probe(struct pci_dev *pdev,
const struct pci_device_id *ent)
{
@@ -3890,7 +3893,7 @@ static int __devinit skge_probe(struct pci_dev *pdev,
pci_set_master(pdev);
- if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
+ if (!only_32bit_dma && !pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
using_dac = 1;
err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
} else if (!(err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32)))) {
@@ -4148,8 +4151,25 @@ static struct pci_driver skge_driver = {
.shutdown = skge_shutdown,
};
+#ifndef CONFIG_DMI
+#warning "DMA quirk for Gigabyte nForce boards will not be applied"
+#endif
+
+static struct dmi_system_id skge_32bit_dma_boards[] = {
+ {
+ .ident = "Gigabyte nForce boards",
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Gigabyte Technology Co"),
+ DMI_MATCH(DMI_BOARD_NAME, "nForce"),
+ },
+ },
+ {}
+};
+
static int __init skge_init_module(void)
{
+ if (dmi_check_system(skge_32bit_dma_boards))
+ only_32bit_dma = 1;
skge_debug_init();
return pci_register_driver(&skge_driver);
}
--
1.5.5.6
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] skge: add quirk to limit DMA
2010-09-29 9:33 [PATCH] skge: add quirk to limit DMA Stanislaw Gruszka
@ 2010-10-05 7:18 ` David Miller
2010-10-05 21:58 ` Stephen Hemminger
0 siblings, 1 reply; 4+ messages in thread
From: David Miller @ 2010-10-05 7:18 UTC (permalink / raw)
To: sgruszka; +Cc: shemminger, netdev, luya
From: Stanislaw Gruszka <sgruszka@redhat.com>
Date: Wed, 29 Sep 2010 11:33:23 +0200
> Skge devices installed on some Gigabyte motherboards are not able to
> perform 64 dma correctly due to board PCI implementation, so limit
> DMA to 32bit if such boards are detected.
>
> Bug was reported here:
> https://bugzilla.redhat.com/show_bug.cgi?id=447489
>
> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> Tested-by: Luya Tshimbalanga <luya@fedoraproject.org>
Stephen? Can I get an ACK or some kind of other status on this?
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] skge: add quirk to limit DMA
2010-10-05 7:18 ` David Miller
@ 2010-10-05 21:58 ` Stephen Hemminger
2010-10-05 22:09 ` David Miller
0 siblings, 1 reply; 4+ messages in thread
From: Stephen Hemminger @ 2010-10-05 21:58 UTC (permalink / raw)
To: David Miller; +Cc: sgruszka, netdev, luya
On Tue, 05 Oct 2010 00:18:00 -0700 (PDT)
David Miller <davem@davemloft.net> wrote:
> From: Stanislaw Gruszka <sgruszka@redhat.com>
> Date: Wed, 29 Sep 2010 11:33:23 +0200
>
> > Skge devices installed on some Gigabyte motherboards are not able to
> > perform 64 dma correctly due to board PCI implementation, so limit
> > DMA to 32bit if such boards are detected.
> >
> > Bug was reported here:
> > https://bugzilla.redhat.com/show_bug.cgi?id=447489
> >
> > Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> > Tested-by: Luya Tshimbalanga <luya@fedoraproject.org>
>
> Stephen? Can I get an ACK or some kind of other status on this?
I was hoping to find the hardware somewhere to dig deeper into
this. But until I know more please apply the patch. There are
two possibilities that still exist, 1) it is true for all devices
on this motherboard (in which cases it should be a PCI quirk),
2) it is a driver bug. The test was going to be putting a skge
pci card in a slot on the MB.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] skge: add quirk to limit DMA
2010-10-05 21:58 ` Stephen Hemminger
@ 2010-10-05 22:09 ` David Miller
0 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2010-10-05 22:09 UTC (permalink / raw)
To: shemminger; +Cc: sgruszka, netdev, luya
From: Stephen Hemminger <shemminger@vyatta.com>
Date: Wed, 6 Oct 2010 06:58:45 +0900
> On Tue, 05 Oct 2010 00:18:00 -0700 (PDT)
> David Miller <davem@davemloft.net> wrote:
>
>> From: Stanislaw Gruszka <sgruszka@redhat.com>
>> Date: Wed, 29 Sep 2010 11:33:23 +0200
>>
>> > Skge devices installed on some Gigabyte motherboards are not able to
>> > perform 64 dma correctly due to board PCI implementation, so limit
>> > DMA to 32bit if such boards are detected.
>> >
>> > Bug was reported here:
>> > https://bugzilla.redhat.com/show_bug.cgi?id=447489
>> >
>> > Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
>> > Tested-by: Luya Tshimbalanga <luya@fedoraproject.org>
>>
>> Stephen? Can I get an ACK or some kind of other status on this?
>
> I was hoping to find the hardware somewhere to dig deeper into
> this. But until I know more please apply the patch. There are
> two possibilities that still exist, 1) it is true for all devices
> on this motherboard (in which cases it should be a PCI quirk),
> 2) it is a driver bug. The test was going to be putting a skge
> pci card in a slot on the MB.
Ok, thanks Stephen, I'll apply his patch for now.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-10-05 22:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-29 9:33 [PATCH] skge: add quirk to limit DMA Stanislaw Gruszka
2010-10-05 7:18 ` David Miller
2010-10-05 21:58 ` Stephen Hemminger
2010-10-05 22:09 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).