This is the 4.9.129 stable release

-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAlurKQgACgkQONu9yGCS
 aT7E3xAAlnAyE3V++IGG2+mlecbaaWZ40pUu93Rswveu1VucwUohzCXCjAR198gX
 PvTAh2qGHPxdU81W/xeIvxQOzyZKu5sPYdWZb+a8Thu5APndhquR/ZjMw51bfqkL
 WDFEP+NxB9QACFGhgPXsI1H0kUFWtapCPyckJsdNvES+eNYmzAPKSQk6DQ14bYMe
 SpA13DLXzHBrBR4ATeY49rbVXlne5vezn6f6HWN8VS3p+fMMaCW0k7lX5R/UPBFY
 UwsGL4YQ+Cl+55KN+15dAR0kCJftO63GbaIa345H8o6Uc6a6E4k0ISv7ikpav5hT
 oC/MAI5Pj1cEyDdlmD5CV20ZBmpJGq+BLvKX5aNcz9M755zipt9d4bz+mgzGz3bW
 OUuvM5eMZGlM0aJNQAPSSeKpQzmfgvwtbcX2tRNPcT+E+goewBniXDJO6HHCDQyA
 UCg436uL0pJbrrFfxq5xf1moIdesDI4s30opsT7LNQFWO9yvrAwO81uyYaCBiAPI
 MAioGC/Amjj8TANYszIdTYxKEPqX9ACdvh6cDdQDj8FEdZ6mnVZuHSIX5hGAw3ng
 XnrYjLn0DxFvtaM2qVoCaAEa6lV5Us1j+1sLmUjRnlcRSB7JnAmWIiYbH3ag1Okd
 rg1emK+SVGcQbSQGAgGjeVMAzpGIGVv0mPIK+BwnQnwUhnCsQXA=
 =KrwM
 -----END PGP SIGNATURE-----

Merge 4.9.129 into android-4.9

