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

Unverified Commit 4488ad05 authored by derfelot's avatar derfelot
Browse files

Merge Linux 4.4.263 kernel

Changes in 4.4.263: (15 commits)
        ext4: handle error of ext4_setup_system_zone() on remount
        ext4: don't allow overlapping system zones
        ext4: check journal inode extents more carefully
        platform/chrome: cros_ec_dev - Fix security issue
        btrfs: fix race when cloning extent buffer during rewind of an old root
        NFSD: Repair misuse of sv_lock in 5.10.16-rt30.
        scsi: lpfc: Fix some error codes in debugfs
        USB: replace hardcode maximum usb string length by definition
        usb: gadget: configfs: Fix KASAN use-after-free
        PCI: rpadlpar: Fix potential drc_name corruption in store functions
        x86/ioapic: Ignore IRQ2 again
        ext4: find old entry again if failed to rename whiteout
        ext4: fix potential error in ext4_do_update_inode
        genirq: Disable interrupts for force threaded handlers
        Linux 4.4.263

Conflicts:
	drivers/usb/gadget/configfs.c
parents fdb0ea61 4d422f6e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
VERSION = 4
PATCHLEVEL = 4
SUBLEVEL = 262
SUBLEVEL = 263
EXTRAVERSION =
NAME = Blurry Fish Butt

+10 −0
Original line number Diff line number Diff line
@@ -1040,6 +1040,16 @@ static int mp_map_pin_to_irq(u32 gsi, int idx, int ioapic, int pin,
	if (idx >= 0 && test_bit(mp_irqs[idx].srcbus, mp_bus_not_pci)) {
		irq = mp_irqs[idx].srcbusirq;
		legacy = mp_is_legacy_irq(irq);
		/*
		 * IRQ2 is unusable for historical reasons on systems which
		 * have a legacy PIC. See the comment vs. IRQ2 further down.
		 *
		 * If this gets removed at some point then the related code
		 * in lapic_assign_system_vectors() needs to be adjusted as
		 * well.
		 */
		if (legacy && irq == PIC_CASCADE_IR)
			return -EINVAL;
	}

	mutex_lock(&ioapic_mutex);
+6 −8
Original line number Diff line number Diff line
@@ -39,11 +39,10 @@ static ssize_t add_slot_store(struct kobject *kobj, struct kobj_attribute *attr,
	if (nbytes >= MAX_DRC_NAME_LEN)
		return 0;

	memcpy(drc_name, buf, nbytes);
	strscpy(drc_name, buf, nbytes + 1);

	end = strchr(drc_name, '\n');
	if (!end)
		end = &drc_name[nbytes];
	if (end)
		*end = '\0';

	rc = dlpar_add_slot(drc_name);
@@ -70,11 +69,10 @@ static ssize_t remove_slot_store(struct kobject *kobj,
	if (nbytes >= MAX_DRC_NAME_LEN)
		return 0;

	memcpy(drc_name, buf, nbytes);
	strscpy(drc_name, buf, nbytes + 1);

	end = strchr(drc_name, '\n');
	if (!end)
		end = &drc_name[nbytes];
	if (end)
		*end = '\0';

	rc = dlpar_remove_slot(drc_name);
+4 −0
Original line number Diff line number Diff line
@@ -137,6 +137,10 @@ static long ec_device_ioctl_xcmd(struct cros_ec_dev *ec, void __user *arg)
	if (copy_from_user(&u_cmd, arg, sizeof(u_cmd)))
		return -EFAULT;

	if ((u_cmd.outsize > EC_MAX_MSG_BYTES) ||
	    (u_cmd.insize > EC_MAX_MSG_BYTES))
		return -EINVAL;

	s_cmd = kmalloc(sizeof(*s_cmd) + max(u_cmd.outsize, u_cmd.insize),
			GFP_KERNEL);
	if (!s_cmd)
+2 −2
Original line number Diff line number Diff line
@@ -311,8 +311,8 @@ int cros_ec_query_all(struct cros_ec_device *ec_dev)
			ec_dev->max_response = EC_PROTO2_MAX_PARAM_SIZE;
			ec_dev->max_passthru = 0;
			ec_dev->pkt_xfer = NULL;
			ec_dev->din_size = EC_MSG_BYTES;
			ec_dev->dout_size = EC_MSG_BYTES;
			ec_dev->din_size = EC_PROTO2_MSG_BYTES;
			ec_dev->dout_size = EC_PROTO2_MSG_BYTES;
		} else {
			/*
			 * It's possible for a test to occur too early when
Loading