linux-hardened/net
Marcel Holtmann 9eba32b86d Bluetooth: Add extra device reference counting for connections
The device model itself has no real usable reference counting at the
moment and this causes problems if parents are deleted before their
children. The device model itself handles the memory details of this
correctly, but the uevent order is not consistent. This causes various
problems for systems like HAL or even X.

So until device_put() does a proper cleanup, the device for Bluetooth
connection will be protected with an extra reference counting to ensure
the correct order of uevents when connections are terminated.

This is not an automatic feature. Higher Bluetooth layers like HIDP or
BNEP should grab this new reference to ensure that their uevents are
send before the ones from the parent device.

Based on a report by Brian Rogers <brian@xyzw.org>

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
2009-08-22 14:19:26 -07:00
..
9p 9p: Possible regression in p9_client_stat 2009-07-14 15:54:41 -05:00
802 net: remove COMPAT_NET_DEV_OPS 2009-05-25 01:53:53 -07:00
8021q vlan: adds fcoe offload related net_device_ops and updates fcoe_ddp_xid field 2009-08-14 16:12:06 -07:00
appletalk Use correct NET_RX_* returns for atalk_rcv() 2009-08-12 20:44:50 -07:00
atm net: mark read-only arrays as const 2009-08-05 10:42:58 -07:00
ax25 net: Move rx skb_orphan call to where needed 2009-06-23 16:36:25 -07:00
bluetooth Bluetooth: Add extra device reference counting for connections 2009-08-22 14:19:26 -07:00
bridge net/bridge: Add 'hairpin' port forwarding mode 2009-08-13 16:26:11 -07:00
can can: Use WARN_ONCE() instead of BUG_ON() for sanity check in receive path 2009-08-14 16:36:57 -07:00
core net: skb ftracer - add tracepoint to skb_copy_datagram_iovec (v3) 2009-08-13 16:26:14 -07:00
dcb DCB: fix kfree(skb) 2009-01-04 17:29:21 -08:00
dccp Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
decnet net: remove NET_RX_BAD and NET_RX_CN* defines 2009-07-05 19:15:35 -07:00
dsa dsa: fix 88e6xxx statistics counter snapshotting 2009-07-05 18:03:35 -07:00
econet Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
ethernet net: remove COMPAT_NET_DEV_OPS 2009-05-25 01:53:53 -07:00
ieee802154 nl802154: support START-CONFIRM primitive 2009-08-12 21:54:51 -07:00
ipv4 net: mark read-only arrays as const 2009-08-05 10:42:58 -07:00
ipv6 inet6: Set default traffic class 2009-08-13 16:43:32 -07:00
ipx headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
irda Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
iucv net: adding memory barrier to the poll and receive callbacks 2009-07-09 17:06:57 -07:00
key net: correct off-by-one write allocations reports 2009-06-18 00:29:12 -07:00
lapb net: remove NET_RX_BAD and NET_RX_CN* defines 2009-07-05 19:15:35 -07:00
llc net: mark read-only arrays as const 2009-08-05 10:42:58 -07:00
mac80211 mac80211: fix register_hw error path 2009-08-20 11:36:07 -04:00
netfilter net: mark read-only arrays as const 2009-08-05 10:42:58 -07:00
netlabel Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-30 19:22:43 -07:00
netlink net/compat/wext: send different messages to compat tasks 2009-07-15 08:53:39 -07:00
netrom Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
packet af_packet: style cleanups 2009-07-23 18:01:10 -07:00
phonet phonet: fix build when PROC_FS is disabled 2009-08-17 17:48:25 -07:00
rds net/rds: Use AF_INET for sin_family field 2009-08-05 20:30:13 -07:00
rfkill rfkill: add the GPS radio type 2009-08-04 16:44:23 -04:00
rose Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
rxrpc net: mark read-only arrays as const 2009-08-05 10:42:58 -07:00
sched net: Avoid enqueuing skb for default qdiscs 2009-08-06 20:10:18 -07:00
sctp Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
sunrpc headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
tipc genetlink: make netns aware 2009-07-12 14:03:27 -07:00
unix net: adding memory barrier to the poll and receive callbacks 2009-07-09 17:06:57 -07:00
wanrouter headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
wimax wimax: fix warning caused by not checking retval of rfkill_set_hw_state() 2009-06-11 11:12:48 -07:00
wireless cfg80211: allow cfg80211_connect_result with bssid == NULL 2009-08-20 11:36:07 -04:00
x25 headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
xfrm Fix xfrm hash collisions by changing __xfrm4_daddr_saddr_hash to hash addresses with addition 2009-08-09 21:45:31 -07:00
compat.c net/compat/wext: send different messages to compat tasks 2009-07-15 08:53:39 -07:00
Kconfig net/compat/wext: send different messages to compat tasks 2009-07-15 08:53:39 -07:00
Makefile net: remove redundant sched/ in net/Makefile 2009-07-12 20:11:14 -07:00
nonet.c
socket.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-04-06 18:05:43 -07:00
sysctl_net.c net: sysctl_net - use net_eq to compare nets 2009-03-16 16:23:30 +01:00
TUNABLE