Hi Andrei, * Andrei Emeltchenko <Andrei.Emeltchenko.news@xxxxxxxxx> [2012-05-24 14:38:15 +0300]: > From: Andrei Emeltchenko <andrei.emeltchenko@xxxxxxxxx> > > Add state change, close and skb allocation callbacks. > > Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@xxxxxxxxx> > --- > net/bluetooth/a2mp.c | 40 ++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 40 insertions(+) > > diff --git a/net/bluetooth/a2mp.c b/net/bluetooth/a2mp.c > index e7e5f5f..eb98541 100644 > --- a/net/bluetooth/a2mp.c > +++ b/net/bluetooth/a2mp.c > @@ -63,8 +63,46 @@ static void a2mp_send(struct amp_mgr *mgr, u8 code, u8 ident, u16 len, > kfree(cmd); > } > > +static void a2mp_chan_state_change_cb(void *data, int state) > +{ > + struct amp_mgr *mgr = data; > + struct l2cap_chan *chan; > + > + if (!mgr) > + return; > + > + chan = mgr->a2mp_chan; > + > + BT_DBG("chan %p state %s", chan, state_to_string(state)); > + > + chan->state = state; > + > + switch (state) { > + case BT_CLOSED: > + if (mgr) > + amp_mgr_put(mgr); > + break; > + } > +} > + > +static void a2mp_chan_close_cb(void *data) > +{ > + struct amp_mgr *mgr = data; > + > + l2cap_chan_destroy(mgr->a2mp_chan); > +} > + > +static struct sk_buff *a2mp_chan_alloc_skb_cb(struct l2cap_chan *chan, > + unsigned long len, int nb) > +{ > + return bt_skb_alloc(len, GFP_KERNEL); > +} > + > static struct l2cap_ops a2mp_chan_ops = { > .name = "L2CAP A2MP channel", > + .state_change = a2mp_chan_state_change_cb, > + .close = a2mp_chan_close_cb, > + .alloc_skb = a2mp_chan_alloc_skb_cb, > }; > > static struct l2cap_chan *a2mp_chan_open(struct l2cap_conn *conn) > @@ -110,6 +148,8 @@ static struct l2cap_chan *a2mp_chan_open(struct l2cap_conn *conn) > chan->remote_mps = chan->omtu; > chan->mps = chan->omtu; > > + chan->state = BT_CONNECTED; > + This change seems to be unrelated to this patch. Gustavo -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html