aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mwifiex/tdls.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/mwifiex/tdls.c')
-rw-r--r--drivers/net/wireless/mwifiex/tdls.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/net/wireless/mwifiex/tdls.c b/drivers/net/wireless/mwifiex/tdls.c
index 1d5ed70432d6..f37862b5fabb 100644
--- a/drivers/net/wireless/mwifiex/tdls.c
+++ b/drivers/net/wireless/mwifiex/tdls.c
@@ -544,6 +544,27 @@ void mwifiex_process_tdls_action_frame(struct mwifiex_private *priv,
544} 544}
545 545
546static int 546static int
547mwifiex_tdls_process_config_link(struct mwifiex_private *priv, u8 *peer)
548{
549 struct mwifiex_sta_node *sta_ptr;
550 struct mwifiex_ds_tdls_oper tdls_oper;
551
552 memset(&tdls_oper, 0, sizeof(struct mwifiex_ds_tdls_oper));
553 sta_ptr = mwifiex_get_sta_entry(priv, peer);
554
555 if (!sta_ptr || sta_ptr->tdls_status == TDLS_SETUP_FAILURE) {
556 dev_err(priv->adapter->dev,
557 "link absent for peer %pM; cannot config\n", peer);
558 return -EINVAL;
559 }
560
561 memcpy(&tdls_oper.peer_mac, peer, ETH_ALEN);
562 tdls_oper.tdls_action = MWIFIEX_TDLS_CONFIG_LINK;
563 return mwifiex_send_cmd_sync(priv, HostCmd_CMD_TDLS_OPER,
564 HostCmd_ACT_GEN_SET, 0, &tdls_oper);
565}
566
567static int
547mwifiex_tdls_process_create_link(struct mwifiex_private *priv, u8 *peer) 568mwifiex_tdls_process_create_link(struct mwifiex_private *priv, u8 *peer)
548{ 569{
549 struct mwifiex_sta_node *sta_ptr; 570 struct mwifiex_sta_node *sta_ptr;
@@ -662,6 +683,8 @@ int mwifiex_tdls_oper(struct mwifiex_private *priv, u8 *peer, u8 action)
662 return mwifiex_tdls_process_disable_link(priv, peer); 683 return mwifiex_tdls_process_disable_link(priv, peer);
663 case MWIFIEX_TDLS_CREATE_LINK: 684 case MWIFIEX_TDLS_CREATE_LINK:
664 return mwifiex_tdls_process_create_link(priv, peer); 685 return mwifiex_tdls_process_create_link(priv, peer);
686 case MWIFIEX_TDLS_CONFIG_LINK:
687 return mwifiex_tdls_process_config_link(priv, peer);
665 } 688 }
666 return 0; 689 return 0;
667} 690}