• Johan Hedberg's avatar
    Bluetooth: Convert SMP to use l2cap_chan infrastructure · 5d88cc73
    Johan Hedberg authored
    Now that we have all the necessary pieces in place we can fully convert
    SMP to use the L2CAP channel infrastructure. This patch adds the
    necessary callbacks and removes the now unneeded conn->smp_chan pointer.
    
    One notable behavioral change in this patch comes from the following
    code snippet:
    
    -       case L2CAP_CID_SMP:
    -               if (smp_sig_channel(conn, skb))
    -                       l2cap_conn_del(conn->hcon, EACCES);
    
    This piece of code was essentially forcing a disconnection if garbage
    SMP data was received. The l2cap_conn_del() function is private to
    l2cap_conn.c so we don't have access to it anymore when using the L2CAP
    channel callbacks. Therefore, the behavior of the new code is simply to
    return errors in the recv() callback (which is simply the old
    smp_sig_channel()), but no disconnection will occur.
    Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
    Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
    5d88cc73
l2cap.h 22.4 KB