From: greearb@candelatech.com To: ath10k@lists.infradead.org Cc: linux-wireless@vger.kernel.org, Ben Greear <greearb@candelatech.com> Subject: [PATCH v2 17/21] ath10k: Enable detecting failure to install key in firmware (CT). Date: Wed, 11 May 2016 10:02:29 -0700 [thread overview] Message-ID: <1462986153-16318-18-git-send-email-greearb@candelatech.com> (raw) In-Reply-To: <1462986153-16318-1-git-send-email-greearb@candelatech.com> From: Ben Greear <greearb@candelatech.com> CT firmware has been modified so that it will always return a response message when user requests to add a key, even if the key could not actually be added. Upstream firmware may assert or just not respond in a failure case. This change should be compatible with non CT firmware. Signed-off-by: Ben Greear <greearb@candelatech.com> --- drivers/net/wireless/ath/ath10k/core.h | 1 + drivers/net/wireless/ath/ath10k/htt.h | 7 +++++-- drivers/net/wireless/ath/ath10k/htt_rx.c | 20 +++++++++++++++++--- drivers/net/wireless/ath/ath10k/mac.c | 3 ++- 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h index f9e3b20..fda66bf 100644 --- a/drivers/net/wireless/ath/ath10k/core.h +++ b/drivers/net/wireless/ath/ath10k/core.h @@ -848,6 +848,7 @@ struct ath10k { unsigned int filter_flags; unsigned long dev_flags; bool dfs_block_radar_events; + int install_key_rv; /* Store error code from key-install */ /* protected by conf_mutex */ bool radar_enabled; diff --git a/drivers/net/wireless/ath/ath10k/htt.h b/drivers/net/wireless/ath/ath10k/htt.h index 911c535..c50b343 100644 --- a/drivers/net/wireless/ath/ath10k/htt.h +++ b/drivers/net/wireless/ath/ath10k/htt.h @@ -702,8 +702,9 @@ enum htt_security_types { }; enum htt_security_flags { -#define HTT_SECURITY_TYPE_MASK 0x7F +#define HTT_SECURITY_TYPE_MASK 0x3F #define HTT_SECURITY_TYPE_LSB 0 + HTT_SECURITY_IS_FAILURE = 1 << 6, /* CT firmware only */ HTT_SECURITY_IS_UNICAST = 1 << 7 }; @@ -712,7 +713,9 @@ struct htt_security_indication { /* dont use bitfields; undefined behaviour */ u8 flags; /* %htt_security_flags */ struct { - u8 security_type:7, /* %htt_security_types */ + u8 security_type:6, /* %htt_security_types */ + is_failure:1, /* does this response indicate failure + (CT Firmware) */ is_unicast:1; } __packed; } __packed; diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c index 47da904..02b5417 100644 --- a/drivers/net/wireless/ath/ath10k/htt_rx.c +++ b/drivers/net/wireless/ath/ath10k/htt_rx.c @@ -2307,9 +2307,23 @@ bool ath10k_htt_t2h_msg_handler(struct ath10k *ar, struct sk_buff *skb) ath10k_dbg(ar, ATH10K_DBG_HTT, "sec ind peer_id %d unicast %d type %d\n", - __le16_to_cpu(ev->peer_id), - !!(ev->flags & HTT_SECURITY_IS_UNICAST), - MS(ev->flags, HTT_SECURITY_TYPE)); + __le16_to_cpu(ev->peer_id), + !!(ev->flags & HTT_SECURITY_IS_UNICAST), + MS(ev->flags, HTT_SECURITY_TYPE)); + + /* CT firmware adds way to determine failure of key set, without + * just timing things out. Indication of failure is determined + * by the 6th bit of the security-type being set. + */ + if (ev->flags & HTT_SECURITY_IS_FAILURE) { + ath10k_warn(ar, "Firmware failed to set security key, peer_id: %d unicast %d type %d\n", + __le16_to_cpu(ev->peer_id), + !!(ev->flags & HTT_SECURITY_IS_UNICAST), + MS(ev->flags, HTT_SECURITY_TYPE)); + ar->install_key_rv = -EINVAL; + } else { + ar->install_key_rv = 0; + } complete(&ar->install_key_done); break; } diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index 2169337..373f2ee 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c @@ -255,7 +255,8 @@ static int ath10k_install_key(struct ath10k_vif *arvif, if (time_left == 0) return -ETIMEDOUT; - return 0; + ret = ar->install_key_rv; + return ret; } static int ath10k_install_peer_wep_keys(struct ath10k_vif *arvif, -- 2.4.3
WARNING: multiple messages have this Message-ID (diff)
From: greearb@candelatech.com To: ath10k@lists.infradead.org Cc: Ben Greear <greearb@candelatech.com>, linux-wireless@vger.kernel.org Subject: [PATCH v2 17/21] ath10k: Enable detecting failure to install key in firmware (CT). Date: Wed, 11 May 2016 10:02:29 -0700 [thread overview] Message-ID: <1462986153-16318-18-git-send-email-greearb@candelatech.com> (raw) In-Reply-To: <1462986153-16318-1-git-send-email-greearb@candelatech.com> From: Ben Greear <greearb@candelatech.com> CT firmware has been modified so that it will always return a response message when user requests to add a key, even if the key could not actually be added. Upstream firmware may assert or just not respond in a failure case. This change should be compatible with non CT firmware. Signed-off-by: Ben Greear <greearb@candelatech.com> --- drivers/net/wireless/ath/ath10k/core.h | 1 + drivers/net/wireless/ath/ath10k/htt.h | 7 +++++-- drivers/net/wireless/ath/ath10k/htt_rx.c | 20 +++++++++++++++++--- drivers/net/wireless/ath/ath10k/mac.c | 3 ++- 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h index f9e3b20..fda66bf 100644 --- a/drivers/net/wireless/ath/ath10k/core.h +++ b/drivers/net/wireless/ath/ath10k/core.h @@ -848,6 +848,7 @@ struct ath10k { unsigned int filter_flags; unsigned long dev_flags; bool dfs_block_radar_events; + int install_key_rv; /* Store error code from key-install */ /* protected by conf_mutex */ bool radar_enabled; diff --git a/drivers/net/wireless/ath/ath10k/htt.h b/drivers/net/wireless/ath/ath10k/htt.h index 911c535..c50b343 100644 --- a/drivers/net/wireless/ath/ath10k/htt.h +++ b/drivers/net/wireless/ath/ath10k/htt.h @@ -702,8 +702,9 @@ enum htt_security_types { }; enum htt_security_flags { -#define HTT_SECURITY_TYPE_MASK 0x7F +#define HTT_SECURITY_TYPE_MASK 0x3F #define HTT_SECURITY_TYPE_LSB 0 + HTT_SECURITY_IS_FAILURE = 1 << 6, /* CT firmware only */ HTT_SECURITY_IS_UNICAST = 1 << 7 }; @@ -712,7 +713,9 @@ struct htt_security_indication { /* dont use bitfields; undefined behaviour */ u8 flags; /* %htt_security_flags */ struct { - u8 security_type:7, /* %htt_security_types */ + u8 security_type:6, /* %htt_security_types */ + is_failure:1, /* does this response indicate failure + (CT Firmware) */ is_unicast:1; } __packed; } __packed; diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c index 47da904..02b5417 100644 --- a/drivers/net/wireless/ath/ath10k/htt_rx.c +++ b/drivers/net/wireless/ath/ath10k/htt_rx.c @@ -2307,9 +2307,23 @@ bool ath10k_htt_t2h_msg_handler(struct ath10k *ar, struct sk_buff *skb) ath10k_dbg(ar, ATH10K_DBG_HTT, "sec ind peer_id %d unicast %d type %d\n", - __le16_to_cpu(ev->peer_id), - !!(ev->flags & HTT_SECURITY_IS_UNICAST), - MS(ev->flags, HTT_SECURITY_TYPE)); + __le16_to_cpu(ev->peer_id), + !!(ev->flags & HTT_SECURITY_IS_UNICAST), + MS(ev->flags, HTT_SECURITY_TYPE)); + + /* CT firmware adds way to determine failure of key set, without + * just timing things out. Indication of failure is determined + * by the 6th bit of the security-type being set. + */ + if (ev->flags & HTT_SECURITY_IS_FAILURE) { + ath10k_warn(ar, "Firmware failed to set security key, peer_id: %d unicast %d type %d\n", + __le16_to_cpu(ev->peer_id), + !!(ev->flags & HTT_SECURITY_IS_UNICAST), + MS(ev->flags, HTT_SECURITY_TYPE)); + ar->install_key_rv = -EINVAL; + } else { + ar->install_key_rv = 0; + } complete(&ar->install_key_done); break; } diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index 2169337..373f2ee 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c @@ -255,7 +255,8 @@ static int ath10k_install_key(struct ath10k_vif *arvif, if (time_left == 0) return -ETIMEDOUT; - return 0; + ret = ar->install_key_rv; + return ret; } static int ath10k_install_peer_wep_keys(struct ath10k_vif *arvif, -- 2.4.3 _______________________________________________ ath10k mailing list ath10k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath10k
next prev parent reply other threads:[~2016-05-11 17:02 UTC|newest] Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-05-11 17:02 [PATCH v2 00/21] ath10k patches, generic and CT firmware related greearb 2016-05-11 17:02 ` greearb 2016-05-11 17:02 ` [PATCH v2 01/21] ath10k: Fix crash related to printing features greearb 2016-05-11 17:02 ` greearb 2016-06-07 11:38 ` [v2,01/21] " Kalle Valo 2016-06-07 11:38 ` Kalle Valo 2016-06-20 20:49 ` [PATCH v2 01/21] " Ben Greear 2016-06-20 20:49 ` Ben Greear 2016-06-20 21:56 ` Valo, Kalle 2016-06-20 21:56 ` Valo, Kalle 2016-05-11 17:02 ` [PATCH v2 02/21] ath10k: fix typo in logging message greearb 2016-05-11 17:02 ` greearb 2016-09-27 12:19 ` [v2,02/21] " Kalle Valo 2016-09-27 12:19 ` Kalle Valo 2016-05-11 17:02 ` [PATCH v2 03/21] ath10k: Allow changing ath10k debug mask at runtime greearb 2016-05-11 17:02 ` greearb 2016-09-14 14:06 ` Valo, Kalle 2016-09-14 14:06 ` Valo, Kalle 2016-09-14 15:33 ` Ben Greear 2016-09-14 15:33 ` Ben Greear 2016-09-15 14:19 ` Valo, Kalle 2016-09-15 14:19 ` Valo, Kalle 2016-09-15 15:07 ` Ben Greear 2016-09-15 15:07 ` Ben Greear 2016-05-11 17:02 ` [PATCH v2 04/21] ath10k: rate-limit packet tx errors greearb 2016-05-11 17:02 ` greearb 2016-09-14 14:07 ` Valo, Kalle 2016-09-14 14:07 ` Valo, Kalle 2016-09-14 15:02 ` Ben Greear 2016-09-14 15:02 ` Ben Greear 2016-09-15 13:59 ` Valo, Kalle 2016-09-15 13:59 ` Valo, Kalle 2016-09-15 15:22 ` Ben Greear 2016-09-15 15:22 ` Ben Greear 2016-05-11 17:02 ` [PATCH v2 05/21] ath10k: save firmware debug log messages greearb 2016-05-11 17:02 ` greearb 2016-05-11 17:02 ` [PATCH v2 06/21] ath10k: save firmware stacks upon firmware crash greearb 2016-05-11 17:02 ` greearb 2016-05-11 17:02 ` [PATCH v2 07/21] ath10k: save firmware RAM and ROM BSS sections on crash greearb 2016-05-11 17:02 ` greearb 2016-05-11 17:02 ` [PATCH v2 08/21] ath10k: make firmware text debug messages more verbose greearb 2016-05-11 17:02 ` greearb 2016-09-14 14:12 ` Valo, Kalle 2016-09-14 14:12 ` Valo, Kalle 2016-09-14 15:06 ` Ben Greear 2016-09-14 15:06 ` Ben Greear 2016-09-15 14:02 ` Valo, Kalle 2016-09-15 14:02 ` Valo, Kalle 2016-09-15 15:17 ` Ben Greear 2016-09-15 15:17 ` Ben Greear 2016-05-11 17:02 ` [PATCH v2 09/21] ath10k: print fw debug messages in hex greearb 2016-05-11 17:02 ` greearb 2016-09-14 14:18 ` Valo, Kalle 2016-09-14 14:18 ` Valo, Kalle 2016-09-14 15:13 ` Ben Greear 2016-09-14 15:13 ` Ben Greear 2016-09-15 14:06 ` Valo, Kalle 2016-09-15 14:06 ` Valo, Kalle 2016-09-15 15:14 ` Ben Greear 2016-09-15 15:14 ` Ben Greear 2016-09-15 17:34 ` Grumbach, Emmanuel 2016-09-15 17:34 ` Grumbach, Emmanuel 2016-09-15 17:59 ` Ben Greear 2016-09-15 17:59 ` Ben Greear 2016-09-15 18:08 ` Ben Greear 2016-09-15 18:08 ` Ben Greear 2016-09-15 20:22 ` Grumbach, Emmanuel 2016-09-15 20:22 ` Grumbach, Emmanuel 2016-05-11 17:02 ` [PATCH v2 10/21] ath10k: support logging ath10k_info as KERN_DEBUG greearb 2016-05-11 17:02 ` greearb 2016-09-14 14:19 ` Valo, Kalle 2016-09-14 14:19 ` Valo, Kalle 2016-09-14 15:14 ` Ben Greear 2016-09-14 15:14 ` Ben Greear 2016-09-15 14:12 ` Valo, Kalle 2016-09-15 14:12 ` Valo, Kalle 2016-09-15 15:11 ` Ben Greear 2016-09-15 15:11 ` Ben Greear 2016-05-11 17:02 ` [PATCH v2 11/21] ath10k: add fw-powerup-fail to ethtool stats greearb 2016-05-11 17:02 ` greearb 2016-09-14 14:25 ` Valo, Kalle 2016-09-14 14:25 ` Valo, Kalle 2016-09-14 15:19 ` Ben Greear 2016-09-14 15:19 ` Ben Greear 2016-05-11 17:02 ` [PATCH v2 12/21] ath10k: Support up to 64 vdevs greearb 2016-05-11 17:02 ` greearb 2016-09-14 15:01 ` Valo, Kalle 2016-09-14 15:01 ` Valo, Kalle 2016-05-11 17:02 ` [PATCH v2 13/21] ath10k: Document cycle count related counters greearb 2016-05-11 17:02 ` greearb 2016-05-11 17:02 ` [PATCH v2 14/21] ath10k: Add tx/rx bytes, cycle counters to ethtool stats greearb 2016-05-11 17:02 ` greearb 2016-05-11 17:02 ` [PATCH v2 15/21] ath10k: support CT firmware flag greearb 2016-05-11 17:02 ` greearb 2016-09-14 14:30 ` Valo, Kalle 2016-09-14 14:30 ` Valo, Kalle 2016-09-14 15:24 ` Ben Greear 2016-09-14 15:24 ` Ben Greear 2016-09-15 14:15 ` Valo, Kalle 2016-09-15 14:15 ` Valo, Kalle 2016-09-15 14:43 ` Ben Greear 2016-09-15 14:43 ` Ben Greear 2016-05-11 17:02 ` [PATCH v2 16/21] ath10k: Support 32+ stations greearb 2016-05-11 17:02 ` greearb 2016-05-11 17:02 ` greearb [this message] 2016-05-11 17:02 ` [PATCH v2 17/21] ath10k: Enable detecting failure to install key in firmware (CT) greearb 2016-05-11 17:02 ` [PATCH v2 18/21] ath10k: Note limitation on beaconing vdevs greearb 2016-05-11 17:02 ` greearb 2016-05-11 17:02 ` [PATCH v2 19/21] ath10k: Enable adhoc mode for CT firmware greearb 2016-05-11 17:02 ` greearb 2016-09-14 14:37 ` Valo, Kalle 2016-09-14 14:37 ` Valo, Kalle 2016-09-14 15:28 ` Ben Greear 2016-09-14 15:28 ` Ben Greear 2016-05-11 17:02 ` [PATCH v2 20/21] ath10k: read firmware crash over ioread32 if CE fails greearb 2016-05-11 17:02 ` greearb 2016-05-11 17:02 ` [PATCH v2 21/21] ath10k: Read dbglog buffers over register ping-pong greearb 2016-05-11 17:02 ` greearb
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1462986153-16318-18-git-send-email-greearb@candelatech.com \ --to=greearb@candelatech.com \ --cc=ath10k@lists.infradead.org \ --cc=linux-wireless@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.