Skip to content

Commit

Permalink
mt76: dma: add skb check for dummy pointer
Browse files Browse the repository at this point in the history
Introduce skb check for dummy address in mt76_dma_tx_cleanup_idx.
This is a preliminary patch to add support for new chipsets (e.g. 7615)

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
  • Loading branch information
LorenzoBianconi authored and nbd168 committed May 1, 2019
1 parent 6ca6672 commit 598da38
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 4 deletions.
9 changes: 5 additions & 4 deletions drivers/net/wireless/mediatek/mt76/dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@
#include "mt76.h"
#include "dma.h"

#define DMA_DUMMY_TXWI ((void *) ~0)

static int
mt76_dma_alloc_queue(struct mt76_dev *dev, struct mt76_queue *q,
int idx, int n_desc, int bufsize,
Expand Down Expand Up @@ -67,7 +65,7 @@ mt76_dma_add_buf(struct mt76_dev *dev, struct mt76_queue *q,
int i, idx = -1;

if (txwi)
q->entry[q->head].txwi = DMA_DUMMY_TXWI;
q->entry[q->head].txwi = DMA_DUMMY_DATA;

for (i = 0; i < nbufs; i += 2, buf += 2) {
u32 buf0 = buf[0].addr, buf1 = 0;
Expand Down Expand Up @@ -126,9 +124,12 @@ mt76_dma_tx_cleanup_idx(struct mt76_dev *dev, struct mt76_queue *q, int idx,
DMA_TO_DEVICE);
}

if (e->txwi == DMA_DUMMY_TXWI)
if (e->txwi == DMA_DUMMY_DATA)
e->txwi = NULL;

if (e->skb == DMA_DUMMY_DATA)
e->skb = NULL;

*prev_e = *e;
memset(e, 0, sizeof(*e));
}
Expand Down
2 changes: 2 additions & 0 deletions drivers/net/wireless/mediatek/mt76/dma.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
#ifndef __MT76_DMA_H
#define __MT76_DMA_H

#define DMA_DUMMY_DATA ((void *)~0)

#define MT_RING_SIZE 0x10

#define MT_DMA_CTL_SD_LEN1 GENMASK(13, 0)
Expand Down

0 comments on commit 598da38

Please sign in to comment.