From: Ortwin Glück on
There is also a DMA warning later on.
From: Jike Song on
2010/7/14 Ortwin Glück <odi(a)odi.ch>:
> There is also a DMA warning later on.
>

Seems to be a logical error? Does the following patch remove your Oops?


diff --git a/drivers/net/wireless/ath/ath9k/recv.c
b/drivers/net/wireless/ath/ath9k/recv.c
index ca6065b..e3e5291 100644
--- a/drivers/net/wireless/ath/ath9k/recv.c
+++ b/drivers/net/wireless/ath/ath9k/recv.c
@@ -844,9 +844,9 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)
int dma_type;

if (edma)
- dma_type = DMA_FROM_DEVICE;
- else
dma_type = DMA_BIDIRECTIONAL;
+ else
+ dma_type = DMA_FROM_DEVICE;

qtype = hp ? ATH9K_RX_QUEUE_HP : ATH9K_RX_QUEUE_LP;
spin_lock_bh(&sc->rx.rxbuflock);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Ortwin Glück on
On 23.07.2010 10:04, Jike Song wrote:
> Seems to be a logical error? Does the following patch remove your Oops?

Looking at the init code I agree. Yes, the patch fixes the OOPS. I am sure
because the OOPS occurred at every boot and now it's gone.

Thanks!

Ortwin

>
> diff --git a/drivers/net/wireless/ath/ath9k/recv.c
> b/drivers/net/wireless/ath/ath9k/recv.c
> index ca6065b..e3e5291 100644
> --- a/drivers/net/wireless/ath/ath9k/recv.c
> +++ b/drivers/net/wireless/ath/ath9k/recv.c
> @@ -844,9 +844,9 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)
> int dma_type;
>
> if (edma)
> - dma_type = DMA_FROM_DEVICE;
> - else
> dma_type = DMA_BIDIRECTIONAL;
> + else
> + dma_type = DMA_FROM_DEVICE;
>
> qtype = hp ? ATH9K_RX_QUEUE_HP : ATH9K_RX_QUEUE_LP;
> spin_lock_bh(&sc->rx.rxbuflock);
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Jike Song on
2010/7/23 Ortwin Glück <odi(a)odi.ch>:
> On 23.07.2010 10:04, Jike Song wrote:
>> Seems to be a logical error?  Does the following patch remove your Oops?
>
> Looking at the init code I agree. Yes, the patch fixes the OOPS. I am sure
> because the OOPS occurred at every boot and now it's gone.
>
> Thanks!
>
> Ortwin

Hi Maintainers,

Since Ortwin has confirmed this patch , would you give me an ACK/NAK please?


--
Thanks,
Jike


From 1414829dcc5b53ef4802f5de2b9be58e2ca0fb23 Mon Sep 17 00:00:00 2001
From: Jike Song <albcamus(a)gmail.com>
Date: Mon, 26 Jul 2010 13:42:41 +0800
Subject: [PATCH] ath9k: fix wrong DMA direction in RX tasklet
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Commit b5c80475abaad015699384ca64ef8229fdd88758 introduced edma
support for RX, hence bidirectional DMA support. But it
specified the DMA type as DMA_FROM_DEVICE by mistake.

Reported-and-tested-by: Ortwin Glück <odi(a)odi.ch>
Signed-off-by: Jike Song <albcamus(a)gmail.com>
---
drivers/net/wireless/ath/ath9k/recv.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/recv.c
b/drivers/net/wireless/ath/ath9k/recv.c
index ca6065b..e3e5291 100644
--- a/drivers/net/wireless/ath/ath9k/recv.c
+++ b/drivers/net/wireless/ath/ath9k/recv.c
@@ -844,9 +844,9 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)
int dma_type;

if (edma)
- dma_type = DMA_FROM_DEVICE;
- else
dma_type = DMA_BIDIRECTIONAL;
+ else
+ dma_type = DMA_FROM_DEVICE;

qtype = hp ? ATH9K_RX_QUEUE_HP : ATH9K_RX_QUEUE_LP;
spin_lock_bh(&sc->rx.rxbuflock);
--
1.6.2
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Luis R. Rodriguez on
2010/7/25 Jike Song <albcamus(a)gmail.com>:
> 2010/7/23 Ortwin Glück <odi(a)odi.ch>:
>> On 23.07.2010 10:04, Jike Song wrote:
>>> Seems to be a logical error?  Does the following patch remove your Oops?
>>
>> Looking at the init code I agree. Yes, the patch fixes the OOPS. I am sure
>> because the OOPS occurred at every boot and now it's gone.
>>
>> Thanks!
>>
>> Ortwin
>
> Hi Maintainers,
>
>  Since Ortwin has confirmed this patch , would you give me an ACK/NAK please?
>
>
> --
> Thanks,
> Jike
>
>
> From 1414829dcc5b53ef4802f5de2b9be58e2ca0fb23 Mon Sep 17 00:00:00 2001
> From: Jike Song <albcamus(a)gmail.com>
> Date: Mon, 26 Jul 2010 13:42:41 +0800
> Subject: [PATCH] ath9k: fix wrong DMA direction in RX tasklet
> MIME-Version: 1.0
> Content-Type: text/plain; charset=utf-8
> Content-Transfer-Encoding: 8bit
>
> Commit b5c80475abaad015699384ca64ef8229fdd88758 introduced edma
> support for RX, hence bidirectional DMA support. But it
> specified the DMA type as DMA_FROM_DEVICE by mistake.
>
> Reported-and-tested-by: Ortwin Glück <odi(a)odi.ch>
> Signed-off-by: Jike Song <albcamus(a)gmail.com>
> ---
>  drivers/net/wireless/ath/ath9k/recv.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath9k/recv.c
> b/drivers/net/wireless/ath/ath9k/recv.c
> index ca6065b..e3e5291 100644
> --- a/drivers/net/wireless/ath/ath9k/recv.c
> +++ b/drivers/net/wireless/ath/ath9k/recv.c
> @@ -844,9 +844,9 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)
>        int dma_type;
>
>        if (edma)
> -               dma_type = DMA_FROM_DEVICE;
> -       else
>                dma_type = DMA_BIDIRECTIONAL;
> +       else
> +               dma_type = DMA_FROM_DEVICE;
>
>        qtype = hp ? ATH9K_RX_QUEUE_HP : ATH9K_RX_QUEUE_LP;
>        spin_lock_bh(&sc->rx.rxbuflock);
> --

I'll let Felix chime in on this one as he last reviewed this path.
There were some serious issues with MIPs and DMA that at this point I
think only he grocked.

Luis
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/