diff options
Diffstat (limited to 'drivers/net/wireless/mwifiex/tdls.c')
-rw-r--r-- | drivers/net/wireless/mwifiex/tdls.c | 23 |
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 | ||
546 | static int | 546 | static int |
547 | mwifiex_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 | |||
567 | static int | ||
547 | mwifiex_tdls_process_create_link(struct mwifiex_private *priv, u8 *peer) | 568 | mwifiex_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 | } |