Bluetooth: Use struct list_head for L2CAP channels list

Use a well known Kernel API is always a good idea than implement your own
list.
In the future we might use RCU on this list.

Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h
index 6378bcc..ddf4bc5 100644
--- a/include/net/bluetooth/l2cap.h
+++ b/include/net/bluetooth/l2cap.h
@@ -277,16 +277,9 @@
 #define L2CAP_CONN_PARAM_REJECTED	0x0001
 
 /* ----- L2CAP channels and connections ----- */
-
 struct l2cap_chan {
 	struct sock *sk;
-	struct l2cap_chan	*next_c;
-	struct l2cap_chan	*prev_c;
-};
-
-struct l2cap_chan_list {
-	struct l2cap_chan *head;
-	rwlock_t	lock;
+	struct list_head list;
 };
 
 struct l2cap_conn {
@@ -312,7 +305,8 @@
 
 	__u8		disc_reason;
 
-	struct l2cap_chan_list chan_list;
+	struct list_head chan_l;
+	rwlock_t	chan_lock;
 };
 
 struct sock_del_list {