From 0f5ddf95785e0c2cf6b4e0b8acb2e08f00ed2807 Mon Sep 17 00:00:00 2001 From: Will Huang Date: Fri, 19 Oct 2018 13:49:56 +0800 Subject: [PATCH] qcacmn: Add bi-direction dma map flag to qdf_nbuf_cb In case of 11w PMF tx frame, some target would dma write to this tx buffer, it may cause smmu check fault. Add a bi-direction map flag to mcl skb.cb[] for this special case. Change-Id: I72a2c11abb9f3e7e8fb9c6f5290cd4f8d209b19a CRs-Fixed: 2337204 --- qdf/linux/src/i_qdf_nbuf.h | 8 +++++++- qdf/linux/src/i_qdf_nbuf_m.h | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/qdf/linux/src/i_qdf_nbuf.h b/qdf/linux/src/i_qdf_nbuf.h index d59d2a2c03b1..1292f128e8fd 100644 --- a/qdf/linux/src/i_qdf_nbuf.h +++ b/qdf/linux/src/i_qdf_nbuf.h @@ -148,6 +148,8 @@ typedef union { * @tx.dev.priv_cb_m.ipa.priv: private data, used by IPA * @tx.dev.priv_cb_m.desc_id: tx desc id, used to sync between host and fw * @tx.dev.priv_cb_m.mgmt_desc_id: mgmt descriptor for tx completion cb + * @tx.dev.priv_cb_m.dma_option.bi_map: flag to do bi-direction dma map + * @tx.dev.priv_cb_m.dma_option.reserved: reserved bits for future use * @tx.dev.priv_cb_m.reserved: reserved * * @tx.ftype: mcast2ucast, TSO, SG, MESH @@ -244,7 +246,11 @@ struct qdf_nbuf_cb { } ipa; uint16_t desc_id; uint16_t mgmt_desc_id; - uint32_t reserved; + struct { + uint8_t bi_map:1, + reserved:7; + } dma_option; + uint8_t reserved[3]; } priv_cb_m; } dev; uint8_t ftype; diff --git a/qdf/linux/src/i_qdf_nbuf_m.h b/qdf/linux/src/i_qdf_nbuf_m.h index 64d08f7a32fa..ac8ffdcd4303 100644 --- a/qdf/linux/src/i_qdf_nbuf_m.h +++ b/qdf/linux/src/i_qdf_nbuf_m.h @@ -45,6 +45,9 @@ (((struct qdf_nbuf_cb *)((skb)->cb))->u.tx.dev.priv_cb_m.desc_id) #define QDF_NBUF_CB_MGMT_TXRX_DESC_ID(skb)\ (((struct qdf_nbuf_cb *)((skb)->cb))->u.tx.dev.priv_cb_m.mgmt_desc_id) +#define QDF_NBUF_CB_TX_DMA_BI_MAP(skb) \ + (((struct qdf_nbuf_cb *)((skb)->cb))->u.tx.dev.priv_cb_m. \ + dma_option.bi_map) #define __qdf_nbuf_ipa_owned_get(skb) \ QDF_NBUF_CB_TX_IPA_OWNED(skb)