Merge tag 'nfc-next-4.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo...
authorDavid S. Miller <davem@davemloft.net>
Mon, 14 Mar 2016 02:43:01 +0000 (22:43 -0400)
committerDavid S. Miller <davem@davemloft.net>
Mon, 14 Mar 2016 02:43:01 +0000 (22:43 -0400)
Samuel Ortiz says:

====================
NFC 4.6 pull request

This is a very small one this time, with only 5 patches.
There are a couple of big items that could not be merged/finished
on time.

We have:

- 2 LLCP fixes for a race and a potential OOM.
- 2 cleanups for the pn544 and microread drivers.
- 1 Maintainer addition for the s3fwrn5 driver.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
MAINTAINERS
drivers/nfc/microread/i2c.c
drivers/nfc/pn544/i2c.c
include/linux/platform_data/microread.h [deleted file]
net/nfc/llcp_commands.c
net/nfc/llcp_sock.c

index 1663ad41803cef5a2007f90d48a05cfd001df4bc..b70294ea7d634a0bf37ce5dcb52a00ea14cb87f6 100644 (file)
@@ -7666,7 +7666,6 @@ F:        net/nfc/
 F:     include/net/nfc/
 F:     include/uapi/linux/nfc.h
 F:     drivers/nfc/
-F:     include/linux/platform_data/microread.h
 F:     include/linux/platform_data/nfcmrvl.h
 F:     include/linux/platform_data/nxp-nci.h
 F:     include/linux/platform_data/pn544.h
@@ -9509,6 +9508,7 @@ F:        drivers/media/i2c/s5k5baf.c
 
 SAMSUNG S3FWRN5 NFC DRIVER
 M:     Robert Baldyga <r.baldyga@samsung.com>
+M:     Krzysztof Opasiak <k.opasiak@samsung.com>
 L:     linux-nfc@lists.01.org (moderated for non-subscribers)
 S:     Supported
 F:     drivers/nfc/s3fwrn5
index 918e8f2eac47fa014056b4c87b26f98054e4beba..e0e8afd278495467c17e5cd26f21b6b51c8339db 100644 (file)
@@ -246,18 +246,10 @@ static int microread_i2c_probe(struct i2c_client *client,
                               const struct i2c_device_id *id)
 {
        struct microread_i2c_phy *phy;
-       struct microread_nfc_platform_data *pdata =
-               dev_get_platdata(&client->dev);
        int r;
 
        dev_dbg(&client->dev, "client %p\n", client);
 
-       if (!pdata) {
-               nfc_err(&client->dev, "client %p: missing platform data\n",
-                       client);
-               return -EINVAL;
-       }
-
        phy = devm_kzalloc(&client->dev, sizeof(struct microread_i2c_phy),
                           GFP_KERNEL);
        if (!phy)
index 76c318444304ebe151dec0fe02e945f00240f17c..45d0e667d7ae3f2271165e3e169a3b7b7656e97f 100644 (file)
@@ -877,20 +877,8 @@ exit_state_wait_secure_write_answer:
 static int pn544_hci_i2c_acpi_request_resources(struct i2c_client *client)
 {
        struct pn544_i2c_phy *phy = i2c_get_clientdata(client);
-       const struct acpi_device_id *id;
        struct gpio_desc *gpiod_en, *gpiod_fw;
-       struct device *dev;
-
-       if (!client)
-               return -EINVAL;
-
-       dev = &client->dev;
-
-       /* Match the struct device against a given list of ACPI IDs */
-       id = acpi_match_device(dev->driver->acpi_match_table, dev);
-
-       if (!id)
-               return -ENODEV;
+       struct device *dev = &client->dev;
 
        /* Get EN GPIO from ACPI */
        gpiod_en = devm_gpiod_get_index(dev, PN544_GPIO_NAME_EN, 1,
diff --git a/include/linux/platform_data/microread.h b/include/linux/platform_data/microread.h
deleted file mode 100644 (file)
index ca13992..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Driver include for the Inside Secure microread NFC Chip.
- *
- * Copyright (C) 2011 Tieto Poland
- * Copyright (C) 2012 Intel Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.        See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef _MICROREAD_H
-#define _MICROREAD_H
-
-#include <linux/i2c.h>
-
-#define MICROREAD_DRIVER_NAME  "microread"
-
-/* board config platform data for microread */
-struct microread_nfc_platform_data {
-       unsigned int rst_gpio;
-       unsigned int irq_gpio;
-       unsigned int ioh_gpio;
-};
-
-#endif /* _MICROREAD_H */
index 3621a902cb6e36e3399848694a8ab6bfc0a962a8..3425532c39f7839d9ce6d87167d6b9222d6cd5e2 100644 (file)
@@ -663,7 +663,7 @@ int nfc_llcp_send_i_frame(struct nfc_llcp_sock *sock,
                return -ENOBUFS;
        }
 
-       msg_data = kzalloc(len, GFP_KERNEL);
+       msg_data = kmalloc(len, GFP_USER | __GFP_NOWARN);
        if (msg_data == NULL)
                return -ENOMEM;
 
@@ -729,7 +729,7 @@ int nfc_llcp_send_ui_frame(struct nfc_llcp_sock *sock, u8 ssap, u8 dsap,
        if (local == NULL)
                return -ENODEV;
 
-       msg_data = kzalloc(len, GFP_KERNEL);
+       msg_data = kmalloc(len, GFP_USER | __GFP_NOWARN);
        if (msg_data == NULL)
                return -ENOMEM;
 
index ecf0a0196f18040fb3fb2dc21b79273da92a470e..b9edf5fae6ae979689ce9a5fc16f8f1aaf626137 100644 (file)
@@ -509,6 +509,11 @@ static int llcp_sock_getname(struct socket *sock, struct sockaddr *uaddr,
        memset(llcp_addr, 0, sizeof(*llcp_addr));
        *len = sizeof(struct sockaddr_nfc_llcp);
 
+       lock_sock(sk);
+       if (!llcp_sock->dev) {
+               release_sock(sk);
+               return -EBADFD;
+       }
        llcp_addr->sa_family = AF_NFC;
        llcp_addr->dev_idx = llcp_sock->dev->idx;
        llcp_addr->target_idx = llcp_sock->target_idx;
@@ -518,6 +523,7 @@ static int llcp_sock_getname(struct socket *sock, struct sockaddr *uaddr,
        llcp_addr->service_name_len = llcp_sock->service_name_len;
        memcpy(llcp_addr->service_name, llcp_sock->service_name,
               llcp_addr->service_name_len);
+       release_sock(sk);
 
        return 0;
 }