lkml.org 
[lkml]   [2018]   [Apr]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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;

\
 
 \ /
  Last update: 2018-05-01 01:57    [W:0.178 / U:0.416 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site