• Johan Hedberg's avatar
    Bluetooth: Use proper nesting annotation for l2cap_chan lock · abe84903
    Johan Hedberg authored
    By default lockdep considers all L2CAP channels equal. This would mean
    that we get warnings if a channel is locked when another one's lock is
    tried to be acquired in the same thread. This kind of inter-channel
    locking dependencies exist in the form of parent-child channels as well
    as any channel wishing to elevate the security by requesting procedures
    on the SMP channel.
    
    To eliminate the chance for these lockdep warnings we introduce a
    nesting level for each channel and use that when acquiring the channel
    lock. For now there exists the earlier mentioned three identified
    categories: SMP, "normal" channels and parent channels (i.e. those in
    BT_LISTEN state). The nesting level is defined as atomic_t since we need
    access to it before the lock is actually acquired.
    Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
    Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
    abe84903
l2cap_sock.c 34.8 KB