Messages in this thread | | | Date | Tue, 01 May 2018 05:26:41 +0530 | From | Sriram R <> | Subject | Re: [PATCH 4.4 44/44] ath10k: fix rfc1042 header retrieval in QCA4019 with eth decap mode |
| |
On 2018-05-01 00:54, Greg Kroah-Hartman wrote: > 4.4-stable review patch. If anyone has any objections, please let me > know. Hi Greg,
This is a dependency patch to the actual fix , [PATCH 2/2 - linux-stable-4.4] ath10k: rebuild crypto header in rx data frames.
We would like both these patches to be upstreamed to 4.4 together.
As mentioned in cover, These patches depends on 3 other mac80211 patches so the below mac80211 commits needs to be picked first in the same order and then apply this patchset.
f980ebc058c2 : mac80211: allow not sending MIC up from driver for HW crypto f631a77ba920 : mac80211: allow same PN for AMSDU sub-frames cef0acd4d7d4 : mac80211: Add RX flag to indicate ICV stripped
These patches should be applied in that order(commit f980ebc058c2 first) and they should apply cleanly with --3-way merge.
Kindly revert if you face any issues.
Thanks, Sriram.R
> > ------------------ > > From: Vasanthakumar Thiagarajan <vthiagar@qti.qualcomm.com> > > commit 2f38c3c01de945234d23dd163e3528ccb413066d upstream. > > Chipset from QCA99X0 onwards (QCA99X0, QCA9984, QCA4019 & future) > rx_hdr_status is not padded to align in 4-byte boundary. Define a > new hw_params field to handle different alignment behaviour between > different hw. This patch fixes improper retrieval of rfc1042 header > with QCA4019. This patch along with "ath10k: Properly remove padding > from the start of rx payload" will fix traffic failure in ethernet > decap mode for QCA4019. > > Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qti.qualcomm.com> > Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com> > Signed-off-by: Sriram R <srirrama@codeaurora.org> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > --- > drivers/net/wireless/ath/ath10k/core.c | 8 ++++++++ > drivers/net/wireless/ath/ath10k/core.h | 4 ++++ > 2 files changed, 12 insertions(+) > > --- a/drivers/net/wireless/ath/ath10k/core.c > +++ b/drivers/net/wireless/ath/ath10k/core.c > @@ -67,6 +67,7 @@ static const struct ath10k_hw_params ath > .board_size = QCA988X_BOARD_DATA_SZ, > .board_ext_size = QCA988X_BOARD_EXT_DATA_SZ, > }, > + .decap_align_bytes = 4, > }, > { > .id = QCA6174_HW_2_1_VERSION, > @@ -85,6 +86,7 @@ static const struct ath10k_hw_params ath > .board_size = QCA6174_BOARD_DATA_SZ, > .board_ext_size = QCA6174_BOARD_EXT_DATA_SZ, > }, > + .decap_align_bytes = 4, > }, > { > .id = QCA6174_HW_2_1_VERSION, > @@ -103,6 +105,7 @@ static const struct ath10k_hw_params ath > .board_size = QCA6174_BOARD_DATA_SZ, > .board_ext_size = QCA6174_BOARD_EXT_DATA_SZ, > }, > + .decap_align_bytes = 4, > }, > { > .id = QCA6174_HW_3_0_VERSION, > @@ -121,6 +124,7 @@ static const struct ath10k_hw_params ath > .board_size = QCA6174_BOARD_DATA_SZ, > .board_ext_size = QCA6174_BOARD_EXT_DATA_SZ, > }, > + .decap_align_bytes = 4, > }, > { > .id = QCA6174_HW_3_2_VERSION, > @@ -140,6 +144,7 @@ static const struct ath10k_hw_params ath > .board_size = QCA6174_BOARD_DATA_SZ, > .board_ext_size = QCA6174_BOARD_EXT_DATA_SZ, > }, > + .decap_align_bytes = 4, > }, > { > .id = QCA99X0_HW_2_0_DEV_VERSION, > @@ -159,6 +164,7 @@ static const struct ath10k_hw_params ath > .board_size = QCA99X0_BOARD_DATA_SZ, > .board_ext_size = QCA99X0_BOARD_EXT_DATA_SZ, > }, > + .decap_align_bytes = 1, > }, > { > .id = QCA9377_HW_1_0_DEV_VERSION, > @@ -177,6 +183,7 @@ static const struct ath10k_hw_params ath > .board_size = QCA9377_BOARD_DATA_SZ, > .board_ext_size = QCA9377_BOARD_EXT_DATA_SZ, > }, > + .decap_align_bytes = 4, > }, > { > .id = QCA9377_HW_1_1_DEV_VERSION, > @@ -195,6 +202,7 @@ static const struct ath10k_hw_params ath > .board_size = QCA9377_BOARD_DATA_SZ, > .board_ext_size = QCA9377_BOARD_EXT_DATA_SZ, > }, > + .decap_align_bytes = 4, > }, > }; > > --- a/drivers/net/wireless/ath/ath10k/core.h > +++ b/drivers/net/wireless/ath/ath10k/core.h > @@ -670,6 +670,10 @@ struct ath10k { > size_t board_size; > size_t board_ext_size; > } fw; > + > + /* Number of bytes used for alignment in rx_hdr_status */ > + int decap_align_bytes; > + > } hw_params; > > const struct firmware *board;
| |