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:
commit
b727d1c1a6
110 changed files with 607 additions and 325 deletions
2
Makefile
2
Makefile
|
|
@ -1,6 +1,6 @@
|
||||||
VERSION = 4
|
VERSION = 4
|
||||||
PATCHLEVEL = 9
|
PATCHLEVEL = 9
|
||||||
SUBLEVEL = 128
|
SUBLEVEL = 129
|
||||||
EXTRAVERSION =
|
EXTRAVERSION =
|
||||||
NAME = Roaring Lionus
|
NAME = Roaring Lionus
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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 &
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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));
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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 +
|
||||||
|
|
|
||||||
|
|
@ -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
Loading…
Reference in a new issue