Linux 4.4.298
Greg Kroah-Hartman
maintainerI'm announcing the release of the 4.4.298 kernel.
All users of the 4.4 kernel series must upgrade.
The updated 4.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.4.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 +- drivers/input/joystick/spaceball.c | 11 +++++++++-- drivers/input/mouse/appletouch.c | 4 ++-- drivers/platform/x86/apple-gmux.c | 2 +- drivers/scsi/vmw_pvscsi.c | 7 +++++-- drivers/usb/gadget/function/f_fs.c | 9 ++++++--- drivers/usb/host/xhci-pci.c | 5 ++++- include/uapi/linux/nfc.h | 6 +++--- net/ipv4/af_inet.c | 10 ++++------ scripts/recordmcount.pl | 2 +- security/selinux/hooks.c | 2 +- 11 files changed, 37 insertions(+), 23 deletions(-)
Alexey Makhalov (1):
scsi: vmw_pvscsi: Set residual data length conditionally
Dmitry V. Levin (1):
uapi: fix linux/nfc.h userspace compilation errors
Greg Kroah-Hartman (1):
Linux 4.4.298
Heiko Carstens (1):
recordmcount.pl: fix typo in s390 mcount regex
Krzysztof Kozlowski (1):
nfc: uapi: use kernel size_t to fix user-space builds
Leo L. Schwab (1):
Input: spaceball - fix parsing of movement data packets
Mathias Nyman (1):
xhci: Fresco FL1100 controller should not have BROKEN_MSI quirk set.
Muchun Song (1):
net: fix use-after-free in tw_timer_handler
Pavel Skripkin (1):
Input: appletouch - initialize work before device registration
Tom Rix (1):
selinux: initialize proto variable in selinux_ip_postroute_compat()
Vincent Pelletier (1):
usb: gadget: f_fs: Clear ffs_eventfd in ffs_data_clear.
Wang Qing (1):
platform/x86: apple-gmux: use resource_size() with res
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,6 +1,6 @@ VERSION = 4 PATCHLEVEL = 4 -SUBLEVEL = 297 +SUBLEVEL = 298 EXTRAVERSION = NAME = Blurry Fish Butt
drivers/input/joystick/spaceball.c +9 -2
@@ -35,6 +35,7 @@#include <linux/module.h> #include <linux/input.h> #include <linux/serio.h> +#include <asm/unaligned.h> #define DRIVER_DESC "SpaceTec SpaceBall 2003/3003/4000 FLX driver"
@@ -91,9 +92,15 @@ static void spaceball_process_packet(struct spaceball* spaceball)case 'D' :/* Ball data */ if (spaceball->idx !=15 )return ; -for (i =0 ; i <6 ; i++) +/* +* Skip first three bytes; read six axes worth of data. +* Axis values are signed 16-bit big-endian. +*/ + data +=3 ; +for (i =0 ; i <ARRAY_SIZE (spaceball_axes); i++) {input_report_abs (dev, spaceball_axes[i], - (__s16)((data[2 * i +3 ] <<8 ) | data[2 * i +2 ])); + (__s16 )get_unaligned_be16 (&data[i *2 ])); + }break ;case 'K' :/* Button data */
drivers/input/mouse/appletouch.c +2 -2
@@ -929,6 +929,8 @@ static int atp_probe(struct usb_interface *iface,set_bit (BTN_TOOL_TRIPLETAP , input_dev->keybit);set_bit (BTN_LEFT , input_dev->keybit); +INIT_WORK (&dev->work, atp_reinit); + error =input_register_device (dev->input);if (error) goto err_free_buffer;
@@ -936,8 +938,6 @@ static int atp_probe(struct usb_interface *iface,/* save our data pointer in this interface device */ usb_set_intfdata (iface, dev); -INIT_WORK (&dev->work, atp_reinit); -return 0 ; err_free_buffer:
drivers/platform/x86/apple-gmux.c +1 -1
@@ -461,7 +461,7 @@ static int gmux_probe(struct pnp_dev *pnp, const struct pnp_device_id *id) } gmux_data->iostart = res->start; - gmux_data->iolen = res->end - res->start; + gmux_data->iolen =resource_size (res);if (gmux_data->iolen <GMUX_MIN_IO_LEN ) { pr_err("gmux I/O region too small (%lu < %u)\n",
drivers/scsi/vmw_pvscsi.c +5 -2
@@ -562,9 +562,12 @@ static void pvscsi_complete_request(struct pvscsi_adapter *adapter,* Commands like INQUIRY may transfer less data than * requested by the initiator via bufflen. Set residual * count to make upper layer aware of the actual amount -* of data returned. +* of data returned. There are cases when controller +* returns zero dataLen with non zero data - do not set +* residual count in that case. */ -scsi_set_resid (cmd,scsi_bufflen (cmd) - e->dataLen); +if (e->dataLen && (e->dataLen <scsi_bufflen (cmd))) +scsi_set_resid (cmd,scsi_bufflen (cmd) - e->dataLen); cmd->result = (DID_OK <<16 );break ;
drivers/usb/gadget/function/f_fs.c +6 -3
@@ -1476,11 +1476,15 @@ static void ffs_data_clear(struct ffs_data *ffs)BUG_ON (ffs->gadget); -if (ffs->epfiles) +if (ffs->epfiles) {ffs_epfiles_destroy (ffs->epfiles, ffs->eps_count); + ffs->epfiles =NULL ; + } -if (ffs->ffs_eventfd) +if (ffs->ffs_eventfd) {eventfd_ctx_put (ffs->ffs_eventfd); + ffs->ffs_eventfd =NULL ; + }kfree (ffs->raw_descs_data);kfree (ffs->raw_strings);
@@ -1493,7 +1497,6 @@ static void ffs_data_reset(struct ffs_data *ffs)ffs_data_clear (ffs); - ffs->epfiles =NULL ; ffs->raw_descs_data =NULL ; ffs->raw_descs =NULL ; ffs->raw_strings =NULL ;
drivers/usb/host/xhci-pci.c +4 -1
@@ -91,7 +91,6 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)/* Look for vendor-specific quirks */ if (pdev->vendor ==PCI_VENDOR_ID_FRESCO_LOGIC && (pdev->device ==PCI_DEVICE_ID_FRESCO_LOGIC_PDK || - pdev->device ==PCI_DEVICE_ID_FRESCO_LOGIC_FL1100 || pdev->device ==PCI_DEVICE_ID_FRESCO_LOGIC_FL1400 )) {if (pdev->device ==PCI_DEVICE_ID_FRESCO_LOGIC_PDK && pdev->revision ==0x0 ) {
@@ -126,6 +125,10 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_FL1009) xhci->quirks |= XHCI_BROKEN_STREAMS; +if (pdev->vendor ==PCI_VENDOR_ID_FRESCO_LOGIC && + pdev->device ==PCI_DEVICE_ID_FRESCO_LOGIC_FL1100 ) + xhci->quirks |=XHCI_TRUST_TX_LENGTH ; +if (pdev->vendor ==PCI_VENDOR_ID_NEC ) xhci->quirks |=XHCI_NEC_HOST ;
include/uapi/linux/nfc.h +3 -3
@@ -261,7 +261,7 @@ enum nfc_sdp_attr {#define NFC_SE_ENABLED 0x1struct sockaddr_nfc { -sa_family_t sa_family; +__kernel_sa_family_t sa_family;__u32 dev_idx;__u32 target_idx;__u32 nfc_protocol;
@@ -269,14 +269,14 @@ struct sockaddr_nfc {#define NFC_LLCP_MAX_SERVICE_NAME 63struct sockaddr_nfc_llcp { -sa_family_t sa_family; +__kernel_sa_family_t sa_family;__u32 dev_idx;__u32 target_idx;__u32 nfc_protocol;__u8 dsap;/* Destination SAP, if known */ __u8 ssap;/* Source SAP to be bound to */ char service_name[NFC_LLCP_MAX_SERVICE_NAME]; /* Service name URI */; -size_t service_name_len; +__kernel_size_t service_name_len; };/* NFC socket protocols */
net/ipv4/af_inet.c +4 -6
@@ -1770,6 +1770,10 @@ static int __init inet_init(void)tcp_v4_init (); +/* Initialise per-cpu ipv4 mibs */ +if (init_ipv4_mibs ()) +panic ("%s: Cannot init ipv4 mibs\n" , __func__); +/* Setup TCP slab cache for open requests. */ tcp_init ();
@@ -1798,12 +1802,6 @@ static int __init inet_init(void)if (init_inet_pernet_ops ())pr_crit ("%s: Cannot init ipv4 inet pernet ops\n" , __func__); -/* -* Initialise per-cpu ipv4 mibs -*/ - -if (init_ipv4_mibs ()) -pr_crit ("%s: Cannot init ipv4 mibs\n" , __func__);ipv4_proc_init ();
scripts/recordmcount.pl +1 -1
@@ -248,7 +248,7 @@ if ($arch eq "x86_64") { } elsif ($arch eq "s390" && $bits == 64) { if ($cc =~ /-DCC_USING_HOTPATCH/) { - $mcount_regex = "^\\s*([0-9a-fA-F]+):\\s*c0 04 00 00 00 00\\s*(bcrl\\s*0,|jgnop\\s*)[0-9a-f]+ <([^\+]*)>\$"; + $mcount_regex = "^\\s*([0-9a-fA-F]+):\\s*c0 04 00 00 00 00\\s*(brcl\\s*0,|jgnop\\s*)[0-9a-f]+ <([^\+]*)>\$"; $mcount_adjust = 0; } else { $mcount_regex = "^\\s*([0-9a-fA-F]+):\\s*R_390_(PC|PLT)32DBL\\s+_mcount\\+0x2\$";
security/selinux/hooks.c +1 -1
@@ -4974,7 +4974,7 @@ static unsigned int selinux_ip_postroute_compat(struct sk_buff *skb,struct common_audit_data ad;struct lsm_network_audit net = {0 ,};char *addrp; -u8 proto; +u8 proto =0 ;if (sk ==NULL )return NF_ACCEPT ;