Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'nfc-next-4.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/nfc-next

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>

+10 -59
+1 -1
MAINTAINERS
··· 7666 7666 F: include/net/nfc/ 7667 7667 F: include/uapi/linux/nfc.h 7668 7668 F: drivers/nfc/ 7669 - F: include/linux/platform_data/microread.h 7670 7669 F: include/linux/platform_data/nfcmrvl.h 7671 7670 F: include/linux/platform_data/nxp-nci.h 7672 7671 F: include/linux/platform_data/pn544.h ··· 9508 9509 9509 9510 SAMSUNG S3FWRN5 NFC DRIVER 9510 9511 M: Robert Baldyga <r.baldyga@samsung.com> 9512 + M: Krzysztof Opasiak <k.opasiak@samsung.com> 9511 9513 L: linux-nfc@lists.01.org (moderated for non-subscribers) 9512 9514 S: Supported 9513 9515 F: drivers/nfc/s3fwrn5
-8
drivers/nfc/microread/i2c.c
··· 246 246 const struct i2c_device_id *id) 247 247 { 248 248 struct microread_i2c_phy *phy; 249 - struct microread_nfc_platform_data *pdata = 250 - dev_get_platdata(&client->dev); 251 249 int r; 252 250 253 251 dev_dbg(&client->dev, "client %p\n", client); 254 - 255 - if (!pdata) { 256 - nfc_err(&client->dev, "client %p: missing platform data\n", 257 - client); 258 - return -EINVAL; 259 - } 260 252 261 253 phy = devm_kzalloc(&client->dev, sizeof(struct microread_i2c_phy), 262 254 GFP_KERNEL);
+1 -13
drivers/nfc/pn544/i2c.c
··· 877 877 static int pn544_hci_i2c_acpi_request_resources(struct i2c_client *client) 878 878 { 879 879 struct pn544_i2c_phy *phy = i2c_get_clientdata(client); 880 - const struct acpi_device_id *id; 881 880 struct gpio_desc *gpiod_en, *gpiod_fw; 882 - struct device *dev; 883 - 884 - if (!client) 885 - return -EINVAL; 886 - 887 - dev = &client->dev; 888 - 889 - /* Match the struct device against a given list of ACPI IDs */ 890 - id = acpi_match_device(dev->driver->acpi_match_table, dev); 891 - 892 - if (!id) 893 - return -ENODEV; 881 + struct device *dev = &client->dev; 894 882 895 883 /* Get EN GPIO from ACPI */ 896 884 gpiod_en = devm_gpiod_get_index(dev, PN544_GPIO_NAME_EN, 1,
-35
include/linux/platform_data/microread.h
··· 1 - /* 2 - * Driver include for the Inside Secure microread NFC Chip. 3 - * 4 - * Copyright (C) 2011 Tieto Poland 5 - * Copyright (C) 2012 Intel Corporation. All rights reserved. 6 - * 7 - * This program is free software; you can redistribute it and/or 8 - * modify it under the terms of the GNU General Public License 9 - * version 2 as published by the Free Software Foundation. 10 - * 11 - * This program is distributed in the hope that it will be useful, 12 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 - * GNU General Public License for more details. 15 - * 16 - * You should have received a copy of the GNU General Public License 17 - * along with this program; if not, write to the Free Software 18 - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 - */ 20 - 21 - #ifndef _MICROREAD_H 22 - #define _MICROREAD_H 23 - 24 - #include <linux/i2c.h> 25 - 26 - #define MICROREAD_DRIVER_NAME "microread" 27 - 28 - /* board config platform data for microread */ 29 - struct microread_nfc_platform_data { 30 - unsigned int rst_gpio; 31 - unsigned int irq_gpio; 32 - unsigned int ioh_gpio; 33 - }; 34 - 35 - #endif /* _MICROREAD_H */
+2 -2
net/nfc/llcp_commands.c
··· 663 663 return -ENOBUFS; 664 664 } 665 665 666 - msg_data = kzalloc(len, GFP_KERNEL); 666 + msg_data = kmalloc(len, GFP_USER | __GFP_NOWARN); 667 667 if (msg_data == NULL) 668 668 return -ENOMEM; 669 669 ··· 729 729 if (local == NULL) 730 730 return -ENODEV; 731 731 732 - msg_data = kzalloc(len, GFP_KERNEL); 732 + msg_data = kmalloc(len, GFP_USER | __GFP_NOWARN); 733 733 if (msg_data == NULL) 734 734 return -ENOMEM; 735 735
+6
net/nfc/llcp_sock.c
··· 509 509 memset(llcp_addr, 0, sizeof(*llcp_addr)); 510 510 *len = sizeof(struct sockaddr_nfc_llcp); 511 511 512 + lock_sock(sk); 513 + if (!llcp_sock->dev) { 514 + release_sock(sk); 515 + return -EBADFD; 516 + } 512 517 llcp_addr->sa_family = AF_NFC; 513 518 llcp_addr->dev_idx = llcp_sock->dev->idx; 514 519 llcp_addr->target_idx = llcp_sock->target_idx; ··· 523 518 llcp_addr->service_name_len = llcp_sock->service_name_len; 524 519 memcpy(llcp_addr->service_name, llcp_sock->service_name, 525 520 llcp_addr->service_name_len); 521 + release_sock(sk); 526 522 527 523 return 0; 528 524 }