bluetooth: don't use bitmaps for random flag accesses
Linus Torvalds authored
The bluetooth code uses our bitmap infrastructure for the two bits (!)
of connection setup flags, and in the process causes odd problems when
it converts between a bitmap and just the regular values of said bits.

It's completely pointless to do things like bitmap_to_arr32() to convert
a bitmap into a u32.  It shoudln't have been a bitmap in the first
place.  The reason to use bitmaps is if you have arbitrary number of
bits you want to manage (not two!), or if you rely on the atomicity
guarantees of the bitmap setting and clearing.

The code could use an "atomic_t" and use "atomic_or/andnot()" to set and
clear the bit values, but considering that it then copies the bitmaps
around with "bitmap_to_arr32()" and friends, there clearly cannot be a
lot of atomicity requirements.

So just use a regular integer.

In the process, this avoids the warnings about erroneous use of
bitmap_from_u64() which were triggered on 32-bit architectures when
conversion from a...
e1cff700
Name Last commit Last update
..
6lowpan net: don't include ndisc.h from ipv6.h
802 net: 802: Use memset_startat() to clear struct fields
8021q net: add netif_inherit_tso_max()
9p xen: switch gnttab_end_foreign_access() to take a struct page pointer
appletalk net: remove noblock parameter from skb_recv_datagram()
atm net: SO_RCVMARK socket option for SO_MARK with recvmsg()
ax25 ax25: Fix ax25 session cleanup problems
batman-adv net: wrap the wireless pointers in struct net_device in an ifdef
bluetooth bluetooth: don't use bitmaps for random flag accesses
bpf Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next
bpfilter uaccess: remove CONFIG_SET_FS
bridge Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
caif net: remove noblock parameter from skb_recv_datagram()
can can: isotp: isotp_bind(): do not validate unused address information
ceph libceph: use swap() macro instead of taking tmp variable
core net, neigh: Set lower cap for neigh_managed_work rearming
dcb net: dcb: disable softirqs in dcbnl_flush_dev()
dccp net: Add a second bind table hashed by port and address
decnet dn_route: set rt neigh to blackhole_netdev instead of loopback_dev in ifdown
dns_resolver net: remove redundant 'depends on NET'
dsa net: dsa: OF-ware slave_mii_bus
ethernet net: ethernet: set default assignment identifier to NET_NAME_ENUM
ethtool ethtool: Add 10base-T1L link mode entry
hsr net: add per-cpu storage and net->core_stats
ieee802154 net: SO_RCVMARK socket option for SO_MARK with recvmsg()
ife
ipv4
ipv6
iucv
kcm
key
l2tp
l3mdev
lapb
llc
mac80211
mac802154
mctp
mpls
mptcp
ncsi
netfilter
netlabel
netlink
netrom
nfc
nsh
openvswitch
packet
phonet
psample
qrtr
rds
rfkill
rose
rxrpc
sched
sctp
smc
strparser
sunrpc
switchdev
tipc
tls
unix
vmw_vsock
wireless
x25
xdp
xfrm
Kconfig
Kconfig.debug
Makefile
compat.c
devres.c
socket.c
sysctl_net.c