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

Unverified Commit 542b264c authored by derfelot's avatar derfelot
Browse files

Merge Linux 4.4.272 kernel

Changes in 4.4.272: (24 commits)
        efi: cper: fix snprintf() use in cper_dimm_err_location()
        vfio/pci: Fix error return code in vfio_ecap_init()
        vfio/platform: fix module_put call in error flow
        ipvs: ignore IP_VS_SVC_F_HASHED flag when adding service
        HID: pidff: fix error return code in hid_pidff_init()
        netfilter: nfnetlink_cthelper: hit EBUSY on updates if size mismatches
        ieee802154: fix error return code in ieee802154_add_iface()
        ieee802154: fix error return code in ieee802154_llsec_getparams()
        Bluetooth: fix the erroneous flush_work() order
        Bluetooth: use correct lock to prevent UAF of hdev object
        net: caif: added cfserl_release function
        net: caif: add proper error handling
        net: caif: fix memory leak in caif_device_notify
        net: caif: fix memory leak in cfusbl_device_notify
        ALSA: timer: Fix master timer notification
        ext4: fix bug on in ext4_es_cache_extent as ext4_split_extent_at failed
        pid: take a reference when initializing `cad_pid`
        ocfs2: fix data corruption by fallocate
        nfc: fix NULL ptr dereference in llcp_sock_getname() after failed connect
        btrfs: fixup error handling in fixup_inode_link_counts
        KVM: SVM: Truncate GPR value for DR and CR accesses in !64-bit mode
        arm64: Remove unimplemented syscall log message
        xen-pciback: redo VF placement in the virtual topology
        Linux 4.4.272
parents 15f1a149 2b9e462d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
VERSION = 4
PATCHLEVEL = 4
SUBLEVEL = 271
SUBLEVEL = 272
EXTRAVERSION =
NAME = Blurry Fish Butt

+0 −8
Original line number Diff line number Diff line
@@ -495,14 +495,6 @@ asmlinkage long do_ni_syscall(struct pt_regs *regs)
	}
#endif

	if (show_unhandled_signals_ratelimited()) {
		pr_info("%s[%d]: syscall %d\n", current->comm,
			task_pid_nr(current), (int)regs->syscallno);
		dump_instr("", regs);
		if (user_mode(regs))
			__show_regs(regs);
	}

	return sys_ni_syscall();
}

+4 −4
Original line number Diff line number Diff line
@@ -2927,7 +2927,7 @@ static int cr_interception(struct vcpu_svm *svm)
	err = 0;
	if (cr >= 16) { /* mov to cr */
		cr -= 16;
		val = kvm_register_read(&svm->vcpu, reg);
		val = kvm_register_readl(&svm->vcpu, reg);
		switch (cr) {
		case 0:
			if (!check_selective_cr0_intercepted(svm, val))
@@ -2972,7 +2972,7 @@ static int cr_interception(struct vcpu_svm *svm)
			kvm_queue_exception(&svm->vcpu, UD_VECTOR);
			return 1;
		}
		kvm_register_write(&svm->vcpu, reg, val);
		kvm_register_writel(&svm->vcpu, reg, val);
	}
	kvm_complete_insn_gp(&svm->vcpu, err);

@@ -3004,13 +3004,13 @@ static int dr_interception(struct vcpu_svm *svm)
	if (dr >= 16) { /* mov to DRn */
		if (!kvm_require_dr(&svm->vcpu, dr - 16))
			return 1;
		val = kvm_register_read(&svm->vcpu, reg);
		val = kvm_register_readl(&svm->vcpu, reg);
		kvm_set_dr(&svm->vcpu, dr - 16, val);
	} else {
		if (!kvm_require_dr(&svm->vcpu, dr))
			return 1;
		kvm_get_dr(&svm->vcpu, dr, &val);
		kvm_register_write(&svm->vcpu, reg, val);
		kvm_register_writel(&svm->vcpu, reg, val);
	}

	skip_emulated_instruction(&svm->vcpu);
+1 −3
Original line number Diff line number Diff line
@@ -257,8 +257,7 @@ static int cper_dimm_err_location(struct cper_mem_err_compact *mem, char *msg)
	if (!msg || !(mem->validation_bits & CPER_MEM_VALID_MODULE_HANDLE))
		return 0;

	n = 0;
	len = CPER_REC_LEN - 1;
	len = CPER_REC_LEN;
	dmi_memdev_name(mem->mem_dev_handle, &bank, &device);
	if (bank && device)
		n = snprintf(msg, len, "DIMM location: %s %s ", bank, device);
@@ -267,7 +266,6 @@ static int cper_dimm_err_location(struct cper_mem_err_compact *mem, char *msg)
			     "DIMM location: not present. DMI handle: 0x%.4x ",
			     mem->mem_dev_handle);

	msg[n] = '\0';
	return n;
}

+1 −0
Original line number Diff line number Diff line
@@ -1304,6 +1304,7 @@ int hid_pidff_init(struct hid_device *hid)

	if (pidff->pool[PID_DEVICE_MANAGED_POOL].value &&
	    pidff->pool[PID_DEVICE_MANAGED_POOL].value[0] == 0) {
		error = -EPERM;
		hid_notice(hid,
			   "device does not support device managed pool\n");
		goto fail;
Loading