Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit dd205ee3 authored by derfelot's avatar derfelot
Browse files

Merge Linux 4.4.298 kernel

Changes in 4.4.298: (12 commits)
        platform/x86: apple-gmux: use resource_size() with res
        recordmcount.pl: fix typo in s390 mcount regex
        selinux: initialize proto variable in selinux_ip_postroute_compat()
        nfc: uapi: use kernel size_t to fix user-space builds
        uapi: fix linux/nfc.h userspace compilation errors
        xhci: Fresco FL1100 controller should not have BROKEN_MSI quirk set.
        usb: gadget: f_fs: Clear ffs_eventfd in ffs_data_clear.
        scsi: vmw_pvscsi: Set residual data length conditionally
        Input: appletouch - initialize work before device registration
        Input: spaceball - fix parsing of movement data packets
        net: fix use-after-free in tw_timer_handler
        Linux 4.4.298
parents dbe2d851 0dc4b955
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
VERSION = 4
PATCHLEVEL = 4
SUBLEVEL = 297
SUBLEVEL = 298
EXTRAVERSION =
NAME = Blurry Fish Butt

+9 −2
Original line number Diff line number Diff line
@@ -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 */
+2 −2
Original line number Diff line number Diff line
@@ -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:
+1 −1
Original line number Diff line number Diff line
@@ -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",
+5 −2
Original line number Diff line number Diff line
@@ -562,8 +562,11 @@ 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.
			 */
			if (e->dataLen && (e->dataLen < scsi_bufflen(cmd)))
				scsi_set_resid(cmd, scsi_bufflen(cmd) - e->dataLen);
			cmd->result = (DID_OK << 16);
			break;
Loading