Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetoot...
[firefly-linux-kernel-4.4.55.git] / net / nfc / llcp_core.c
index 6184bd1fba3a05c92fcefb45782d07ffbabac8ff..b486f12ae2433f175cdcf62af7284c812c9ea29e 100644 (file)
@@ -27,7 +27,7 @@
 
 static u8 llcp_magic[3] = {0x46, 0x66, 0x6d};
 
-static struct list_head llcp_devices;
+static LIST_HEAD(llcp_devices);
 
 static void nfc_llcp_rx_skb(struct nfc_llcp_local *local, struct sk_buff *skb);
 
@@ -293,9 +293,9 @@ static void nfc_llcp_sdreq_timer(unsigned long data)
 
 struct nfc_llcp_local *nfc_llcp_find_local(struct nfc_dev *dev)
 {
-       struct nfc_llcp_local *local, *n;
+       struct nfc_llcp_local *local;
 
-       list_for_each_entry_safe(local, n, &llcp_devices, list)
+       list_for_each_entry(local, &llcp_devices, list)
                if (local->dev == dev)
                        return local;
 
@@ -609,14 +609,16 @@ u8 *nfc_llcp_general_bytes(struct nfc_dev *dev, size_t *general_bytes_len)
 
 int nfc_llcp_set_remote_gb(struct nfc_dev *dev, u8 *gb, u8 gb_len)
 {
-       struct nfc_llcp_local *local = nfc_llcp_find_local(dev);
+       struct nfc_llcp_local *local;
+
+       if (gb_len < 3 || gb_len > NFC_MAX_GT_LEN)
+               return -EINVAL;
 
+       local = nfc_llcp_find_local(dev);
        if (local == NULL) {
                pr_err("No LLCP device\n");
                return -ENODEV;
        }
-       if (gb_len < 3)
-               return -EINVAL;
 
        memset(local->remote_gb, 0, NFC_MAX_GT_LEN);
        memcpy(local->remote_gb, gb, gb_len);
@@ -1622,8 +1624,6 @@ void nfc_llcp_unregister_device(struct nfc_dev *dev)
 
 int __init nfc_llcp_init(void)
 {
-       INIT_LIST_HEAD(&llcp_devices);
-
        return nfc_llcp_sock_init();
 }