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

Commit 598195a9 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge 4.9.37 into android-4.9



Changes in 4.9.37
	fs: add a VALID_OPEN_FLAGS
	fs: completely ignore unknown open flags
	driver core: platform: fix race condition with driver_override
	ceph: choose readdir frag based on previous readdir reply
	tracing/kprobes: Allow to create probe with a module name starting with a digit
	media: entity: Fix stream count check
	drm/virtio: don't leak bo on drm_gem_object_init failure
	usb: dwc3: replace %p with %pK
	USB: serial: cp210x: add ID for CEL EM3588 USB ZigBee stick
	Add USB quirk for HVR-950q to avoid intermittent device resets
	usb: usbip: set buffer pointers to NULL after free
	usb: Fix typo in the definition of Endpoint[out]Request
	USB: core: fix device node leak
	mac80211_hwsim: Replace bogus hrtimer clockid
	sysctl: don't print negative flag for proc_douintvec
	sysctl: report EINVAL if value is larger than UINT_MAX for proc_douintvec
	pinctrl: qcom: ipq4019: add missing pingroups for pins > 70
	pinctrl: cherryview: Add a quirk to make Acer Chromebook keyboard work again
	pinctrl: sh-pfc: r8a7794: Swap ATA signals
	pinctrl: sh-pfc: r8a7791: Fix SCIF2 pinmux data
	pinctrl: sh-pfc: r8a7791: Add missing DVC_MUTE signal
	pinctrl: sh-pfc: r8a7795: Fix hscif2_clk_b and hscif4_ctrl
	pinctrl: meson: meson8b: fix the NAND DQS pins
	pinctrl: stm32: Fix bad function call
	pinctrl: sunxi: Fix SPDIF function name for A83T
	pinctrl: cherryview: Add terminate entry for dmi_system_id tables
	pinctrl: mxs: atomically switch mux and drive strength config
	pinctrl: sh-pfc: r8a7791: Add missing HSCIF1 pinmux data
	pinctrl: sh-pfc: Update info pointer after SoC-specific init
	USB: serial: option: add two Longcheer device ids
	USB: serial: qcserial: new Sierra Wireless EM7305 device ID
	xhci: Limit USB2 port wake support for AMD Promontory hosts
	gfs2: Fix glock rhashtable rcu bug
	tpm: fix a kernel memory leak in tpm-sysfs.c
	x86/tools: Fix gcc-7 warning in relocs.c
	x86/uaccess: Optimize copy_user_enhanced_fast_string() for short strings
	ath10k: override CE5 config for QCA9377
	KEYS: Fix an error code in request_master_key()
	crypto: drbg - Fixes panic in wait_for_completion call
	RDMA/uverbs: Check port number supplied by user verbs cmds
	rt286: add Thinkpad Helix 2 to force_combo_jack_table
	Linux 4.9.37

Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parents 2d333357 c48f76d6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
VERSION = 4
PATCHLEVEL = 9
SUBLEVEL = 36
SUBLEVEL = 37
EXTRAVERSION =
NAME = Roaring Lionus

+5 −2
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@ ENTRY(copy_user_generic_unrolled)
	movl %edx,%ecx
	andl $63,%edx
	shrl $6,%ecx
	jz 17f
	jz .L_copy_short_string
1:	movq (%rsi),%r8
2:	movq 1*8(%rsi),%r9
3:	movq 2*8(%rsi),%r10
@@ -105,7 +105,8 @@ ENTRY(copy_user_generic_unrolled)
	leaq 64(%rdi),%rdi
	decl %ecx
	jnz 1b
17:	movl %edx,%ecx
.L_copy_short_string:
	movl %edx,%ecx
	andl $7,%edx
	shrl $3,%ecx
	jz 20f
@@ -221,6 +222,8 @@ EXPORT_SYMBOL(copy_user_generic_string)
 */
ENTRY(copy_user_enhanced_fast_string)
	ASM_STAC
	cmpl $64,%edx
	jb .L_copy_short_string	/* less then 64 bytes, avoid the costly 'rep' */
	movl %edx,%ecx
1:	rep
	movsb
+2 −1
Original line number Diff line number Diff line
@@ -992,11 +992,12 @@ static void emit_relocs(int as_text, int use_real_mode)
		die("Segment relocations found but --realmode not specified\n");

	/* Order the relocations for more efficient processing */
	sort_relocs(&relocs16);
	sort_relocs(&relocs32);
#if ELF_BITS == 64
	sort_relocs(&relocs32neg);
	sort_relocs(&relocs64);
#else
	sort_relocs(&relocs16);
#endif

	/* Print the relocations */
+1 −0
Original line number Diff line number Diff line
@@ -1691,6 +1691,7 @@ static int drbg_init_sym_kernel(struct drbg_state *drbg)
		return PTR_ERR(sk_tfm);
	}
	drbg->ctr_handle = sk_tfm;
	init_completion(&drbg->ctr_completion);

	req = skcipher_request_alloc(sk_tfm, GFP_KERNEL);
	if (!req) {
+9 −2
Original line number Diff line number Diff line
@@ -856,7 +856,7 @@ static ssize_t driver_override_store(struct device *dev,
				     const char *buf, size_t count)
{
	struct platform_device *pdev = to_platform_device(dev);
	char *driver_override, *old = pdev->driver_override, *cp;
	char *driver_override, *old, *cp;

	if (count > PATH_MAX)
		return -EINVAL;
@@ -869,12 +869,15 @@ static ssize_t driver_override_store(struct device *dev,
	if (cp)
		*cp = '\0';

	device_lock(dev);
	old = pdev->driver_override;
	if (strlen(driver_override)) {
		pdev->driver_override = driver_override;
	} else {
		kfree(driver_override);
		pdev->driver_override = NULL;
	}
	device_unlock(dev);

	kfree(old);

@@ -885,8 +888,12 @@ static ssize_t driver_override_show(struct device *dev,
				    struct device_attribute *attr, char *buf)
{
	struct platform_device *pdev = to_platform_device(dev);
	ssize_t len;

	return sprintf(buf, "%s\n", pdev->driver_override);
	device_lock(dev);
	len = sprintf(buf, "%s\n", pdev->driver_override);
	device_unlock(dev);
	return len;
}
static DEVICE_ATTR_RW(driver_override);

Loading