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

Commit 272c9b5a authored by Blagovest Kolenichev's avatar Blagovest Kolenichev
Browse files

Merge android-4.14-p.103 (d38adba7) into msm-4.14



* refs/heads/tmp-d38adba7:
  Linux 4.14.103
  ax25: fix possible use-after-free
  mISDN: fix a race in dev_expire_timer()
  net/x25: do not hold the cpu too long in x25_new_lci()
  sunrpc: fix 4 more call sites that were using stack memory with a scatterlist
  tcp: clear icsk_backoff in tcp_write_queue_purge()
  net: Do not allocate page fragments that are not skb aligned
  tcp: tcp_v4_err() should be more careful
  net: Add header for usage of fls64()
  vhost: correctly check the return value of translate_desc() in log_used()
  sky2: Increase D3 delay again
  net: stmmac: handle endianness in dwmac4_get_timestamp
  net: stmmac: Fix a race in EEE enable callback
  net: phy: xgmiitorgmii: Support generic PHY status read
  net: Fix for_each_netdev_feature on Big endian
  net: crypto set sk to NULL when af_alg_release.
  mlxsw: __mlxsw_sp_port_headroom_set(): Fix a use of local variable
  hwmon: (lm80) Fix missing unlock on error in set_fan_div()
  vxlan: test dev->flags & IFF_UP before calling netif_rx()
  vsock: cope with memory allocation failure at socket creation time
  net: ipv4: use a dedicated counter for icmp_v4 redirect packets
  net: fix IPv6 prefix route residue
  dsa: mv88e6xxx: Ensure all pending interrupts are handled prior to exit

Change-Id: Icf76aef31212bb56eebb85a1939d9c22145b80d5
Signed-off-by: default avatarBlagovest Kolenichev <bkolenichev@codeaurora.org>
parents 9ec70dd4 d38adba7
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
VERSION = 4
PATCHLEVEL = 14
SUBLEVEL = 102
SUBLEVEL = 103
EXTRAVERSION =
NAME = Petit Gorille

+3 −1
Original line number Diff line number Diff line
@@ -122,8 +122,10 @@ static void alg_do_release(const struct af_alg_type *type, void *private)

int af_alg_release(struct socket *sock)
{
	if (sock->sk)
	if (sock->sk) {
		sock_put(sock->sk);
		sock->sk = NULL;
	}
	return 0;
}
EXPORT_SYMBOL_GPL(af_alg_release);
+3 −1
Original line number Diff line number Diff line
@@ -393,8 +393,10 @@ static ssize_t set_fan_div(struct device *dev, struct device_attribute *attr,
	}

	rv = lm80_read_value(client, LM80_REG_FANDIV);
	if (rv < 0)
	if (rv < 0) {
		mutex_unlock(&data->update_lock);
		return rv;
	}
	reg = (rv & ~(3 << (2 * (nr + 1))))
	    | (data->fan_div[nr] << (2 * (nr + 1)));
	lm80_write_value(client, LM80_REG_FANDIV, reg);
+1 −1
Original line number Diff line number Diff line
@@ -170,8 +170,8 @@ dev_expire_timer(unsigned long data)
	spin_lock_irqsave(&timer->dev->lock, flags);
	if (timer->id >= 0)
		list_move_tail(&timer->list, &timer->dev->expired);
	spin_unlock_irqrestore(&timer->dev->lock, flags);
	wake_up_interruptible(&timer->dev->wait);
	spin_unlock_irqrestore(&timer->dev->lock, flags);
}

static int
+22 −6
Original line number Diff line number Diff line
@@ -258,6 +258,7 @@ static irqreturn_t mv88e6xxx_g1_irq_thread_fn(int irq, void *dev_id)
	unsigned int sub_irq;
	unsigned int n;
	u16 reg;
	u16 ctl1;
	int err;

	mutex_lock(&chip->reg_lock);
@@ -267,13 +268,28 @@ static irqreturn_t mv88e6xxx_g1_irq_thread_fn(int irq, void *dev_id)
	if (err)
		goto out;

	do {
		for (n = 0; n < chip->g1_irq.nirqs; ++n) {
			if (reg & (1 << n)) {
			sub_irq = irq_find_mapping(chip->g1_irq.domain, n);
				sub_irq = irq_find_mapping(chip->g1_irq.domain,
							   n);
				handle_nested_irq(sub_irq);
				++nhandled;
			}
		}

		mutex_lock(&chip->reg_lock);
		err = mv88e6xxx_g1_read(chip, MV88E6XXX_G1_CTL1, &ctl1);
		if (err)
			goto unlock;
		err = mv88e6xxx_g1_read(chip, MV88E6XXX_G1_STS, &reg);
unlock:
		mutex_unlock(&chip->reg_lock);
		if (err)
			goto out;
		ctl1 &= GENMASK(chip->g1_irq.nirqs, 0);
	} while (reg & ctl1);

out:
	return (nhandled > 0 ? IRQ_HANDLED : IRQ_NONE);
}
Loading