Changes in 4.9.129
	be2net: Fix memory leak in be_cmd_get_profile_config()
	rds: fix two RCU related problems
	net/mlx5: Fix use-after-free in self-healing flow
	net/mlx5: Fix debugfs cleanup in the device init/remove flow
	iommu/arm-smmu-v3: sync the OVACKFLG to PRIQ consumer register
	ALSA: msnd: Fix the default sample sizes
	ALSA: usb-audio: Fix multiple definitions in AU0828_DEVICE() macro
	xfrm: fix 'passing zero to ERR_PTR()' warning
	gfs2: Special-case rindex for gfs2_grow
	clk: imx6ul: fix missing of_node_put()
	clk: clk-fixed-factor: Clear OF_POPULATED flag in case of failure
	kbuild: add .DELETE_ON_ERROR special target
	media: tw686x: Fix oops on buffer alloc failure
	dmaengine: pl330: fix irq race with terminate_all
	MIPS: ath79: fix system restart
	media: videobuf2-core: check for q->error in vb2_core_qbuf()
	IB/rxe: Drop QP0 silently
	mtd/maps: fix solutionengine.c printk format warnings
	perf test: Fix subtest number when showing results
	gfs2: Don't reject a supposedly full bitmap if we have blocks reserved
	fbdev: omapfb: off by one in omapfb_register_client()
	video: goldfishfb: fix memory leak on driver remove
	fbdev/via: fix defined but not used warning
	perf powerpc: Fix callchain ip filtering when return address is in a register
	video: fbdev: pxafb: clear allocated memory for video modes
	fbdev: Distinguish between interlaced and progressive modes
	ARM: exynos: Clear global variable on init error path
	perf powerpc: Fix callchain ip filtering
	powerpc/powernv: opal_put_chars partial write fix
	MIPS: jz4740: Bump zload address
	mac80211: restrict delayed tailroom needed decrement
	Smack: Fix handling of IPv4 traffic received by PF_INET6 sockets
	wan/fsl_ucc_hdlc: use IS_ERR_VALUE() to check return value of qe_muram_alloc
	efi/arm: preserve early mapping of UEFI memory map longer for BGRT
	nfp: avoid buffer leak when FW communication fails
	xen-netfront: fix queue name setting
	arm64: dts: qcom: db410c: Fix Bluetooth LED trigger
	ARM: dts: qcom: msm8974-hammerhead: increase load on l20 for sdhci
	s390/qeth: fix race in used-buffer accounting
	s390/qeth: reset layer2 attribute on layer switch
	platform/x86: toshiba_acpi: Fix defined but not used build warnings
	KVM: arm/arm64: Fix vgic init race
	drivers/base: stop new probing during shutdown
	dmaengine: mv_xor_v2: kill the tasklets upon exit
	crypto: sharah - Unregister correct algorithms for SAHARA 3
	xen-netfront: fix warn message as irq device name has '/'
	RDMA/cma: Protect cma dev list with lock
	pstore: Fix incorrect persistent ram buffer mapping
	xen/netfront: fix waiting for xenbus state change
	IB/ipoib: Avoid a race condition between start_xmit and cm_rep_handler
	mmc: omap_hsmmc: fix wakeirq handling on removal
	Tools: hv: Fix a bug in the key delete code
	misc: hmc6352: fix potential Spectre v1
	usb: Don't die twice if PCI xhci host is not responding in resume
	mei: ignore not found client in the enumeration
	USB: Add quirk to support DJI CineSSD
	usb: uas: add support for more quirk flags
	usb: Avoid use-after-free by flushing endpoints early in usb_set_interface()
	usb: host: u132-hcd: Fix a sleep-in-atomic-context bug in u132_get_frame()
	USB: add quirk for WORLDE Controller KS49 or Prodipe MIDI 49C USB controller
	usb: gadget: udc: renesas_usb3: fix maxpacket size of ep0
	USB: net2280: Fix erroneous synchronization change
	USB: serial: io_ti: fix array underflow in completion handler
	usb: misc: uss720: Fix two sleep-in-atomic-context bugs
	USB: serial: ti_usb_3410_5052: fix array underflow in completion handler
	USB: yurex: Fix buffer over-read in yurex_write()
	usb: cdc-wdm: Fix a sleep-in-atomic-context bug in service_outstanding_interrupt()
	Revert "cdc-acm: implement put_char() and flush_chars()"
	cifs: prevent integer overflow in nxt_dir_entry()
	CIFS: fix wrapping bugs in num_entries()
	perf/core: Force USER_DS when recording user stack data
	NFSv4.1 fix infinite loop on I/O.
	binfmt_elf: Respect error return from `regset->active'
	audit: fix use-after-free in audit_add_watch
	mtdchar: fix overflows in adjustment of `count`
	evm: Don't deadlock if a crypto algorithm is unavailable
	MIPS: loongson64: cs5536: Fix PCI_OHCI_INT_REG reads
	configfs: fix registered group removal
	efi/esrt: Only call efi_mem_reserve() for boot services memory
	ARM: hisi: handle of_iomap and fix missing of_node_put
	ARM: hisi: fix error handling and missing of_node_put
	ARM: hisi: check of_iomap and fix missing of_node_put
	gpu: ipu-v3: csi: pass back mbus_code_to_bus_cfg error codes
	mmc: tegra: prevent HS200 on Tegra 3
	mmc: sdhci: do not try to use 3.3V signaling if not supported
	drm/nouveau: tegra: Detach from ARM DMA/IOMMU mapping
	parport: sunbpp: fix error return code
	coresight: Handle errors in finding input/output ports
	coresight: tpiu: Fix disabling timeouts
	gpio: pxa: Fix potential NULL dereference
	gpiolib: Mark gpio_suffixes array with __maybe_unused
	mfd: 88pm860x-i2c: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
	input: rohm_bu21023: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
	drm/amdkfd: Fix error codes in kfd_get_process
	rtc: bq4802: add error handling for devm_ioremap
	ALSA: pcm: Fix snd_interval_refine first/last with open min/max
	selftest: timers: Tweak raw_skew to SKIP when ADJ_OFFSET/other clock adjustments are in progress
	drm/panel: type promotion bug in s6e8aa0_read_mtp_id()
	pinctrl: qcom: spmi-gpio: Fix pmic_gpio_config_get() to be compliant
	mei: bus: type promotion bug in mei_nfc_if_version()
	MIPS: VDSO: Match data page cache colouring when D$ aliases
	e1000e: Remove Other from EIAC
	Partial revert "e1000e: Avoid receiver overrun interrupt bursts"
	e1000e: Fix queue interrupt re-raising in Other interrupt
	e1000e: Avoid missed interrupts following ICR read
	Revert "e1000e: Separate signaling for link check/link up"
	e1000e: Fix link check race condition
	Linux 4.9.129

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Greg Kroah-Hartman 2018-09-26 08:44:01 +02:00
commit b727d1c1a6
110 changed files with 607 additions and 325 deletions

View file

@ -1,6 +1,6 @@
VERSION = 4 VERSION = 4
PATCHLEVEL = 9 PATCHLEVEL = 9
SUBLEVEL = 128 SUBLEVEL = 129
EXTRAVERSION = EXTRAVERSION =
NAME = Roaring Lionus NAME = Roaring Lionus

View file

@ -188,6 +188,8 @@
regulator-max-microvolt = <2950000>; regulator-max-microvolt = <2950000>;
regulator-boot-on; regulator-boot-on;
regulator-system-load = <200000>;
regulator-allow-set-load;
}; };
l21 { l21 {

View file

@ -252,6 +252,7 @@ static int __init exynos_pmu_irq_init(struct device_node *node,
NULL); NULL);
if (!domain) { if (!domain) {
iounmap(pmu_base_addr); iounmap(pmu_base_addr);
pmu_base_addr = NULL;
return -ENOMEM; return -ENOMEM;
} }

View file

@ -148,13 +148,20 @@ static int hi3xxx_hotplug_init(void)
struct device_node *node; struct device_node *node;
node = of_find_compatible_node(NULL, NULL, "hisilicon,sysctrl"); node = of_find_compatible_node(NULL, NULL, "hisilicon,sysctrl");
if (node) { if (!node) {
ctrl_base = of_iomap(node, 0); id = ERROR_CTRL;
id = HI3620_CTRL; return -ENOENT;
return 0;
} }
id = ERROR_CTRL;
return -ENOENT; ctrl_base = of_iomap(node, 0);
of_node_put(node);
if (!ctrl_base) {
id = ERROR_CTRL;
return -ENOMEM;
}
id = HI3620_CTRL;
return 0;
} }
void hi3xxx_set_cpu(int cpu, bool enable) void hi3xxx_set_cpu(int cpu, bool enable)
@ -173,11 +180,15 @@ static bool hix5hd2_hotplug_init(void)
struct device_node *np; struct device_node *np;
np = of_find_compatible_node(NULL, NULL, "hisilicon,cpuctrl"); np = of_find_compatible_node(NULL, NULL, "hisilicon,cpuctrl");
if (np) { if (!np)
ctrl_base = of_iomap(np, 0); return false;
return true;
} ctrl_base = of_iomap(np, 0);
return false; of_node_put(np);
if (!ctrl_base)
return false;
return true;
} }
void hix5hd2_set_cpu(int cpu, bool enable) void hix5hd2_set_cpu(int cpu, bool enable)
@ -219,10 +230,10 @@ void hip01_set_cpu(int cpu, bool enable)
if (!ctrl_base) { if (!ctrl_base) {
np = of_find_compatible_node(NULL, NULL, "hisilicon,hip01-sysctrl"); np = of_find_compatible_node(NULL, NULL, "hisilicon,hip01-sysctrl");
if (np) BUG_ON(!np);
ctrl_base = of_iomap(np, 0); ctrl_base = of_iomap(np, 0);
else of_node_put(np);
BUG(); BUG_ON(!ctrl_base);
} }
if (enable) { if (enable) {

View file

@ -170,7 +170,7 @@
led@6 { led@6 {
label = "apq8016-sbc:blue:bt"; label = "apq8016-sbc:blue:bt";
gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>; gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "bt"; linux,default-trigger = "bluetooth-power";
default-state = "off"; default-state = "off";
}; };
}; };

View file

@ -40,6 +40,7 @@ static char ath79_sys_type[ATH79_SYS_TYPE_LEN];
static void ath79_restart(char *command) static void ath79_restart(char *command)
{ {
local_irq_disable();
ath79_device_reset_set(AR71XX_RESET_FULL_CHIP); ath79_device_reset_set(AR71XX_RESET_FULL_CHIP);
for (;;) for (;;)
if (cpu_wait) if (cpu_wait)

View file

@ -134,6 +134,7 @@ static inline u32 ath79_pll_rr(unsigned reg)
static inline void ath79_reset_wr(unsigned reg, u32 val) static inline void ath79_reset_wr(unsigned reg, u32 val)
{ {
__raw_writel(val, ath79_reset_base + reg); __raw_writel(val, ath79_reset_base + reg);
(void) __raw_readl(ath79_reset_base + reg); /* flush */
} }
static inline u32 ath79_reset_rr(unsigned reg) static inline u32 ath79_reset_rr(unsigned reg)

View file

@ -1,4 +1,4 @@
platform-$(CONFIG_MACH_INGENIC) += jz4740/ platform-$(CONFIG_MACH_INGENIC) += jz4740/
cflags-$(CONFIG_MACH_INGENIC) += -I$(srctree)/arch/mips/include/asm/mach-jz4740 cflags-$(CONFIG_MACH_INGENIC) += -I$(srctree)/arch/mips/include/asm/mach-jz4740
load-$(CONFIG_MACH_INGENIC) += 0xffffffff80010000 load-$(CONFIG_MACH_INGENIC) += 0xffffffff80010000
zload-$(CONFIG_MACH_INGENIC) += 0xffffffff80600000 zload-$(CONFIG_MACH_INGENIC) += 0xffffffff81000000

View file

@ -14,12 +14,14 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/irqchip/mips-gic.h> #include <linux/irqchip/mips-gic.h>
#include <linux/kernel.h>
#include <linux/mm.h> #include <linux/mm.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/timekeeper_internal.h> #include <linux/timekeeper_internal.h>
#include <asm/abi.h> #include <asm/abi.h>
#include <asm/page.h>
#include <asm/vdso.h> #include <asm/vdso.h>
/* Kernel-provided data used by the VDSO. */ /* Kernel-provided data used by the VDSO. */
@ -129,12 +131,30 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
vvar_size = gic_size + PAGE_SIZE; vvar_size = gic_size + PAGE_SIZE;
size = vvar_size + image->size; size = vvar_size + image->size;
/*
* Find a region that's large enough for us to perform the
* colour-matching alignment below.
*/
if (cpu_has_dc_aliases)
size += shm_align_mask + 1;
base = get_unmapped_area(NULL, 0, size, 0, 0); base = get_unmapped_area(NULL, 0, size, 0, 0);
if (IS_ERR_VALUE(base)) { if (IS_ERR_VALUE(base)) {
ret = base; ret = base;
goto out; goto out;
} }
/*
* If we suffer from dcache aliasing, ensure that the VDSO data page
* mapping is coloured the same as the kernel's mapping of that memory.
* This ensures that when the kernel updates the VDSO data userland
* will observe it without requiring cache invalidations.
*/
if (cpu_has_dc_aliases) {
base = __ALIGN_MASK(base, shm_align_mask);
base += ((unsigned long)&vdso_data - gic_size) & shm_align_mask;
}
data_addr = base + gic_size; data_addr = base + gic_size;
vdso_addr = data_addr + PAGE_SIZE; vdso_addr = data_addr + PAGE_SIZE;

View file

@ -138,7 +138,7 @@ u32 pci_ohci_read_reg(int reg)
break; break;
case PCI_OHCI_INT_REG: case PCI_OHCI_INT_REG:
_rdmsr(DIVIL_MSR_REG(PIC_YSEL_LOW), &hi, &lo); _rdmsr(DIVIL_MSR_REG(PIC_YSEL_LOW), &hi, &lo);
if ((lo & 0x00000f00) == CS5536_USB_INTR) if (((lo >> PIC_YSEL_LOW_USB_SHIFT) & 0xf) == CS5536_USB_INTR)
conf_data = 1; conf_data = 1;
break; break;
default: default:

View file

@ -369,7 +369,7 @@ int opal_put_chars(uint32_t vtermno, const char *data, int total_len)
/* Closed or other error drop */ /* Closed or other error drop */
if (rc != OPAL_SUCCESS && rc != OPAL_BUSY && if (rc != OPAL_SUCCESS && rc != OPAL_BUSY &&
rc != OPAL_BUSY_EVENT) { rc != OPAL_BUSY_EVENT) {
written = total_len; written += total_len;
break; break;
} }
if (rc == OPAL_SUCCESS) { if (rc == OPAL_SUCCESS) {

View file

@ -216,7 +216,7 @@ struct crypto_alg *crypto_larval_lookup(const char *name, u32 type, u32 mask)
type &= mask; type &= mask;
alg = crypto_alg_lookup(name, type, mask); alg = crypto_alg_lookup(name, type, mask);
if (!alg) { if (!alg && !(mask & CRYPTO_NOLOAD)) {
request_module("crypto-%s", name); request_module("crypto-%s", name);
if (!((type ^ CRYPTO_ALG_NEED_FALLBACK) & mask & if (!((type ^ CRYPTO_ALG_NEED_FALLBACK) & mask &

View file

@ -2072,6 +2072,9 @@ void device_shutdown(void)
{ {
struct device *dev, *parent; struct device *dev, *parent;
wait_for_device_probe();
device_block_probing();
spin_lock(&devices_kset->list_lock); spin_lock(&devices_kset->list_lock);
/* /*
* Walk the devices list backward, shutting down each in turn. * Walk the devices list backward, shutting down each in turn.

View file

@ -177,8 +177,15 @@ static struct clk *_of_fixed_factor_clk_setup(struct device_node *node)
clk = clk_register_fixed_factor(NULL, clk_name, parent_name, flags, clk = clk_register_fixed_factor(NULL, clk_name, parent_name, flags,
mult, div); mult, div);
if (IS_ERR(clk)) if (IS_ERR(clk)) {
/*
* If parent clock is not registered, registration would fail.
* Clear OF_POPULATED flag so that clock registration can be
* attempted again from probe function.
*/
of_node_clear_flag(node, OF_POPULATED);
return clk; return clk;
}
ret = of_clk_add_provider(node, of_clk_src_simple_get, clk); ret = of_clk_add_provider(node, of_clk_src_simple_get, clk);
if (ret) { if (ret) {

View file

@ -120,6 +120,7 @@ static void __init imx6ul_clocks_init(struct device_node *ccm_node)
np = of_find_compatible_node(NULL, NULL, "fsl,imx6ul-anatop"); np = of_find_compatible_node(NULL, NULL, "fsl,imx6ul-anatop");
base = of_iomap(np, 0); base = of_iomap(np, 0);
of_node_put(np);
WARN_ON(!base); WARN_ON(!base);
clks[IMX6UL_PLL1_BYPASS_SRC] = imx_clk_mux("pll1_bypass_src", base + 0x00, 14, 1, pll_bypass_src_sels, ARRAY_SIZE(pll_bypass_src_sels)); clks[IMX6UL_PLL1_BYPASS_SRC] = imx_clk_mux("pll1_bypass_src", base + 0x00, 14, 1, pll_bypass_src_sels, ARRAY_SIZE(pll_bypass_src_sels));

View file

@ -1352,7 +1352,7 @@ err_sha_v4_algs:
err_sha_v3_algs: err_sha_v3_algs:
for (j = 0; j < k; j++) for (j = 0; j < k; j++)
crypto_unregister_ahash(&sha_v4_algs[j]); crypto_unregister_ahash(&sha_v3_algs[j]);
err_aes_algs: err_aes_algs:
for (j = 0; j < i; j++) for (j = 0; j < i; j++)
@ -1368,7 +1368,7 @@ static void sahara_unregister_algs(struct sahara_dev *dev)
for (i = 0; i < ARRAY_SIZE(aes_algs); i++) for (i = 0; i < ARRAY_SIZE(aes_algs); i++)
crypto_unregister_alg(&aes_algs[i]); crypto_unregister_alg(&aes_algs[i]);
for (i = 0; i < ARRAY_SIZE(sha_v4_algs); i++) for (i = 0; i < ARRAY_SIZE(sha_v3_algs); i++)
crypto_unregister_ahash(&sha_v3_algs[i]); crypto_unregister_ahash(&sha_v3_algs[i]);
if (dev->version > SAHARA_VERSION_3) if (dev->version > SAHARA_VERSION_3)

View file

@ -844,6 +844,8 @@ static int mv_xor_v2_remove(struct platform_device *pdev)
platform_msi_domain_free_irqs(&pdev->dev); platform_msi_domain_free_irqs(&pdev->dev);
tasklet_kill(&xor_dev->irq_tasklet);
clk_disable_unprepare(xor_dev->clk); clk_disable_unprepare(xor_dev->clk);
return 0; return 0;

View file

@ -2167,13 +2167,14 @@ static int pl330_terminate_all(struct dma_chan *chan)
pm_runtime_get_sync(pl330->ddma.dev); pm_runtime_get_sync(pl330->ddma.dev);
spin_lock_irqsave(&pch->lock, flags); spin_lock_irqsave(&pch->lock, flags);
spin_lock(&pl330->lock); spin_lock(&pl330->lock);
_stop(pch->thread); _stop(pch->thread);
spin_unlock(&pl330->lock);
pch->thread->req[0].desc = NULL; pch->thread->req[0].desc = NULL;
pch->thread->req[1].desc = NULL; pch->thread->req[1].desc = NULL;
pch->thread->req_running = -1; pch->thread->req_running = -1;
spin_unlock(&pl330->lock);
power_down = pch->active; power_down = pch->active;
pch->active = false; pch->active = false;

View file

@ -250,7 +250,6 @@ void __init efi_init(void)
reserve_regions(); reserve_regions();
efi_memattr_init(); efi_memattr_init();
efi_esrt_init(); efi_esrt_init();
efi_memmap_unmap();
memblock_reserve(params.mmap & PAGE_MASK, memblock_reserve(params.mmap & PAGE_MASK,
PAGE_ALIGN(params.mmap_size + PAGE_ALIGN(params.mmap_size +

View file

@ -118,11 +118,13 @@ static int __init arm_enable_runtime_services(void)
{ {
u64 mapsize; u64 mapsize;
if (!efi_enabled(EFI_BOOT)) { if (!efi_enabled(EFI_BOOT) || !efi_enabled(EFI_MEMMAP)) {
pr_info("EFI services will not be available.\n"); pr_info("EFI services will not be available.\n");
return 0; return 0;
} }
efi_memmap_unmap();
if (efi_runtime_disabled()) { if (efi_runtime_disabled()) {
pr_info("EFI runtime services will be disabled.\n"); pr_info("EFI runtime services will be disabled.\n");
return 0; return 0;

Some files were not shown because too many files have changed in this diff Show more