Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22710613 authored by Blagovest Kolenichev's avatar Blagovest Kolenichev
Browse files

Merge LTS tag v4.19.4 into msm-kona



* refs/heads/tmp-98a661ea:
  Linux 4.19.4
  Revert "x86/speculation: Enable cross-hyperthread spectre v2 STIBP mitigation"
  usbnet: smsc95xx: disable carrier check while suspending
  rxrpc: Fix lockup due to no error backoff after ack transmit error
  net: smsc95xx: Fix MTU range
  mlxsw: spectrum: Fix IP2ME CPU policer configuration
  sctp: not increase stream's incnt before sending addstrm_in request
  net: phy: mdio-gpio: Fix working over slow can_sleep GPIOs
  sctp: fix strchange_flags name for Stream Change Event
  net: dsa: microchip: initialize mutex before use
  net: qualcomm: rmnet: Fix incorrect assignment of real_dev
  sctp: define SCTP_SS_DEFAULT for Stream schedulers
  net: phy: realtek: fix RTL8201F sysfs name
  net: dsa: mv88e6xxx: Fix clearing of stats counters
  net/mlx5e: IPoIB, Reset QP after channels are closed
  net/mlx5: IPSec, Fix the SA context hash key
  l2tp: fix a sock refcnt leak in l2tp_tunnel_register
  inet: frags: better deal with smp races
  net/mlx5e: Removed unnecessary warnings in FEC caps query
  net/mlx5e: Fix selftest for small MTUs
  net/mlx5e: Always use the match level enum when parsing TC rule match
  Revert "sctp: remove sctp_transport_pmtu_check"
  net/mlx5e: RX, verify received packet size in Linear Striding RQ
  net/mlx5e: Adjust to max number of channles when re-attaching
  net/mlx5e: Claim TC hw offloads support only under a proper build config
  net/mlx5e: Don't match on vlan non-existence if ethertype is wildcarded
  tipc: fix link re-establish failure
  net: sched: cls_flower: validate nested enc_opts_policy to avoid warning
  net/sched: act_pedit: fix memory leak when IDR allocation fails
  net: systemport: Protect stop from timeout
  tuntap: fix multiqueue rx
  tipc: fix lockdep warning when reinitilaizing sockets
  tipc: don't assume linear buffer when reading ancillary data
  tg3: Add PHY reset for 5717/5719/5720 in change ring and flow control paths
  tcp: Fix SOF_TIMESTAMPING_RX_HARDWARE to use the latest timestamp during TCP coalescing
  sctp: not allow to set asoc prsctp_enable by sockopt
  net-gro: reset skb->pkt_type in napi_reuse_skb()
  net: bcmgenet: protect stop from timeout
  ipv6: Fix PMTU updates for UDP/raw sockets in presence of VRF
  ipv6: fix a dst leak when removing its exception
  ip_tunnel: don't force DF when MTU is locked
  ibmvnic: fix accelerated VLAN handling
  flow_dissector: do not dissect l4 ports for fragments

Conflicts:
	drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c

Change-Id: Ib5184b657b9cda55f40fe245d4b79bb1f21f755f
Signed-off-by: default avatarBlagovest Kolenichev <bkolenichev@codeaurora.org>
parents 60b1073a 98a661ea
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
VERSION = 4
PATCHLEVEL = 19
SUBLEVEL = 3
SUBLEVEL = 4
EXTRAVERSION =
NAME = "People's Front"

+6 −51
Original line number Diff line number Diff line
@@ -35,10 +35,12 @@ static void __init spectre_v2_select_mitigation(void);
static void __init ssb_select_mitigation(void);
static void __init l1tf_select_mitigation(void);

/* The base value of the SPEC_CTRL MSR that always has to be preserved. */
u64 x86_spec_ctrl_base;
/*
 * Our boot-time value of the SPEC_CTRL MSR. We read it once so that any
 * writes to SPEC_CTRL contain whatever reserved bits have been set.
 */
u64 __ro_after_init x86_spec_ctrl_base;
EXPORT_SYMBOL_GPL(x86_spec_ctrl_base);
static DEFINE_MUTEX(spec_ctrl_mutex);

/*
 * The vendor and possibly platform specific bits which can be modified in
@@ -323,46 +325,6 @@ static enum spectre_v2_mitigation_cmd __init spectre_v2_parse_cmdline(void)
	return cmd;
}

static bool stibp_needed(void)
{
	if (spectre_v2_enabled == SPECTRE_V2_NONE)
		return false;

	if (!boot_cpu_has(X86_FEATURE_STIBP))
		return false;

	return true;
}

static void update_stibp_msr(void *info)
{
	wrmsrl(MSR_IA32_SPEC_CTRL, x86_spec_ctrl_base);
}

void arch_smt_update(void)
{
	u64 mask;

	if (!stibp_needed())
		return;

	mutex_lock(&spec_ctrl_mutex);
	mask = x86_spec_ctrl_base;
	if (cpu_smt_control == CPU_SMT_ENABLED)
		mask |= SPEC_CTRL_STIBP;
	else
		mask &= ~SPEC_CTRL_STIBP;

	if (mask != x86_spec_ctrl_base) {
		pr_info("Spectre v2 cross-process SMT mitigation: %s STIBP\n",
				cpu_smt_control == CPU_SMT_ENABLED ?
				"Enabling" : "Disabling");
		x86_spec_ctrl_base = mask;
		on_each_cpu(update_stibp_msr, NULL, 1);
	}
	mutex_unlock(&spec_ctrl_mutex);
}

static void __init spectre_v2_select_mitigation(void)
{
	enum spectre_v2_mitigation_cmd cmd = spectre_v2_parse_cmdline();
@@ -462,9 +424,6 @@ static void __init spectre_v2_select_mitigation(void)
		setup_force_cpu_cap(X86_FEATURE_USE_IBRS_FW);
		pr_info("Enabling Restricted Speculation for firmware calls\n");
	}

	/* Enable STIBP if appropriate */
	arch_smt_update();
}

#undef pr_fmt
@@ -855,8 +814,6 @@ static ssize_t l1tf_show_state(char *buf)
static ssize_t cpu_show_common(struct device *dev, struct device_attribute *attr,
			       char *buf, unsigned int bug)
{
	int ret;

	if (!boot_cpu_has_bug(bug))
		return sprintf(buf, "Not affected\n");

@@ -874,12 +831,10 @@ static ssize_t cpu_show_common(struct device *dev, struct device_attribute *attr
		return sprintf(buf, "Mitigation: __user pointer sanitization\n");

	case X86_BUG_SPECTRE_V2:
		ret = sprintf(buf, "%s%s%s%s%s\n", spectre_v2_strings[spectre_v2_enabled],
		return sprintf(buf, "%s%s%s%s\n", spectre_v2_strings[spectre_v2_enabled],
			       boot_cpu_has(X86_FEATURE_USE_IBPB) ? ", IBPB" : "",
			       boot_cpu_has(X86_FEATURE_USE_IBRS_FW) ? ", IBRS_FW" : "",
			       (x86_spec_ctrl_base & SPEC_CTRL_STIBP) ? ", STIBP" : "",
			       spectre_v2_module_string());
		return ret;

	case X86_BUG_SPEC_STORE_BYPASS:
		return sprintf(buf, "%s\n", ssb_strings[ssb_mode]);
+5 −5
Original line number Diff line number Diff line
@@ -1117,11 +1117,6 @@ static int ksz_switch_init(struct ksz_device *dev)
{
	int i;

	mutex_init(&dev->reg_mutex);
	mutex_init(&dev->stats_mutex);
	mutex_init(&dev->alu_mutex);
	mutex_init(&dev->vlan_mutex);

	dev->ds->ops = &ksz_switch_ops;

	for (i = 0; i < ARRAY_SIZE(ksz_switch_chips); i++) {
@@ -1206,6 +1201,11 @@ int ksz_switch_register(struct ksz_device *dev)
	if (dev->pdata)
		dev->chip_id = dev->pdata->chip_id;

	mutex_init(&dev->reg_mutex);
	mutex_init(&dev->stats_mutex);
	mutex_init(&dev->alu_mutex);
	mutex_init(&dev->vlan_mutex);

	if (ksz_switch_detect(dev))
		return -EINVAL;

+2 −0
Original line number Diff line number Diff line
@@ -567,6 +567,8 @@ int mv88e6xxx_g1_stats_clear(struct mv88e6xxx_chip *chip)
	if (err)
		return err;

	/* Keep the histogram mode bits */
	val &= MV88E6XXX_G1_STATS_OP_HIST_RX_TX;
	val |= MV88E6XXX_G1_STATS_OP_BUSY | MV88E6XXX_G1_STATS_OP_FLUSH_ALL;

	err = mv88e6xxx_g1_write(chip, MV88E6XXX_G1_STATS_OP, val);
+7 −8
Original line number Diff line number Diff line
@@ -1897,9 +1897,6 @@ static void bcm_sysport_netif_start(struct net_device *dev)
		intrl2_1_mask_clear(priv, 0xffffffff);
	else
		intrl2_0_mask_clear(priv, INTRL2_0_TDMA_MBDONE_MASK);

	/* Last call before we start the real business */
	netif_tx_start_all_queues(dev);
}

static void rbuf_init(struct bcm_sysport_priv *priv)
@@ -2045,6 +2042,8 @@ static int bcm_sysport_open(struct net_device *dev)

	bcm_sysport_netif_start(dev);

	netif_tx_start_all_queues(dev);

	return 0;

out_clear_rx_int:
@@ -2068,7 +2067,7 @@ static void bcm_sysport_netif_stop(struct net_device *dev)
	struct bcm_sysport_priv *priv = netdev_priv(dev);

	/* stop all software from updating hardware */
	netif_tx_stop_all_queues(dev);
	netif_tx_disable(dev);
	napi_disable(&priv->napi);
	cancel_work_sync(&priv->dim.dim.work);
	phy_stop(dev->phydev);
@@ -2654,12 +2653,12 @@ static int __maybe_unused bcm_sysport_suspend(struct device *d)
	if (!netif_running(dev))
		return 0;

	netif_device_detach(dev);

	bcm_sysport_netif_stop(dev);

	phy_suspend(dev->phydev);

	netif_device_detach(dev);

	/* Disable UniMAC RX */
	umac_enable_set(priv, CMD_RX_EN, 0);

@@ -2743,8 +2742,6 @@ static int __maybe_unused bcm_sysport_resume(struct device *d)
		goto out_free_rx_ring;
	}

	netif_device_attach(dev);

	/* RX pipe enable */
	topctrl_writel(priv, 0, RX_FLUSH_CNTL);

@@ -2789,6 +2786,8 @@ static int __maybe_unused bcm_sysport_resume(struct device *d)

	bcm_sysport_netif_start(dev);

	netif_device_attach(dev);

	return 0;

out_free_rx_ring:
Loading