From: Mat Martineau <mathewm@codeaurora.org>
To: Andrei Emeltchenko <Andrei.Emeltchenko.news@gmail.com>
Cc: linux-bluetooth@vger.kernel.org
Subject: Re: [PATCHv1 17/17] Bluetooth: A2MP: Manage incoming connections
Date: Mon, 21 May 2012 15:45:38 -0700 (PDT) [thread overview]
Message-ID: <alpine.DEB.2.02.1205211530290.2239@mathewm-linux> (raw)
In-Reply-To: <1337351150-20526-18-git-send-email-Andrei.Emeltchenko.news@gmail.com>
On Fri, 18 May 2012, Andrei Emeltchenko wrote:
> From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
>
> Handle incoming A2MP connection by creating AMP manager and
> processing A2MP messages.
>
> Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
> ---
> include/net/bluetooth/a2mp.h | 4 ++++
> net/bluetooth/a2mp.c | 12 ++++++++++++
> net/bluetooth/l2cap_core.c | 14 ++++++++++----
> 3 files changed, 26 insertions(+), 4 deletions(-)
>
> diff --git a/include/net/bluetooth/a2mp.h b/include/net/bluetooth/a2mp.h
> index 980c266..b4f74c6 100644
> --- a/include/net/bluetooth/a2mp.h
> +++ b/include/net/bluetooth/a2mp.h
> @@ -15,6 +15,8 @@
> #ifndef __A2MP_H
> #define __A2MP_H
>
> +#include <net/bluetooth/l2cap.h>
> +
> #define A2MP_FEAT_EXT 0x8000
>
> struct amp_mgr {
> @@ -119,5 +121,7 @@ struct a2mp_physlink_rsp {
>
> void amp_mgr_get(struct amp_mgr *mgr);
> int amp_mgr_put(struct amp_mgr *mgr);
> +struct l2cap_chan *a2mp_channel_create(struct l2cap_conn *conn,
> + struct sk_buff *skb);
>
> #endif /* __A2MP_H */
> diff --git a/net/bluetooth/a2mp.c b/net/bluetooth/a2mp.c
> index 86b2078..dda297d 100644
> --- a/net/bluetooth/a2mp.c
> +++ b/net/bluetooth/a2mp.c
> @@ -544,3 +544,15 @@ static struct amp_mgr *amp_mgr_create(struct l2cap_conn *conn)
>
> return mgr;
> }
> +
> +struct l2cap_chan *a2mp_channel_create(struct l2cap_conn *conn,
> + struct sk_buff *skb)
> +{
> + struct amp_mgr *mgr;
> +
> + mgr = amp_mgr_create(conn);
> +
> + BT_DBG("mgr: %p chan %p", mgr, mgr->a2mp_chan);
> +
> + return mgr->a2mp_chan;
> +}
> diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
> index b5c4229..8c9250e 100644
> --- a/net/bluetooth/l2cap_core.c
> +++ b/net/bluetooth/l2cap_core.c
> @@ -56,6 +56,7 @@
> #include <net/bluetooth/hci_core.h>
> #include <net/bluetooth/l2cap.h>
> #include <net/bluetooth/smp.h>
> +#include <net/bluetooth/a2mp.h>
>
> bool disable_ertm;
>
> @@ -4652,10 +4653,15 @@ static inline int l2cap_data_channel(struct l2cap_conn *conn, u16 cid, struct sk
>
> chan = l2cap_get_chan_by_scid(conn, cid);
> if (!chan) {
> - BT_DBG("unknown cid 0x%4.4x", cid);
> - /* Drop packet and return */
> - kfree_skb(skb);
> - return 0;
> + if (cid == L2CAP_CID_A2MP) {
> + chan = a2mp_channel_create(conn, skb);
This allocates a new AMP manager for each incoming command, doesn't
it? I'd expect the manager to be created once when it is first
needed, then remain active until the ACL is closed.
> + l2cap_chan_lock(chan);
> + } else {
> + BT_DBG("unknown cid 0x%4.4x", cid);
> + /* Drop packet and return */
> + kfree_skb(skb);
> + return 0;
> + }
> }
>
> BT_DBG("chan %p, len %d", chan, skb->len);
> --
> 1.7.9.5
How do you plan to create an AMP manager if you don't get an A2MP
command from the remote device first?
Regards,
--
Mat Martineau
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum
next prev parent reply other threads:[~2012-05-21 22:45 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-18 14:25 [PATCHv1 00/17] Bluetooth A2MP implementation Andrei Emeltchenko
2012-05-18 14:25 ` [PATCHv1 01/17] Bluetooth: A2MP: Create A2MP channel Andrei Emeltchenko
2012-05-22 17:45 ` Mat Martineau
2012-05-23 7:49 ` Andrei Emeltchenko
2012-05-23 15:44 ` Mat Martineau
2012-05-24 7:51 ` Andrei Emeltchenko
2012-05-24 15:59 ` Mat Martineau
2012-05-25 8:09 ` Andrei Emeltchenko
2012-05-25 17:18 ` Mat Martineau
2012-05-28 7:24 ` Andrei Emeltchenko
2012-05-28 13:59 ` Andrei Emeltchenko
2012-05-29 16:23 ` Mat Martineau
2012-05-30 13:29 ` Andrei Emeltchenko
2012-05-18 14:25 ` [PATCHv1 02/17] Bluetooth: A2MP: AMP Manager basic functions Andrei Emeltchenko
2012-05-18 14:25 ` [PATCHv1 03/17] Bluetooth: A2MP: Build and Send msg helpers Andrei Emeltchenko
2012-05-18 14:25 ` [PATCHv1 04/17] Bluetooth: A2MP: Add chan callbacks Andrei Emeltchenko
2012-05-18 14:25 ` [PATCHv1 05/17] Bluetooth: A2MP: Definitions for A2MP commands Andrei Emeltchenko
2012-05-18 14:25 ` [PATCHv1 06/17] Bluetooth: A2MP: Define A2MP status codes Andrei Emeltchenko
2012-05-18 14:25 ` [PATCHv1 07/17] Bluetooth: A2MP: Process A2MP messages Andrei Emeltchenko
2012-05-18 14:25 ` [PATCHv1 08/17] Bluetooth: A2MP: Process A2MP Command Reject Andrei Emeltchenko
2012-05-18 14:25 ` [PATCHv1 09/17] Bluetooth: A2MP: Process A2MP Discover Request Andrei Emeltchenko
2012-05-18 14:25 ` [PATCHv1 10/17] Bluetooth: A2MP: Process A2MP Change Notify Andrei Emeltchenko
2012-05-18 14:25 ` [PATCHv1 11/17] Bluetooth: A2MP: Process A2MP Get Info Request Andrei Emeltchenko
2012-05-18 14:25 ` [PATCHv1 12/17] Bluetooth: A2MP: Process A2MP Get AMP Assoc Request Andrei Emeltchenko
2012-05-18 14:25 ` [PATCHv1 13/17] Bluetooth: A2MP: Process A2MP Create Physlink Request Andrei Emeltchenko
2012-05-18 14:25 ` [PATCHv1 14/17] Bluetooth: A2MP: Process A2MP Disc " Andrei Emeltchenko
2012-05-18 14:25 ` [PATCHv1 15/17] Bluetooth: A2MP: Process A2MP Command Responses Andrei Emeltchenko
2012-05-18 14:25 ` [PATCHv1 16/17] Bluetooth: A2MP: Handling fixed channels Andrei Emeltchenko
2012-05-21 22:28 ` Mat Martineau
2012-05-22 8:12 ` Andrei Emeltchenko
2012-05-22 17:35 ` Mat Martineau
2012-05-18 14:25 ` [PATCHv1 17/17] Bluetooth: A2MP: Manage incoming connections Andrei Emeltchenko
2012-05-21 22:45 ` Mat Martineau [this message]
2012-05-22 7:37 ` Andrei Emeltchenko
2012-05-22 17:38 ` Mat Martineau
2012-05-18 20:57 ` [PATCHv1 00/17] Bluetooth A2MP implementation Gustavo Padovan
2012-05-23 15:37 ` [PATCHv2 00/19] " Andrei Emeltchenko
2012-05-23 15:37 ` [PATCHv2 01/19] Bluetooth: Add unlink to L2CAP channel ops Andrei Emeltchenko
2012-05-23 23:13 ` Mat Martineau
2012-05-23 15:37 ` [PATCHv2 02/19] Bluetooth: Add ready " Andrei Emeltchenko
2012-05-23 23:16 ` Mat Martineau
2012-05-24 7:59 ` Andrei Emeltchenko
2012-05-23 15:37 ` [PATCHv2 03/19] Bluetooth: A2MP: Create A2MP channel Andrei Emeltchenko
2012-05-23 15:37 ` [PATCHv2 04/19] Bluetooth: A2MP: AMP Manager basic functions Andrei Emeltchenko
2012-05-23 15:37 ` [PATCHv2 05/19] Bluetooth: A2MP: Build and Send msg helpers Andrei Emeltchenko
2012-05-23 15:37 ` [PATCHv2 06/19] Bluetooth: A2MP: Add chan callbacks Andrei Emeltchenko
2012-05-23 15:37 ` [PATCHv2 07/19] Bluetooth: A2MP: Definitions for A2MP commands Andrei Emeltchenko
2012-05-23 15:37 ` [PATCHv2 08/19] Bluetooth: A2MP: Define A2MP status codes Andrei Emeltchenko
2012-05-23 15:37 ` [PATCHv2 09/19] Bluetooth: A2MP: Process A2MP messages Andrei Emeltchenko
2012-05-23 15:37 ` [PATCHv2 10/19] Bluetooth: A2MP: Process A2MP Command Reject Andrei Emeltchenko
2012-05-23 15:37 ` [PATCHv2 11/19] Bluetooth: A2MP: Process A2MP Discover Request Andrei Emeltchenko
2012-05-23 15:37 ` [PATCHv2 12/19] Bluetooth: A2MP: Process A2MP Change Notify Andrei Emeltchenko
2012-05-23 15:37 ` [PATCHv2 13/19] Bluetooth: A2MP: Process A2MP Get Info Request Andrei Emeltchenko
2012-05-23 15:37 ` [PATCHv2 14/19] Bluetooth: A2MP: Process A2MP Get AMP Assoc Request Andrei Emeltchenko
2012-05-23 15:37 ` [PATCHv2 15/19] Bluetooth: A2MP: Process A2MP Create Physlink Request Andrei Emeltchenko
2012-05-23 15:37 ` [PATCHv2 16/19] Bluetooth: A2MP: Process A2MP Disc " Andrei Emeltchenko
2012-05-23 15:37 ` [PATCHv2 17/19] Bluetooth: A2MP: Process A2MP Command Responses Andrei Emeltchenko
2012-05-23 15:37 ` [PATCHv2 18/19] Bluetooth: A2MP: Handling fixed channels Andrei Emeltchenko
2012-05-23 15:37 ` [PATCHv2 19/19] Bluetooth: A2MP: Manage incoming connections Andrei Emeltchenko
2012-05-23 23:30 ` Mat Martineau
2012-05-24 11:43 ` Andrei Emeltchenko
2012-05-24 11:38 ` [PATCHv3 00/18] Bluetooth A2MP implementation Andrei Emeltchenko
2012-05-24 11:38 ` [PATCHv3 01/18] Bluetooth: Add ready to L2CAP channel ops Andrei Emeltchenko
2012-05-24 11:38 ` [PATCHv3 02/18] Bluetooth: A2MP: Create A2MP channel Andrei Emeltchenko
2012-05-24 11:38 ` [PATCHv3 03/18] Bluetooth: A2MP: AMP Manager basic functions Andrei Emeltchenko
2012-05-24 11:38 ` [PATCHv3 04/18] Bluetooth: A2MP: Build and Send msg helpers Andrei Emeltchenko
2012-05-24 11:38 ` [PATCHv3 05/18] Bluetooth: A2MP: Add chan callbacks Andrei Emeltchenko
2012-05-25 12:20 ` Gustavo Padovan
2012-05-25 13:08 ` Andrei Emeltchenko
2012-05-24 11:38 ` [PATCHv3 06/18] Bluetooth: A2MP: Definitions for A2MP commands Andrei Emeltchenko
2012-05-24 11:38 ` [PATCHv3 07/18] Bluetooth: A2MP: Define A2MP status codes Andrei Emeltchenko
2012-05-24 11:38 ` [PATCHv3 08/18] Bluetooth: A2MP: Process A2MP messages Andrei Emeltchenko
2012-05-24 11:38 ` [PATCHv3 09/18] Bluetooth: A2MP: Process A2MP Command Reject Andrei Emeltchenko
2012-05-24 11:38 ` [PATCHv3 10/18] Bluetooth: A2MP: Process A2MP Discover Request Andrei Emeltchenko
2012-05-25 12:19 ` Gustavo Padovan
2012-05-25 13:11 ` Andrei Emeltchenko
2012-05-24 11:38 ` [PATCHv3 11/18] Bluetooth: A2MP: Process A2MP Change Notify Andrei Emeltchenko
2012-05-25 12:29 ` Gustavo Padovan
2012-05-24 11:38 ` [PATCHv3 12/18] Bluetooth: A2MP: Process A2MP Get Info Request Andrei Emeltchenko
2012-05-24 11:38 ` [PATCHv3 13/18] Bluetooth: A2MP: Process A2MP Get AMP Assoc Request Andrei Emeltchenko
2012-05-24 11:38 ` [PATCHv3 14/18] Bluetooth: A2MP: Process A2MP Create Physlink Request Andrei Emeltchenko
2012-05-24 11:38 ` [PATCHv3 15/18] Bluetooth: A2MP: Process A2MP Disc " Andrei Emeltchenko
2012-05-24 11:38 ` [PATCHv3 16/18] Bluetooth: A2MP: Process A2MP Command Responses Andrei Emeltchenko
2012-05-24 11:38 ` [PATCHv3 17/18] Bluetooth: A2MP: Handling fixed channels Andrei Emeltchenko
2012-05-24 11:38 ` [PATCHv3 18/18] Bluetooth: A2MP: Manage incoming connections Andrei Emeltchenko
2012-05-29 10:59 ` [PATCHv4 00/17] Bluetooth A2MP implementation Andrei Emeltchenko
2012-05-29 10:59 ` [PATCHv4 01/17] Bluetooth: A2MP: Create A2MP channel Andrei Emeltchenko
2012-05-29 10:59 ` [PATCHv4 02/17] Bluetooth: A2MP: AMP Manager basic functions Andrei Emeltchenko
2012-05-29 10:59 ` [PATCHv4 03/17] Bluetooth: A2MP: Build and Send msg helpers Andrei Emeltchenko
2012-05-29 10:59 ` [PATCHv4 04/17] Bluetooth: A2MP: Add chan callbacks Andrei Emeltchenko
2012-05-29 10:59 ` [PATCHv4 05/17] Bluetooth: A2MP: Definitions for A2MP commands Andrei Emeltchenko
2012-05-29 10:59 ` [PATCHv4 06/17] Bluetooth: A2MP: Define A2MP status codes Andrei Emeltchenko
2012-05-29 10:59 ` [PATCHv4 07/17] Bluetooth: A2MP: Process A2MP messages Andrei Emeltchenko
2012-05-29 10:59 ` [PATCHv4 08/17] Bluetooth: A2MP: Process A2MP Command Reject Andrei Emeltchenko
2012-05-29 10:59 ` [PATCHv4 09/17] Bluetooth: A2MP: Process A2MP Discover Request Andrei Emeltchenko
2012-05-29 10:59 ` [PATCHv4 10/17] Bluetooth: A2MP: Process A2MP Change Notify Andrei Emeltchenko
2012-05-29 10:59 ` [PATCHv4 11/17] Bluetooth: A2MP: Process A2MP Get Info Request Andrei Emeltchenko
2012-05-29 10:59 ` [PATCHv4 12/17] Bluetooth: A2MP: Process A2MP Get AMP Assoc Request Andrei Emeltchenko
2012-05-29 10:59 ` [PATCHv4 13/17] Bluetooth: A2MP: Process A2MP Create Physlink Request Andrei Emeltchenko
2012-05-29 10:59 ` [PATCHv4 14/17] Bluetooth: A2MP: Process A2MP Disc " Andrei Emeltchenko
2012-05-29 10:59 ` [PATCHv4 15/17] Bluetooth: A2MP: Process A2MP Command Responses Andrei Emeltchenko
2012-05-29 10:59 ` [PATCHv4 16/17] Bluetooth: A2MP: Handling fixed channels Andrei Emeltchenko
2012-05-29 10:59 ` [PATCHv4 17/17] Bluetooth: A2MP: Manage incoming connections Andrei Emeltchenko
2012-05-29 15:52 ` Gustavo Padovan
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=alpine.DEB.2.02.1205211530290.2239@mathewm-linux \
--to=mathewm@codeaurora.org \
--cc=Andrei.Emeltchenko.news@gmail.com \
--cc=linux-bluetooth@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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox