This is the 4.9.149 stable release
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAlw2EF8ACgkQONu9yGCS aT60Uw//dk+Mshl6uj1zeD5ZIBYZqIH3pQqEgPO6/wFmT4Koxl4rajbsj60r1qrB qZnIpiLQhyBhb0TaVMMEyHbDB0US1gzOeQDShIWFVzUwZix+O8iL0s24NAMbLWZz L2b62hphcj6I3K30Ly7BQgIlKhwecPEeftejSC4A/UQ5I2x3qe5dp3KFEShK4Oob rR9CFZD2DV0u/G6u4AsP33oE1Zx7d26U6RazNgWZfMW1/Sb3n/d4ihHVNENsXR5U wiB0Y2zWogKSkj5l4ZkIpPeQYgYfVsQlC/i749yWi/ng833guratUefusLO3n/jr efhTsQP1OgesogO3apx9WOHj+9Eqhr/rRYJbeGcn5oG0S9Hbg+3honYb53FY+mrb n3mEwAJDI+ntZDEdRl+ZZA4kSD1pXTn7ddy5VqZ/B81RZPudYWeJiB1USIcoqjmj bJtS/ZtIKwfVzd745Drg+Ko9D96xfQETvJE7OM7iUzdBS+ONI9CaUt3dawoBj6pc IFnAX5vJ1ruzB44iWc8rJhmCTJ/ww7jkKhl2Av8Q7UG2rJ7r4xzgTkislUxQQamw +by07OxeK8T0mahuRTlZbU27lnRK5xQ+H9+G1n6KoGNjjl0jBhDjnFZ56kUkNXuw V8SsC7PoCpR7zEZUButg83qrvLXpDcM9A8arWyqgl4WKF4AVUZk= =qO5G -----END PGP SIGNATURE----- Merge 4.9.149 into android-4.9 Changes in 4.9.149 NFC: nxp-nci: Include unaligned.h instead of access_ok.h ip6mr: Fix potential Spectre v1 vulnerability ipv4: Fix potential Spectre v1 vulnerability ax25: fix a use-after-free in ax25_fillin_cb() ibmveth: fix DMA unmap error in ibmveth_xmit_start error path ieee802154: lowpan_header_create check must check daddr ipv6: explicitly initialize udp6_addr in udp_sock_create6() ipv6: tunnels: fix two use-after-free isdn: fix kernel-infoleak in capi_unlocked_ioctl net: ipv4: do not handle duplicate fragments as overlapping net: phy: Fix the issue that netif always links up after resuming netrom: fix locking in nr_find_socket() net/wan: fix a double free in x25_asy_open_tty() packet: validate address length packet: validate address length if non-zero sctp: initialize sin6_flowinfo for ipv6 addrs in sctp_inet6addr_event tipc: fix a double kfree_skb() vhost: make sure used idx is seen before log in vhost_add_used_n() VSOCK: Send reset control packet when socket is partially bound xen/netfront: tolerate frags with no data tipc: use lock_sock() in tipc_sk_reinit() tipc: compare remote and local protocols in tipc_udp_enable() gro_cell: add napi_disable in gro_cells_destroy net/mlx5e: Remove the false indication of software timestamping support net/mlx5: Typo fix in del_sw_hw_rule sock: Make sock->sk_stamp thread-safe ptr_ring: wrap back ->producer in __ptr_ring_swap_queue() ALSA: rme9652: Fix potential Spectre v1 vulnerability ALSA: emu10k1: Fix potential Spectre v1 vulnerabilities ALSA: pcm: Fix potential Spectre v1 vulnerability ALSA: emux: Fix potential Spectre v1 vulnerabilities mtd: atmel-quadspi: disallow building on ebsa110 ALSA: hda: add mute LED support for HP EliteBook 840 G4 ALSA: hda/tegra: clear pending irq handlers USB: serial: pl2303: add ids for Hewlett-Packard HP POS pole displays USB: serial: option: add Fibocom NL678 series usb: r8a66597: Fix a possible concurrency use-after-free bug in r8a66597_endpoint_disable() staging: wilc1000: fix missing read_write setting when reading data qmi_wwan: apply SET_DTR quirk to the SIMCOM shared device ID Input: elan_i2c - add ACPI ID for touchpad in ASUS Aspire F5-573G KVM: x86: Use jmp to invoke kvm_spurious_fault() from .fixup platform-msi: Free descriptors in platform_msi_domain_free() perf pmu: Suppress potential format-truncation warning ext4: fix possible use after free in ext4_quota_enable ext4: missing unlock/put_page() in ext4_try_to_write_inline_data() ext4: fix EXT4_IOC_GROUP_ADD ioctl ext4: include terminating u32 in size of xattr entries when expanding inodes ext4: force inode writes when nfsd calls commit_metadata() spi: bcm2835: Fix race on DMA termination spi: bcm2835: Fix book-keeping of DMA termination spi: bcm2835: Avoid finishing transfer prematurely in IRQ mode clk: rockchip: fix typo in rk3188 spdif_frac parent cdc-acm: fix abnormal DATA RX issue for Mediatek Preloader. f2fs: fix validation of the block count in sanity_check_raw_super serial: uartps: Fix interrupt mask issue to handle the RX interrupts properly media: vivid: free bitmap_cap when updating std/timings/etc. media: v4l2-tpg: array index could become negative MIPS: Ensure pmd_present() returns false after pmd_mknotpresent() MIPS: Align kernel load address to 64KB MIPS: OCTEON: mark RGMII interface disabled on OCTEON III CIFS: Fix error mapping for SMB2_LOCK command which caused OFD lock problem x86/kvm/vmx: do not use vm-exit instruction length for fast MMIO when running nested arm64: KVM: Avoid setting the upper 32 bits of VTCR_EL2 to 1 rtc: m41t80: Correct alarm month range with RTC reads tpm: tpm_i2c_nuvoton: use correct command duration for TPM 2.x spi: bcm2835: Unbreak the build of esoteric configs Linux 4.9.149 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
commit
ed0b11d228
72 changed files with 347 additions and 119 deletions
2
Makefile
2
Makefile
|
|
@ -1,6 +1,6 @@
|
|||
VERSION = 4
|
||||
PATCHLEVEL = 9
|
||||
SUBLEVEL = 148
|
||||
SUBLEVEL = 149
|
||||
EXTRAVERSION =
|
||||
NAME = Roaring Lionus
|
||||
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@
|
|||
TCR_EL2_ORGN0_MASK | TCR_EL2_IRGN0_MASK | TCR_EL2_T0SZ_MASK)
|
||||
|
||||
/* VTCR_EL2 Registers bits */
|
||||
#define VTCR_EL2_RES1 (1 << 31)
|
||||
#define VTCR_EL2_RES1 (1U << 31)
|
||||
#define VTCR_EL2_HD (1 << 22)
|
||||
#define VTCR_EL2_HA (1 << 21)
|
||||
#define VTCR_EL2_PS_MASK TCR_EL2_PS_MASK
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "../../../../include/linux/sizes.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
|
|
@ -45,11 +46,11 @@ int main(int argc, char *argv[])
|
|||
vmlinuz_load_addr = vmlinux_load_addr + vmlinux_size;
|
||||
|
||||
/*
|
||||
* Align with 16 bytes: "greater than that used for any standard data
|
||||
* types by a MIPS compiler." -- See MIPS Run Linux (Second Edition).
|
||||
* Align with 64KB: KEXEC needs load sections to be aligned to PAGE_SIZE,
|
||||
* which may be as large as 64KB depending on the kernel configuration.
|
||||
*/
|
||||
|
||||
vmlinuz_load_addr += (16 - vmlinux_size % 16);
|
||||
vmlinuz_load_addr += (SZ_64K - vmlinux_size % SZ_64K);
|
||||
|
||||
printf("0x%llx\n", vmlinuz_load_addr);
|
||||
|
||||
|
|
|
|||
|
|
@ -290,7 +290,8 @@ static cvmx_helper_interface_mode_t __cvmx_get_mode_cn7xxx(int interface)
|
|||
case 3:
|
||||
return CVMX_HELPER_INTERFACE_MODE_LOOP;
|
||||
case 4:
|
||||
return CVMX_HELPER_INTERFACE_MODE_RGMII;
|
||||
/* TODO: Implement support for AGL (RGMII). */
|
||||
return CVMX_HELPER_INTERFACE_MODE_DISABLED;
|
||||
default:
|
||||
return CVMX_HELPER_INTERFACE_MODE_DISABLED;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -193,6 +193,11 @@ static inline int pmd_bad(pmd_t pmd)
|
|||
|
||||
static inline int pmd_present(pmd_t pmd)
|
||||
{
|
||||
#ifdef CONFIG_MIPS_HUGE_TLB_SUPPORT
|
||||
if (unlikely(pmd_val(pmd) & _PAGE_HUGE))
|
||||
return pmd_val(pmd) & _PAGE_PRESENT;
|
||||
#endif
|
||||
|
||||
return pmd_val(pmd) != (unsigned long) invalid_pte_table;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1324,7 +1324,7 @@ asmlinkage void kvm_spurious_fault(void);
|
|||
"cmpb $0, kvm_rebooting \n\t" \
|
||||
"jne 668b \n\t" \
|
||||
__ASM_SIZE(push) " $666b \n\t" \
|
||||
"call kvm_spurious_fault \n\t" \
|
||||
"jmp kvm_spurious_fault \n\t" \
|
||||
".popsection \n\t" \
|
||||
_ASM_EXTABLE(666b, 667b)
|
||||
|
||||
|
|
|
|||
|
|
@ -6548,9 +6548,24 @@ static int handle_ept_misconfig(struct kvm_vcpu *vcpu)
|
|||
|
||||
gpa = vmcs_read64(GUEST_PHYSICAL_ADDRESS);
|
||||
if (!kvm_io_bus_write(vcpu, KVM_FAST_MMIO_BUS, gpa, 0, NULL)) {
|
||||
skip_emulated_instruction(vcpu);
|
||||
trace_kvm_fast_mmio(gpa);
|
||||
return 1;
|
||||
/*
|
||||
* Doing kvm_skip_emulated_instruction() depends on undefined
|
||||
* behavior: Intel's manual doesn't mandate
|
||||
* VM_EXIT_INSTRUCTION_LEN to be set in VMCS when EPT MISCONFIG
|
||||
* occurs and while on real hardware it was observed to be set,
|
||||
* other hypervisors (namely Hyper-V) don't set it, we end up
|
||||
* advancing IP with some random value. Disable fast mmio when
|
||||
* running nested and keep it for real hardware in hope that
|
||||
* VM_EXIT_INSTRUCTION_LEN will always be set correctly.
|
||||
*/
|
||||
if (!static_cpu_has(X86_FEATURE_HYPERVISOR)) {
|
||||
skip_emulated_instruction(vcpu);
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
return x86_emulate_instruction(vcpu, gpa, EMULTYPE_SKIP,
|
||||
NULL, 0) == EMULATE_DONE;
|
||||
}
|
||||
|
||||
ret = handle_mmio_page_fault(vcpu, gpa, true);
|
||||
|
|
|
|||
|
|
@ -5707,7 +5707,8 @@ int x86_emulate_instruction(struct kvm_vcpu *vcpu,
|
|||
* handle watchpoints yet, those would be handled in
|
||||
* the emulate_ops.
|
||||
*/
|
||||
if (kvm_vcpu_check_breakpoint(vcpu, &r))
|
||||
if (!(emulation_type & EMULTYPE_SKIP) &&
|
||||
kvm_vcpu_check_breakpoint(vcpu, &r))
|
||||
return r;
|
||||
|
||||
ctxt->interruptibility = 0;
|
||||
|
|
|
|||
|
|
@ -375,14 +375,16 @@ void platform_msi_domain_free(struct irq_domain *domain, unsigned int virq,
|
|||
unsigned int nvec)
|
||||
{
|
||||
struct platform_msi_priv_data *data = domain->host_data;
|
||||
struct msi_desc *desc;
|
||||
for_each_msi_entry(desc, data->dev) {
|
||||
struct msi_desc *desc, *tmp;
|
||||
for_each_msi_entry_safe(desc, tmp, data->dev) {
|
||||
if (WARN_ON(!desc->irq || desc->nvec_used != 1))
|
||||
return;
|
||||
if (!(desc->irq >= virq && desc->irq < (virq + nvec)))
|
||||
continue;
|
||||
|
||||
irq_domain_free_irqs_common(domain, desc->irq, 1);
|
||||
list_del(&desc->list);
|
||||
free_msi_entry(desc);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -369,6 +369,7 @@ static int i2c_nuvoton_send(struct tpm_chip *chip, u8 *buf, size_t len)
|
|||
struct device *dev = chip->dev.parent;
|
||||
struct i2c_client *client = to_i2c_client(dev);
|
||||
u32 ordinal;
|
||||
unsigned long duration;
|
||||
size_t count = 0;
|
||||
int burst_count, bytes2write, retries, rc = -EIO;
|
||||
|
||||
|
|
@ -455,10 +456,12 @@ static int i2c_nuvoton_send(struct tpm_chip *chip, u8 *buf, size_t len)
|
|||
return rc;
|
||||
}
|
||||
ordinal = be32_to_cpu(*((__be32 *) (buf + 6)));
|
||||
rc = i2c_nuvoton_wait_for_data_avail(chip,
|
||||
tpm_calc_ordinal_duration(chip,
|
||||
ordinal),
|
||||
&priv->read_queue);
|
||||
if (chip->flags & TPM_CHIP_FLAG_TPM2)
|
||||
duration = tpm2_calc_ordinal_duration(chip, ordinal);
|
||||
else
|
||||
duration = tpm_calc_ordinal_duration(chip, ordinal);
|
||||
|
||||
rc = i2c_nuvoton_wait_for_data_avail(chip, duration, &priv->read_queue);
|
||||
if (rc) {
|
||||
dev_err(dev, "%s() timeout command duration\n", __func__);
|
||||
i2c_nuvoton_ready(chip);
|
||||
|
|
|
|||
|
|
@ -381,7 +381,7 @@ static struct rockchip_clk_branch common_clk_branches[] __initdata = {
|
|||
COMPOSITE_NOMUX(0, "spdif_pre", "i2s_src", 0,
|
||||
RK2928_CLKSEL_CON(5), 0, 7, DFLAGS,
|
||||
RK2928_CLKGATE_CON(0), 13, GFLAGS),
|
||||
COMPOSITE_FRACMUX(0, "spdif_frac", "spdif_pll", CLK_SET_RATE_PARENT,
|
||||
COMPOSITE_FRACMUX(0, "spdif_frac", "spdif_pre", CLK_SET_RATE_PARENT,
|
||||
RK2928_CLKSEL_CON(9), 0,
|
||||
RK2928_CLKGATE_CON(0), 14, GFLAGS,
|
||||
&common_spdif_fracmux),
|
||||
|
|
|
|||
|
|
@ -1240,6 +1240,7 @@ MODULE_DEVICE_TABLE(i2c, elan_id);
|
|||
static const struct acpi_device_id elan_acpi_id[] = {
|
||||
{ "ELAN0000", 0 },
|
||||
{ "ELAN0100", 0 },
|
||||
{ "ELAN0501", 0 },
|
||||
{ "ELAN0600", 0 },
|
||||
{ "ELAN0602", 0 },
|
||||
{ "ELAN0605", 0 },
|
||||
|
|
|
|||
|
|
@ -851,7 +851,7 @@ u16 capi20_get_manufacturer(u32 contr, u8 *buf)
|
|||
u16 ret;
|
||||
|
||||
if (contr == 0) {
|
||||
strlcpy(buf, capi_manufakturer, CAPI_MANUFACTURER_LEN);
|
||||
strncpy(buf, capi_manufakturer, CAPI_MANUFACTURER_LEN);
|
||||
return CAPI_NOERROR;
|
||||
}
|
||||
|
||||
|
|
@ -859,7 +859,7 @@ u16 capi20_get_manufacturer(u32 contr, u8 *buf)
|
|||
|
||||
ctr = get_capi_ctr_by_nr(contr);
|
||||
if (ctr && ctr->state == CAPI_CTR_RUNNING) {
|
||||
strlcpy(buf, ctr->manu, CAPI_MANUFACTURER_LEN);
|
||||
strncpy(buf, ctr->manu, CAPI_MANUFACTURER_LEN);
|
||||
ret = CAPI_NOERROR;
|
||||
} else
|
||||
ret = CAPI_REGNOTINSTALLED;
|
||||
|
|
|
|||
|
|
@ -1618,7 +1618,7 @@ typedef struct { u16 __; u8 _; } __packed x24;
|
|||
unsigned s; \
|
||||
\
|
||||
for (s = 0; s < len; s++) { \
|
||||
u8 chr = font8x16[text[s] * 16 + line]; \
|
||||
u8 chr = font8x16[(u8)text[s] * 16 + line]; \
|
||||
\
|
||||
if (hdiv == 2 && tpg->hflip) { \
|
||||
pos[3] = (chr & (0x01 << 6) ? fg : bg); \
|
||||
|
|
|
|||
|
|
@ -452,6 +452,8 @@ void vivid_update_format_cap(struct vivid_dev *dev, bool keep_controls)
|
|||
tpg_s_rgb_range(&dev->tpg, v4l2_ctrl_g_ctrl(dev->rgb_range_cap));
|
||||
break;
|
||||
}
|
||||
vfree(dev->bitmap_cap);
|
||||
dev->bitmap_cap = NULL;
|
||||
vivid_update_quality(dev);
|
||||
tpg_reset_source(&dev->tpg, dev->src_rect.width, dev->src_rect.height, dev->field_cap);
|
||||
dev->crop_cap = dev->src_rect;
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ config MTD_SPI_NOR_USE_4K_SECTORS
|
|||
|
||||
config SPI_ATMEL_QUADSPI
|
||||
tristate "Atmel Quad SPI Controller"
|
||||
depends on ARCH_AT91 || (ARM && COMPILE_TEST)
|
||||
depends on ARCH_AT91 || (ARM && COMPILE_TEST && !ARCH_EBSA110)
|
||||
depends on OF && HAS_IOMEM
|
||||
help
|
||||
This enables support for the Quad SPI controller in master mode.
|
||||
|
|
|
|||
|
|
@ -1162,11 +1162,15 @@ out:
|
|||
|
||||
map_failed_frags:
|
||||
last = i+1;
|
||||
for (i = 0; i < last; i++)
|
||||
for (i = 1; i < last; i++)
|
||||
dma_unmap_page(&adapter->vdev->dev, descs[i].fields.address,
|
||||
descs[i].fields.flags_len & IBMVETH_BUF_LEN_MASK,
|
||||
DMA_TO_DEVICE);
|
||||
|
||||
dma_unmap_single(&adapter->vdev->dev,
|
||||
descs[0].fields.address,
|
||||
descs[0].fields.flags_len & IBMVETH_BUF_LEN_MASK,
|
||||
DMA_TO_DEVICE);
|
||||
map_failed:
|
||||
if (!firmware_has_feature(FW_FEATURE_CMO))
|
||||
netdev_err(netdev, "tx: unable to map xmit buffer\n");
|
||||
|
|
|
|||
|
|
@ -1167,11 +1167,6 @@ static int mlx5e_get_ts_info(struct net_device *dev,
|
|||
struct ethtool_ts_info *info)
|
||||
{
|
||||
struct mlx5e_priv *priv = netdev_priv(dev);
|
||||
int ret;
|
||||
|
||||
ret = ethtool_op_get_ts_info(dev, info);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
info->phc_index = priv->tstamp.ptp ?
|
||||
ptp_clock_index(priv->tstamp.ptp) : -1;
|
||||
|
|
@ -1179,9 +1174,9 @@ static int mlx5e_get_ts_info(struct net_device *dev,
|
|||
if (!MLX5_CAP_GEN(priv->mdev, device_frequency_khz))
|
||||
return 0;
|
||||
|
||||
info->so_timestamping |= SOF_TIMESTAMPING_TX_HARDWARE |
|
||||
SOF_TIMESTAMPING_RX_HARDWARE |
|
||||
SOF_TIMESTAMPING_RAW_HARDWARE;
|
||||
info->so_timestamping = SOF_TIMESTAMPING_TX_HARDWARE |
|
||||
SOF_TIMESTAMPING_RX_HARDWARE |
|
||||
SOF_TIMESTAMPING_RAW_HARDWARE;
|
||||
|
||||
info->tx_types = BIT(HWTSTAMP_TX_OFF) |
|
||||
BIT(HWTSTAMP_TX_ON);
|
||||
|
|
|
|||
|
|
@ -390,7 +390,7 @@ static void del_rule(struct fs_node *node)
|
|||
}
|
||||
if ((fte->action & MLX5_FLOW_CONTEXT_ACTION_FWD_DEST) &&
|
||||
--fte->dests_size) {
|
||||
modify_mask = BIT(MLX5_SET_FTE_MODIFY_ENABLE_MASK_DESTINATION_LIST),
|
||||
modify_mask = BIT(MLX5_SET_FTE_MODIFY_ENABLE_MASK_DESTINATION_LIST);
|
||||
err = mlx5_cmd_update_fte(dev, ft,
|
||||
fg->id,
|
||||
modify_mask,
|
||||
|
|
|
|||
|
|
@ -163,11 +163,8 @@ static int mdio_bus_phy_restore(struct device *dev)
|
|||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* The PHY needs to renegotiate. */
|
||||
phydev->link = 0;
|
||||
phydev->state = PHY_UP;
|
||||
|
||||
phy_start_machine(phydev);
|
||||
if (phydev->attached_dev && phydev->adjust_link)
|
||||
phy_start_machine(phydev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue