This is the 5.4.111 stable release
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmBxjW0ACgkQONu9yGCS aT7YXhAAgvMi31rBZgwqvhd30kyYM/LeF39HzkY9jj33it1YilR6j+BChXG3pikq 4lq8DCyFbfGza55g1QJ2TZQpa1bvDxYV4V02xW9ur2gDQtFATVdg5QP+JKjm2/b9 hROnNW8yemfZLsjf4J3QevuFzBMWUuIxyh5tsqTE2O2B2/SbsZF1nd+R7nvN4w2X U1EOSMQ5i+EqIKG/Fy1yklnmEdp71Ven+otQeoHXzbB3fhJNqDq0YYyFyHtQaset +1muetkmMG1rDAWUwuq2+0u1pJsNyBoIqllrXAZsV68tI2PKil0NBKooW2OPfJw4 AYSjzRlLwQ3z12thBP9vtuK/3nVP9i4D3ymgWbDqdfEOYow/lLsZ/KQ6P4aTHhxO e0OPUD0fPd326Hfh3FwyoZVAe9/t3lK8me1GSXJmHKXIkEsQuOrXS7XnEU8w6u9g N4kamYpmb97LLrtg021phpkx6iRCHsbEw1CJJj8Se1VVf8Zrm0x5FgmDq+XxuECT 7ylnAh1I0ruR+yDTG3BGINS7YppLYOWgt6HrnEryhW67ereHj7M2HeficsX/lV8p 80w0xUFCQieFi4LO6vPoP2kyQlXsLpZQoxtPUfe3xTpAW9mJpOj8DY9Afmfg78As 3ysPWDmofgWm7TTiAF5BMTNd1yhJ9YhepWFssuYuLNkwqfrmtNE= =x0/5 -----END PGP SIGNATURE----- Merge 5.4.111 into android11-5.4-lts Changes in 5.4.111 ARM: dts: am33xx: add aliases for mmc interfaces bus: ti-sysc: Fix warning on unbind if reset is not deasserted platform/x86: intel-hid: Support Lenovo ThinkPad X1 Tablet Gen 2 bpf, x86: Use kvmalloc_array instead kmalloc_array in bpf_jit_comp net/mlx5e: Enforce minimum value check for ICOSQ size net: pxa168_eth: Fix a potential data race in pxa168_eth_remove mISDN: fix crash in fritzpci mac80211: choose first enabled channel for monitor drm/msm/adreno: a5xx_power: Don't apply A540 lm_setup to other GPUs drm/msm: Ratelimit invalid-fence message netfilter: conntrack: Fix gre tunneling over ipv6 platform/x86: thinkpad_acpi: Allow the FnLock LED to change state x86/build: Turn off -fcf-protection for realmode targets scsi: target: pscsi: Clean up after failure in pscsi_map_sg() ia64: mca: allocate early mca with GFP_ATOMIC ia64: fix format strings for err_inject cifs: revalidate mapping when we open files for SMB1 POSIX cifs: Silently ignore unknown oplock break handle bpf, x86: Validate computation of branch displacements for x86-64 bpf, x86: Validate computation of branch displacements for x86-32 nvme-mpath: replace direct_make_request with generic_make_request init/Kconfig: make COMPILE_TEST depend on !S390 init/Kconfig: make COMPILE_TEST depend on HAS_IOMEM Linux 5.4.111 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I6dfa5d8bd699bada25e8012a7f51a2687372b584
This commit is contained in:
commit
c06f6ce987
2
Makefile
2
Makefile
@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
VERSION = 5
|
||||
PATCHLEVEL = 4
|
||||
SUBLEVEL = 110
|
||||
SUBLEVEL = 111
|
||||
EXTRAVERSION =
|
||||
NAME = Kleptomaniac Octopus
|
||||
|
||||
|
@ -40,6 +40,9 @@
|
||||
ethernet1 = &cpsw_emac1;
|
||||
spi0 = &spi0;
|
||||
spi1 = &spi1;
|
||||
mmc0 = &mmc1;
|
||||
mmc1 = &mmc2;
|
||||
mmc2 = &mmc3;
|
||||
};
|
||||
|
||||
cpus {
|
||||
|
@ -59,7 +59,7 @@ show_##name(struct device *dev, struct device_attribute *attr, \
|
||||
char *buf) \
|
||||
{ \
|
||||
u32 cpu=dev->id; \
|
||||
return sprintf(buf, "%lx\n", name[cpu]); \
|
||||
return sprintf(buf, "%llx\n", name[cpu]); \
|
||||
}
|
||||
|
||||
#define store(name) \
|
||||
@ -86,9 +86,9 @@ store_call_start(struct device *dev, struct device_attribute *attr,
|
||||
|
||||
#ifdef ERR_INJ_DEBUG
|
||||
printk(KERN_DEBUG "pal_mc_err_inject for cpu%d:\n", cpu);
|
||||
printk(KERN_DEBUG "err_type_info=%lx,\n", err_type_info[cpu]);
|
||||
printk(KERN_DEBUG "err_struct_info=%lx,\n", err_struct_info[cpu]);
|
||||
printk(KERN_DEBUG "err_data_buffer=%lx, %lx, %lx.\n",
|
||||
printk(KERN_DEBUG "err_type_info=%llx,\n", err_type_info[cpu]);
|
||||
printk(KERN_DEBUG "err_struct_info=%llx,\n", err_struct_info[cpu]);
|
||||
printk(KERN_DEBUG "err_data_buffer=%llx, %llx, %llx.\n",
|
||||
err_data_buffer[cpu].data1,
|
||||
err_data_buffer[cpu].data2,
|
||||
err_data_buffer[cpu].data3);
|
||||
@ -117,8 +117,8 @@ store_call_start(struct device *dev, struct device_attribute *attr,
|
||||
|
||||
#ifdef ERR_INJ_DEBUG
|
||||
printk(KERN_DEBUG "Returns: status=%d,\n", (int)status[cpu]);
|
||||
printk(KERN_DEBUG "capabilities=%lx,\n", capabilities[cpu]);
|
||||
printk(KERN_DEBUG "resources=%lx\n", resources[cpu]);
|
||||
printk(KERN_DEBUG "capabilities=%llx,\n", capabilities[cpu]);
|
||||
printk(KERN_DEBUG "resources=%llx\n", resources[cpu]);
|
||||
#endif
|
||||
return size;
|
||||
}
|
||||
@ -131,7 +131,7 @@ show_virtual_to_phys(struct device *dev, struct device_attribute *attr,
|
||||
char *buf)
|
||||
{
|
||||
unsigned int cpu=dev->id;
|
||||
return sprintf(buf, "%lx\n", phys_addr[cpu]);
|
||||
return sprintf(buf, "%llx\n", phys_addr[cpu]);
|
||||
}
|
||||
|
||||
static ssize_t
|
||||
@ -145,7 +145,7 @@ store_virtual_to_phys(struct device *dev, struct device_attribute *attr,
|
||||
ret = get_user_pages_fast(virt_addr, 1, FOLL_WRITE, NULL);
|
||||
if (ret<=0) {
|
||||
#ifdef ERR_INJ_DEBUG
|
||||
printk("Virtual address %lx is not existing.\n",virt_addr);
|
||||
printk("Virtual address %llx is not existing.\n", virt_addr);
|
||||
#endif
|
||||
return -EINVAL;
|
||||
}
|
||||
@ -163,7 +163,7 @@ show_err_data_buffer(struct device *dev,
|
||||
{
|
||||
unsigned int cpu=dev->id;
|
||||
|
||||
return sprintf(buf, "%lx, %lx, %lx\n",
|
||||
return sprintf(buf, "%llx, %llx, %llx\n",
|
||||
err_data_buffer[cpu].data1,
|
||||
err_data_buffer[cpu].data2,
|
||||
err_data_buffer[cpu].data3);
|
||||
@ -178,13 +178,13 @@ store_err_data_buffer(struct device *dev,
|
||||
int ret;
|
||||
|
||||
#ifdef ERR_INJ_DEBUG
|
||||
printk("write err_data_buffer=[%lx,%lx,%lx] on cpu%d\n",
|
||||
printk("write err_data_buffer=[%llx,%llx,%llx] on cpu%d\n",
|
||||
err_data_buffer[cpu].data1,
|
||||
err_data_buffer[cpu].data2,
|
||||
err_data_buffer[cpu].data3,
|
||||
cpu);
|
||||
#endif
|
||||
ret=sscanf(buf, "%lx, %lx, %lx",
|
||||
ret = sscanf(buf, "%llx, %llx, %llx",
|
||||
&err_data_buffer[cpu].data1,
|
||||
&err_data_buffer[cpu].data2,
|
||||
&err_data_buffer[cpu].data3);
|
||||
|
@ -1851,7 +1851,7 @@ ia64_mca_cpu_init(void *cpu_data)
|
||||
data = mca_bootmem();
|
||||
first_time = 0;
|
||||
} else
|
||||
data = (void *)__get_free_pages(GFP_KERNEL,
|
||||
data = (void *)__get_free_pages(GFP_ATOMIC,
|
||||
get_order(sz));
|
||||
if (!data)
|
||||
panic("Could not allocate MCA memory for cpu %d\n",
|
||||
|
@ -34,7 +34,7 @@ M16_CFLAGS := $(call cc-option, -m16, $(CODE16GCC_CFLAGS))
|
||||
REALMODE_CFLAGS := $(M16_CFLAGS) -g -Os -DDISABLE_BRANCH_PROFILING \
|
||||
-Wall -Wstrict-prototypes -march=i386 -mregparm=3 \
|
||||
-fno-strict-aliasing -fomit-frame-pointer -fno-pic \
|
||||
-mno-mmx -mno-sse
|
||||
-mno-mmx -mno-sse $(call cc-option,-fcf-protection=none)
|
||||
|
||||
REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -ffreestanding)
|
||||
REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -fno-stack-protector)
|
||||
|
@ -1050,7 +1050,16 @@ xadd: if (is_imm8(insn->off))
|
||||
}
|
||||
|
||||
if (image) {
|
||||
if (unlikely(proglen + ilen > oldproglen)) {
|
||||
/*
|
||||
* When populating the image, assert that:
|
||||
*
|
||||
* i) We do not write beyond the allocated space, and
|
||||
* ii) addrs[i] did not change from the prior run, in order
|
||||
* to validate assumptions made for computing branch
|
||||
* displacements.
|
||||
*/
|
||||
if (unlikely(proglen + ilen > oldproglen ||
|
||||
proglen + ilen != addrs[i])) {
|
||||
pr_err("bpf_jit: fatal error\n");
|
||||
return -EFAULT;
|
||||
}
|
||||
@ -1118,7 +1127,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
|
||||
extra_pass = true;
|
||||
goto skip_init_addrs;
|
||||
}
|
||||
addrs = kmalloc_array(prog->len + 1, sizeof(*addrs), GFP_KERNEL);
|
||||
addrs = kvmalloc_array(prog->len + 1, sizeof(*addrs), GFP_KERNEL);
|
||||
if (!addrs) {
|
||||
prog = orig_prog;
|
||||
goto out_addrs;
|
||||
@ -1195,7 +1204,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
|
||||
if (image)
|
||||
bpf_prog_fill_jited_linfo(prog, addrs + 1);
|
||||
out_addrs:
|
||||
kfree(addrs);
|
||||
kvfree(addrs);
|
||||
kfree(jit_data);
|
||||
prog->aux->jit_data = NULL;
|
||||
}
|
||||
|
@ -2278,7 +2278,16 @@ emit_cond_jmp: jmp_cond = get_cond_jmp_opcode(BPF_OP(code), false);
|
||||
}
|
||||
|
||||
if (image) {
|
||||
if (unlikely(proglen + ilen > oldproglen)) {
|
||||
/*
|
||||
* When populating the image, assert that:
|
||||
*
|
||||
* i) We do not write beyond the allocated space, and
|
||||
* ii) addrs[i] did not change from the prior run, in order
|
||||
* to validate assumptions made for computing branch
|
||||
* displacements.
|
||||
*/
|
||||
if (unlikely(proglen + ilen > oldproglen ||
|
||||
proglen + ilen != addrs[i])) {
|
||||
pr_err("bpf_jit: fatal error\n");
|
||||
return -EFAULT;
|
||||
}
|
||||
|
@ -2685,7 +2685,9 @@ static int sysc_remove(struct platform_device *pdev)
|
||||
|
||||
pm_runtime_put_sync(&pdev->dev);
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
reset_control_assert(ddata->rsts);
|
||||
|
||||
if (!reset_control_status(ddata->rsts))
|
||||
reset_control_assert(ddata->rsts);
|
||||
|
||||
unprepare:
|
||||
sysc_unprepare(ddata);
|
||||
|
@ -300,7 +300,7 @@ int a5xx_power_init(struct msm_gpu *gpu)
|
||||
/* Set up the limits management */
|
||||
if (adreno_is_a530(adreno_gpu))
|
||||
a530_lm_setup(gpu);
|
||||
else
|
||||
else if (adreno_is_a540(adreno_gpu))
|
||||
a540_lm_setup(gpu);
|
||||
|
||||
/* Set up SP/TP power collpase */
|
||||
|
@ -45,7 +45,7 @@ int msm_wait_fence(struct msm_fence_context *fctx, uint32_t fence,
|
||||
int ret;
|
||||
|
||||
if (fence > fctx->last_fence) {
|
||||
DRM_ERROR("%s: waiting on invalid fence: %u (of %u)\n",
|
||||
DRM_ERROR_RATELIMITED("%s: waiting on invalid fence: %u (of %u)\n",
|
||||
fctx->name, fence, fctx->last_fence);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
@ -694,7 +694,7 @@ isac_release(struct isac_hw *isac)
|
||||
{
|
||||
if (isac->type & IPAC_TYPE_ISACX)
|
||||
WriteISAC(isac, ISACX_MASK, 0xff);
|
||||
else
|
||||
else if (isac->type != 0)
|
||||
WriteISAC(isac, ISAC_MASK, 0xff);
|
||||
if (isac->dch.timer.function != NULL) {
|
||||
del_timer(&isac->dch.timer);
|
||||
|
@ -1554,8 +1554,8 @@ static int pxa168_eth_remove(struct platform_device *pdev)
|
||||
|
||||
mdiobus_unregister(pep->smi_bus);
|
||||
mdiobus_free(pep->smi_bus);
|
||||
unregister_netdev(dev);
|
||||
cancel_work_sync(&pep->tx_timeout_task);
|
||||
unregister_netdev(dev);
|
||||
free_netdev(dev);
|
||||
return 0;
|
||||
}
|
||||
|
@ -2365,8 +2365,9 @@ static u8 mlx5e_build_icosq_log_wq_sz(struct mlx5e_params *params,
|
||||
{
|
||||
switch (params->rq_wq_type) {
|
||||
case MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ:
|
||||
return order_base_2(MLX5E_UMR_WQEBBS) +
|
||||
mlx5e_get_rq_log_wq_sz(rqp->rqc);
|
||||
return max_t(u8, MLX5E_PARAMS_MINIMUM_LOG_SQ_SIZE,
|
||||
order_base_2(MLX5E_UMR_WQEBBS) +
|
||||
mlx5e_get_rq_log_wq_sz(rqp->rqc));
|
||||
default: /* MLX5_WQ_TYPE_CYCLIC */
|
||||
return MLX5E_PARAMS_MINIMUM_LOG_SQ_SIZE;
|
||||
}
|
||||
|
@ -330,7 +330,7 @@ static blk_qc_t nvme_ns_head_make_request(struct request_queue *q,
|
||||
trace_block_bio_remap(bio->bi_disk->queue, bio,
|
||||
disk_devt(ns->head->disk),
|
||||
bio->bi_iter.bi_sector);
|
||||
ret = direct_make_request(bio);
|
||||
ret = generic_make_request(bio);
|
||||
} else if (nvme_available_path(head)) {
|
||||
dev_warn_ratelimited(dev, "no usable path - requeuing I/O\n");
|
||||
|
||||
|
@ -84,6 +84,13 @@ static const struct dmi_system_id button_array_table[] = {
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "HP Spectre x2 Detachable"),
|
||||
},
|
||||
},
|
||||
{
|
||||
.ident = "Lenovo ThinkPad X1 Tablet Gen 2",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
|
||||
DMI_MATCH(DMI_PRODUCT_FAMILY, "ThinkPad X1 Tablet Gen 2"),
|
||||
},
|
||||
},
|
||||
{ }
|
||||
};
|
||||
|
||||
|
@ -4089,13 +4089,19 @@ static bool hotkey_notify_6xxx(const u32 hkey,
|
||||
|
||||
case TP_HKEY_EV_KEY_NUMLOCK:
|
||||
case TP_HKEY_EV_KEY_FN:
|
||||
case TP_HKEY_EV_KEY_FN_ESC:
|
||||
/* key press events, we just ignore them as long as the EC
|
||||
* is still reporting them in the normal keyboard stream */
|
||||
*send_acpi_ev = false;
|
||||
*ignore_acpi_ev = true;
|
||||
return true;
|
||||
|
||||
case TP_HKEY_EV_KEY_FN_ESC:
|
||||
/* Get the media key status to foce the status LED to update */
|
||||
acpi_evalf(hkey_handle, NULL, "GMKS", "v");
|
||||
*send_acpi_ev = false;
|
||||
*ignore_acpi_ev = true;
|
||||
return true;
|
||||
|
||||
case TP_HKEY_EV_TABLET_CHANGED:
|
||||
tpacpi_input_send_tabletsw();
|
||||
hotkey_tablet_mode_notify_change();
|
||||
|
@ -939,6 +939,14 @@ pscsi_map_sg(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
|
||||
|
||||
return 0;
|
||||
fail:
|
||||
if (bio)
|
||||
bio_put(bio);
|
||||
while (req->bio) {
|
||||
bio = req->bio;
|
||||
req->bio = bio->bi_next;
|
||||
bio_put(bio);
|
||||
}
|
||||
req->biotail = NULL;
|
||||
return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
|
||||
}
|
||||
|
||||
|
@ -164,6 +164,7 @@ int cifs_posix_open(char *full_path, struct inode **pinode,
|
||||
goto posix_open_ret;
|
||||
}
|
||||
} else {
|
||||
cifs_revalidate_mapping(*pinode);
|
||||
cifs_fattr_to_inode(*pinode, &fattr);
|
||||
}
|
||||
|
||||
|
@ -738,8 +738,8 @@ smb2_is_valid_oplock_break(char *buffer, struct TCP_Server_Info *server)
|
||||
}
|
||||
}
|
||||
spin_unlock(&cifs_tcp_ses_lock);
|
||||
cifs_dbg(FYI, "Can not process oplock break for non-existent connection\n");
|
||||
return false;
|
||||
cifs_dbg(FYI, "No file id matched, oplock break ignored\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -96,8 +96,7 @@ config INIT_ENV_ARG_LIMIT
|
||||
|
||||
config COMPILE_TEST
|
||||
bool "Compile also drivers which will not load"
|
||||
depends on !UML
|
||||
default n
|
||||
depends on HAS_IOMEM
|
||||
help
|
||||
Some drivers can be compiled on a different platform than they are
|
||||
intended to be run on. Despite they cannot be loaded there (or even
|
||||
|
@ -954,8 +954,19 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
|
||||
continue;
|
||||
|
||||
if (!dflt_chandef.chan) {
|
||||
/*
|
||||
* Assign the first enabled channel to dflt_chandef
|
||||
* from the list of channels
|
||||
*/
|
||||
for (i = 0; i < sband->n_channels; i++)
|
||||
if (!(sband->channels[i].flags &
|
||||
IEEE80211_CHAN_DISABLED))
|
||||
break;
|
||||
/* if none found then use the first anyway */
|
||||
if (i == sband->n_channels)
|
||||
i = 0;
|
||||
cfg80211_chandef_create(&dflt_chandef,
|
||||
&sband->channels[0],
|
||||
&sband->channels[i],
|
||||
NL80211_CHAN_NO_HT);
|
||||
/* init channel we're on */
|
||||
if (!local->use_chanctx && !local->_oper_chandef.chan) {
|
||||
|
@ -218,9 +218,6 @@ int nf_conntrack_gre_packet(struct nf_conn *ct,
|
||||
enum ip_conntrack_info ctinfo,
|
||||
const struct nf_hook_state *state)
|
||||
{
|
||||
if (state->pf != NFPROTO_IPV4)
|
||||
return -NF_ACCEPT;
|
||||
|
||||
if (!nf_ct_is_confirmed(ct)) {
|
||||
unsigned int *timeouts = nf_ct_timeout_lookup(ct);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user