aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/bluetooth/6lowpan.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
index 3f20dce9d671..3d8ceb251d75 100644
--- a/net/bluetooth/6lowpan.c
+++ b/net/bluetooth/6lowpan.c
@@ -87,13 +87,6 @@ struct lowpan_dev {
87 struct delayed_work notify_peers; 87 struct delayed_work notify_peers;
88}; 88};
89 89
90static inline void peer_free(struct rcu_head *head)
91{
92 struct lowpan_peer *e = container_of(head, struct lowpan_peer, rcu);
93
94 kfree(e);
95}
96
97static inline struct lowpan_dev *lowpan_dev(const struct net_device *netdev) 90static inline struct lowpan_dev *lowpan_dev(const struct net_device *netdev)
98{ 91{
99 return netdev_priv(netdev); 92 return netdev_priv(netdev);
@@ -108,7 +101,7 @@ static inline void peer_add(struct lowpan_dev *dev, struct lowpan_peer *peer)
108static inline bool peer_del(struct lowpan_dev *dev, struct lowpan_peer *peer) 101static inline bool peer_del(struct lowpan_dev *dev, struct lowpan_peer *peer)
109{ 102{
110 list_del_rcu(&peer->list); 103 list_del_rcu(&peer->list);
111 call_rcu(&peer->rcu, peer_free); 104 kfree_rcu(peer, rcu);
112 105
113 module_put(THIS_MODULE); 106 module_put(THIS_MODULE);
114 107
@@ -1219,7 +1212,7 @@ static void disconnect_all_peers(void)
1219 l2cap_chan_close(peer->chan, ENOENT); 1212 l2cap_chan_close(peer->chan, ENOENT);
1220 1213
1221 list_del_rcu(&peer->list); 1214 list_del_rcu(&peer->list);
1222 call_rcu(&peer->rcu, peer_free); 1215 kfree_rcu(peer, rcu);
1223 1216
1224 module_put(THIS_MODULE); 1217 module_put(THIS_MODULE);
1225 } 1218 }