This is the 4.9.177 stable release
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAlzdoVMACgkQONu9yGCS aT4qIQ//XMYZIYkQGwN57TzWVqaE1TqutVHuAnc+k111hEl4Af9bKedyOQKoA7EF WzWau8wUKZsoAegoHbao29Ow5JE6iO0Qy9hjgRIbHRQA+IziPmYbJZ/zE2KBZFyH LlC3cxcCujABPtdfSq8/ChXpvtcQAtvGLWwpppHxIhYUC0WPTlzdMYqCDR6DxJbQ Z1KKTjR4uEH2d7XwsRsBfoEeYiHL4Wi33ZFjN3IeXOjNiN54QIdH3INsEkOlugxE NmoZrkyMzh8wkVlhAhpimREI5+0YSjxyEBbi7Qdo76+dK7NHdR6AHMh4/l/i8Ytc qMK7tgXQ0VjZlsfZ1a803XEcM0TY/j4zGdSInpmKOP5uR1IsBz+THidKNlwmB4ZT AZjzgfLz/lmRm8W58SSSL1y9g1sNFJcziUjAq0j24kWseeTRd1gcooZP+RJBtHhN zGnG54l67RW1POFK+1sAIUElHrx36FMrAD3ae3nwUW7I91XO65ODS59S6xJJMzjl qKV6jm7ZhqvyCJKkxWDq9pSBE5EMccaFQpnzy1oQhxh1nFLaK9+jsAkbfey6tAjC d0hsqgUXRF8yFGUSE/Nd7LEn8Pf9lFl8GTrsF13xLXXuWknsFulmOnu8h8nNPnDG i8Os9NfS7VImodPCvGAXF+ACtlbzCiTYJhebiZw8Ak0+vSeURyQ= =O1S8 -----END PGP SIGNATURE----- Merge 4.9.177 into android-4.9 Changes in 4.9.177 netfilter: compat: initialize all fields in xt_init bpf: fix struct htab_elem layout bpf: convert htab map to hlist_nulls platform/x86: sony-laptop: Fix unintentional fall-through USB: serial: fix unthrottle races iio: adc: xilinx: fix potential use-after-free on remove libnvdimm/namespace: Fix a potential NULL pointer dereference HID: input: add mapping for Expose/Overview key HID: input: add mapping for keyboard Brightness Up/Down/Toggle keys HID: input: add mapping for "Toggle Display" key libnvdimm/btt: Fix a kmemdup failure check s390/dasd: Fix capacity calculation for large volumes mac80211: fix unaligned access in mesh table hash function s390/3270: fix lockdep false positive on view->lock mISDN: Check address length before reading address family x86/reboot, efi: Use EFI reboot for Acer TravelMate X514-51T KVM: x86: avoid misreporting level-triggered irqs as edge-triggered in tracing tools lib traceevent: Fix missing equality check for strcmp init: initialize jump labels before command line option parsing selftests: netfilter: check icmp pkttoobig errors are set as related ipvs: do not schedule icmp errors from tunnels MIPS: perf: ath79: Fix perfcount IRQ assignment s390: ctcm: fix ctcm_new_device error return code drm/sun4i: Set device driver data at bind time for use in unbind selftests/net: correct the return value for run_netsocktests gpu: ipu-v3: dp: fix CSC handling spi: Micrel eth switch: declare missing of table spi: ST ST95HF NFC: declare missing of table Input: synaptics-rmi4 - fix possible double free cw1200: fix missing unlock on error in cw1200_hw_scan() ALSA: pcm: remove SNDRV_PCM_IOCTL1_INFO internal command rtlwifi: rtl8723ae: Fix missing break in switch statement Don't jump to compute_result state from check_result state Revert "x86/vdso: Drop implicit common-page-size linker flag" Revert "x86: vdso: Use $LD instead of $CC to link" x86: vdso: Use $LD instead of $CC to link x86/vdso: Drop implicit common-page-size linker flag x86/vdso: Pass --eh-frame-hdr to the linker powerpc/64s: Include cpu header bridge: Fix error path for kobject_init_and_add() fib_rules: return 0 directly if an exactly same rule exists when NLM_F_EXCL not supplied net: ucc_geth - fix Oops when changing number of buffers in the ring packet: Fix error path in packet_init vlan: disable SIOCSHWTSTAMP in container vrf: sit mtu should not be updated when vrf netdev is the link ipv4: Fix raw socket lookup for local traffic bonding: fix arp_validate toggling in active-backup mode drivers/virt/fsl_hypervisor.c: dereferencing error pointers in ioctl drivers/virt/fsl_hypervisor.c: prevent integer overflow in ioctl powerpc/lib: fix book3s/32 boot failure due to code patching powerpc/booke64: set RI in default MSR Linux 4.9.177 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
commit
e6d81da784
55 changed files with 604 additions and 153 deletions
2
Makefile
2
Makefile
|
|
@ -1,6 +1,6 @@
|
|||
VERSION = 4
|
||||
PATCHLEVEL = 9
|
||||
SUBLEVEL = 176
|
||||
SUBLEVEL = 177
|
||||
EXTRAVERSION =
|
||||
NAME = Roaring Lionus
|
||||
|
||||
|
|
|
|||
|
|
@ -183,12 +183,6 @@ const char *get_system_type(void)
|
|||
return ath79_sys_type;
|
||||
}
|
||||
|
||||
int get_c0_perfcount_int(void)
|
||||
{
|
||||
return ATH79_MISC_IRQ(5);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(get_c0_perfcount_int);
|
||||
|
||||
unsigned int get_c0_compare_int(void)
|
||||
{
|
||||
return CP0_LEGACY_COMPARE_IRQ;
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
#if defined(CONFIG_PPC_BOOK3E_64)
|
||||
#define MSR_64BIT MSR_CM
|
||||
|
||||
#define MSR_ (MSR_ME | MSR_CE)
|
||||
#define MSR_ (MSR_ME | MSR_RI | MSR_CE)
|
||||
#define MSR_KERNEL (MSR_ | MSR_64BIT)
|
||||
#define MSR_USER32 (MSR_ | MSR_PR | MSR_EE)
|
||||
#define MSR_USER64 (MSR_USER32 | MSR_64BIT)
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
//
|
||||
// Copyright 2018, Michael Ellerman, IBM Corporation.
|
||||
|
||||
#include <linux/cpu.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/device.h>
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ int patch_instruction(unsigned int *addr, unsigned int instr)
|
|||
int err;
|
||||
|
||||
/* Make sure we aren't patching a freed init section */
|
||||
if (init_mem_is_free && init_section_contains(addr, 4)) {
|
||||
if (*PTRRELOC(&init_mem_is_free) && init_section_contains(addr, 4)) {
|
||||
pr_debug("Skipping init section patching addr: 0x%px\n", addr);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -167,7 +167,8 @@ quiet_cmd_vdso = VDSO $@
|
|||
sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@'
|
||||
|
||||
VDSO_LDFLAGS = -shared $(call ld-option, --hash-style=both) \
|
||||
$(call ld-option, --build-id) -Bsymbolic
|
||||
$(call ld-option, --build-id) $(call ld-option, --eh-frame-hdr) \
|
||||
-Bsymbolic
|
||||
GCOV_PROFILE := n
|
||||
|
||||
#
|
||||
|
|
|
|||
|
|
@ -82,6 +82,19 @@ static int __init set_bios_reboot(const struct dmi_system_id *d)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Some machines don't handle the default ACPI reboot method and
|
||||
* require the EFI reboot method:
|
||||
*/
|
||||
static int __init set_efi_reboot(const struct dmi_system_id *d)
|
||||
{
|
||||
if (reboot_type != BOOT_EFI && !efi_runtime_disabled()) {
|
||||
reboot_type = BOOT_EFI;
|
||||
pr_info("%s series board detected. Selecting EFI-method for reboot.\n", d->ident);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void __noreturn machine_real_restart(unsigned int type)
|
||||
{
|
||||
local_irq_disable();
|
||||
|
|
@ -167,6 +180,14 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
|
|||
DMI_MATCH(DMI_PRODUCT_NAME, "AOA110"),
|
||||
},
|
||||
},
|
||||
{ /* Handle reboot issue on Acer TravelMate X514-51T */
|
||||
.callback = set_efi_reboot,
|
||||
.ident = "Acer TravelMate X514-51T",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate X514-51T"),
|
||||
},
|
||||
},
|
||||
|
||||
/* Apple */
|
||||
{ /* Handle problems with rebooting on Apple MacBook5 */
|
||||
|
|
|
|||
|
|
@ -434,13 +434,13 @@ TRACE_EVENT(kvm_apic_ipi,
|
|||
);
|
||||
|
||||
TRACE_EVENT(kvm_apic_accept_irq,
|
||||
TP_PROTO(__u32 apicid, __u16 dm, __u8 tm, __u8 vec),
|
||||
TP_PROTO(__u32 apicid, __u16 dm, __u16 tm, __u8 vec),
|
||||
TP_ARGS(apicid, dm, tm, vec),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field( __u32, apicid )
|
||||
__field( __u16, dm )
|
||||
__field( __u8, tm )
|
||||
__field( __u16, tm )
|
||||
__field( __u8, vec )
|
||||
),
|
||||
|
||||
|
|
|
|||
|
|
@ -137,6 +137,8 @@ static int sun4i_drv_bind(struct device *dev)
|
|||
ret = -ENOMEM;
|
||||
goto free_drm;
|
||||
}
|
||||
|
||||
dev_set_drvdata(dev, drm);
|
||||
drm->dev_private = drv;
|
||||
|
||||
drm_vblank_init(drm, 1);
|
||||
|
|
|
|||
|
|
@ -195,7 +195,8 @@ int ipu_dp_setup_channel(struct ipu_dp *dp,
|
|||
ipu_dp_csc_init(flow, flow->foreground.in_cs, flow->out_cs,
|
||||
DP_COM_CONF_CSC_DEF_BOTH);
|
||||
} else {
|
||||
if (flow->foreground.in_cs == flow->out_cs)
|
||||
if (flow->foreground.in_cs == IPUV3_COLORSPACE_UNKNOWN ||
|
||||
flow->foreground.in_cs == flow->out_cs)
|
||||
/*
|
||||
* foreground identical to output, apply color
|
||||
* conversion on background
|
||||
|
|
@ -261,6 +262,8 @@ void ipu_dp_disable_channel(struct ipu_dp *dp)
|
|||
struct ipu_dp_priv *priv = flow->priv;
|
||||
u32 reg, csc;
|
||||
|
||||
dp->in_cs = IPUV3_COLORSPACE_UNKNOWN;
|
||||
|
||||
if (!dp->foreground)
|
||||
return;
|
||||
|
||||
|
|
@ -268,8 +271,9 @@ void ipu_dp_disable_channel(struct ipu_dp *dp)
|
|||
|
||||
reg = readl(flow->base + DP_COM_CONF);
|
||||
csc = reg & DP_COM_CONF_CSC_DEF_MASK;
|
||||
if (csc == DP_COM_CONF_CSC_DEF_FG)
|
||||
reg &= ~DP_COM_CONF_CSC_DEF_MASK;
|
||||
reg &= ~DP_COM_CONF_CSC_DEF_MASK;
|
||||
if (csc == DP_COM_CONF_CSC_DEF_BOTH || csc == DP_COM_CONF_CSC_DEF_BG)
|
||||
reg |= DP_COM_CONF_CSC_DEF_BG;
|
||||
|
||||
reg &= ~DP_COM_CONF_FG_EN;
|
||||
writel(reg, flow->base + DP_COM_CONF);
|
||||
|
|
@ -350,6 +354,8 @@ int ipu_dp_init(struct ipu_soc *ipu, struct device *dev, unsigned long base)
|
|||
mutex_init(&priv->mutex);
|
||||
|
||||
for (i = 0; i < IPUV3_NUM_FLOWS; i++) {
|
||||
priv->flow[i].background.in_cs = IPUV3_COLORSPACE_UNKNOWN;
|
||||
priv->flow[i].foreground.in_cs = IPUV3_COLORSPACE_UNKNOWN;
|
||||
priv->flow[i].foreground.foreground = true;
|
||||
priv->flow[i].base = priv->base + ipu_dp_flow_base[i];
|
||||
priv->flow[i].priv = priv;
|
||||
|
|
|
|||
|
|
@ -607,6 +607,14 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
|
|||
break;
|
||||
}
|
||||
|
||||
if ((usage->hid & 0xf0) == 0xb0) { /* SC - Display */
|
||||
switch (usage->hid & 0xf) {
|
||||
case 0x05: map_key_clear(KEY_SWITCHVIDEOMODE); break;
|
||||
default: goto ignore;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* Some lazy vendors declare 255 usages for System Control,
|
||||
* leading to the creation of ABS_X|Y axis and too many others.
|
||||
|
|
@ -802,6 +810,10 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
|
|||
case 0x074: map_key_clear(KEY_BRIGHTNESS_MAX); break;
|
||||
case 0x075: map_key_clear(KEY_BRIGHTNESS_AUTO); break;
|
||||
|
||||
case 0x079: map_key_clear(KEY_KBDILLUMUP); break;
|
||||
case 0x07a: map_key_clear(KEY_KBDILLUMDOWN); break;
|
||||
case 0x07c: map_key_clear(KEY_KBDILLUMTOGGLE); break;
|
||||
|
||||
case 0x082: map_key_clear(KEY_VIDEO_NEXT); break;
|
||||
case 0x083: map_key_clear(KEY_LAST); break;
|
||||
case 0x084: map_key_clear(KEY_ENTER); break;
|
||||
|
|
@ -932,6 +944,8 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
|
|||
case 0x2cb: map_key_clear(KEY_KBDINPUTASSIST_ACCEPT); break;
|
||||
case 0x2cc: map_key_clear(KEY_KBDINPUTASSIST_CANCEL); break;
|
||||
|
||||
case 0x29f: map_key_clear(KEY_SCALE); break;
|
||||
|
||||
default: map_key_clear(KEY_UNKNOWN);
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -1299,7 +1299,7 @@ static int xadc_remove(struct platform_device *pdev)
|
|||
}
|
||||
free_irq(irq, indio_dev);
|
||||
clk_disable_unprepare(xadc->clk);
|
||||
cancel_delayed_work(&xadc->zynq_unmask_work);
|
||||
cancel_delayed_work_sync(&xadc->zynq_unmask_work);
|
||||
kfree(xadc->data);
|
||||
kfree(indio_dev->channels);
|
||||
|
||||
|
|
|
|||
|
|
@ -772,7 +772,7 @@ static int rmi_create_function(struct rmi_device *rmi_dev,
|
|||
|
||||
error = rmi_register_function(fn);
|
||||
if (error)
|
||||
goto err_put_fn;
|
||||
return error;
|
||||
|
||||
if (pdt->function_number == 0x01)
|
||||
data->f01_container = fn;
|
||||
|
|
@ -780,10 +780,6 @@ static int rmi_create_function(struct rmi_device *rmi_dev,
|
|||
list_add_tail(&fn->node, &data->function_list);
|
||||
|
||||
return RMI_SCAN_CONTINUE;
|
||||
|
||||
err_put_fn:
|
||||
put_device(&fn->dev);
|
||||
return error;
|
||||
}
|
||||
|
||||
int rmi_driver_suspend(struct rmi_device *rmi_dev)
|
||||
|
|
|
|||
|
|
@ -22,6 +22,15 @@
|
|||
#define AR71XX_RESET_REG_MISC_INT_ENABLE 4
|
||||
|
||||
#define ATH79_MISC_IRQ_COUNT 32
|
||||
#define ATH79_MISC_PERF_IRQ 5
|
||||
|
||||
static int ath79_perfcount_irq;
|
||||
|
||||
int get_c0_perfcount_int(void)
|
||||
{
|
||||
return ath79_perfcount_irq;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(get_c0_perfcount_int);
|
||||
|
||||
static void ath79_misc_irq_handler(struct irq_desc *desc)
|
||||
{
|
||||
|
|
@ -113,6 +122,8 @@ static void __init ath79_misc_intc_domain_init(
|
|||
{
|
||||
void __iomem *base = domain->host_data;
|
||||
|
||||
ath79_perfcount_irq = irq_create_mapping(domain, ATH79_MISC_PERF_IRQ);
|
||||
|
||||
/* Disable and clear all interrupts */
|
||||
__raw_writel(0, base + AR71XX_RESET_REG_MISC_INT_ENABLE);
|
||||
__raw_writel(0, base + AR71XX_RESET_REG_MISC_INT_STATUS);
|
||||
|
|
|
|||
|
|
@ -712,10 +712,10 @@ base_sock_bind(struct socket *sock, struct sockaddr *addr, int addr_len)
|
|||
struct sock *sk = sock->sk;
|
||||
int err = 0;
|
||||
|
||||
if (!maddr || maddr->family != AF_ISDN)
|
||||
if (addr_len < sizeof(struct sockaddr_mISDN))
|
||||
return -EINVAL;
|
||||
|
||||
if (addr_len < sizeof(struct sockaddr_mISDN))
|
||||
if (!maddr || maddr->family != AF_ISDN)
|
||||
return -EINVAL;
|
||||
|
||||
lock_sock(sk);
|
||||
|
|
|
|||
|
|
@ -3914,26 +3914,15 @@ static void handle_parity_checks6(struct r5conf *conf, struct stripe_head *sh,
|
|||
case check_state_check_result:
|
||||
sh->check_state = check_state_idle;
|
||||
|
||||
if (s->failed > 1)
|
||||
break;
|
||||
/* handle a successful check operation, if parity is correct
|
||||
* we are done. Otherwise update the mismatch count and repair
|
||||
* parity if !MD_RECOVERY_CHECK
|
||||
*/
|
||||
if (sh->ops.zero_sum_result == 0) {
|
||||
/* both parities are correct */
|
||||
if (!s->failed)
|
||||
set_bit(STRIPE_INSYNC, &sh->state);
|
||||
else {
|
||||
/* in contrast to the raid5 case we can validate
|
||||
* parity, but still have a failure to write
|
||||
* back
|
||||
*/
|
||||
sh->check_state = check_state_compute_result;
|
||||
/* Returning at this point means that we may go
|
||||
* off and bring p and/or q uptodate again so
|
||||
* we make sure to check zero_sum_result again
|
||||
* to verify if p or q need writeback
|
||||
*/
|
||||
}
|
||||
/* Any parity checked was correct */
|
||||
set_bit(STRIPE_INSYNC, &sh->state);
|
||||
} else {
|
||||
atomic64_add(STRIPE_SECTORS, &conf->mddev->resync_mismatches);
|
||||
if (test_bit(MD_RECOVERY_CHECK, &conf->mddev->recovery))
|
||||
|
|
|
|||
|
|
@ -1065,13 +1065,6 @@ static int bond_option_arp_validate_set(struct bonding *bond,
|
|||
{
|
||||
netdev_info(bond->dev, "Setting arp_validate to %s (%llu)\n",
|
||||
newval->string, newval->value);
|
||||
|
||||
if (bond->dev->flags & IFF_UP) {
|
||||
if (!newval->value)
|
||||
bond->recv_probe = NULL;
|
||||
else if (bond->params.arp_interval)
|
||||
bond->recv_probe = bond_arp_rcv;
|
||||
}
|
||||
bond->params.arp_validate = newval->value;
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -250,14 +250,12 @@ uec_set_ringparam(struct net_device *netdev,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (netif_running(netdev))
|
||||
return -EBUSY;
|
||||
|
||||
ug_info->bdRingLenRx[queue] = ring->rx_pending;
|
||||
ug_info->bdRingLenTx[queue] = ring->tx_pending;
|
||||
|
||||
if (netif_running(netdev)) {
|
||||
/* FIXME: restart automatically */
|
||||
netdev_info(netdev, "Please re-open the interface\n");
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -162,6 +162,14 @@ static const struct spi_device_id ks8995_id[] = {
|
|||
};
|
||||
MODULE_DEVICE_TABLE(spi, ks8995_id);
|
||||
|
||||
static const struct of_device_id ks8895_spi_of_match[] = {
|
||||
{ .compatible = "micrel,ks8995" },
|
||||
{ .compatible = "micrel,ksz8864" },
|
||||
{ .compatible = "micrel,ksz8795" },
|
||||
{ },
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, ks8895_spi_of_match);
|
||||
|
||||
static inline u8 get_chip_id(u8 val)
|
||||
{
|
||||
return (val >> ID1_CHIPID_S) & ID1_CHIPID_M;
|
||||
|
|
@ -529,6 +537,7 @@ static int ks8995_remove(struct spi_device *spi)
|
|||
static struct spi_driver ks8995_driver = {
|
||||
.driver = {
|
||||
.name = "spi-ks8995",
|
||||
.of_match_table = of_match_ptr(ks8895_spi_of_match),
|
||||
},
|
||||
.probe = ks8995_probe,
|
||||
.remove = ks8995_remove,
|
||||
|
|
|
|||
|
|
@ -1703,6 +1703,7 @@ static void _rtl8723e_read_adapter_info(struct ieee80211_hw *hw,
|
|||
rtlhal->oem_id = RT_CID_819X_LENOVO;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0x1025:
|
||||
rtlhal->oem_id = RT_CID_819X_ACER;
|
||||
break;
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue