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

Commit 2d2170bb authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge 4.9.223 into android-4.9-q



Changes in 4.9.223
	vhost: vsock: kick send_pkt worker once device is started
	powerpc/pci/of: Parse unassigned resources
	iio:ad7797: Use correct attribute_group
	selftests/ipc: Fix test failure seen after initial test run
	ASoC: sgtl5000: Fix VAG power-on handling
	wimax/i2400m: Fix potential urb refcnt leak
	net: stmmac: Fix sub-second increment
	cifs: protect updating server->dstaddr with a spinlock
	scripts/config: allow colons in option strings for sed
	net: dsa: b53: Rework ARL bin logic
	lib/mpi: Fix building for powerpc with clang
	net: bcmgenet: suppress warnings on failed Rx SKB allocations
	net: systemport: suppress warnings on failed Rx SKB allocations
	xprtrdma: Fix backchannel allocation of extra rpcrdma_reps
	MIPS: perf: Remove incorrect odd/even counter handling for I6400
	sctp: Fix SHUTDOWN CTSN Ack in the peer restart case
	ALSA: hda: Match both PCI ID and SSID for driver blacklist
	mac80211: add ieee80211_is_any_nullfunc()
	Linux 4.9.223

Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
Change-Id: I5ec47e57f48e3c6249d15ce00f2625ce70bec44c
parents 5da84b2c 270f791a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
VERSION = 4
PATCHLEVEL = 9
SUBLEVEL = 222
SUBLEVEL = 223
EXTRAVERSION =
NAME = Roaring Lionus

+5 −1
Original line number Diff line number Diff line
@@ -1605,7 +1605,6 @@ static const struct mips_perf_event *mipsxx_pmu_map_raw_event(u64 config)
		break;
	case CPU_P5600:
	case CPU_P6600:
	case CPU_I6400:
		/* 8-bit event numbers */
		raw_id = config & 0x1ff;
		base_id = raw_id & 0xff;
@@ -1618,6 +1617,11 @@ static const struct mips_perf_event *mipsxx_pmu_map_raw_event(u64 config)
		raw_event.range = P;
#endif
		break;
	case CPU_I6400:
		/* 8-bit event numbers */
		base_id = config & 0xff;
		raw_event.cntr_mask = CNTR_EVEN | CNTR_ODD;
		break;
	case CPU_1004K:
		if (IS_BOTH_COUNTERS_1004K_EVENT(base_id))
			raw_event.cntr_mask = CNTR_EVEN | CNTR_ODD;
+10 −2
Original line number Diff line number Diff line
@@ -82,10 +82,16 @@ static void of_pci_parse_addrs(struct device_node *node, struct pci_dev *dev)
	const __be32 *addrs;
	u32 i;
	int proplen;
	bool mark_unset = false;

	addrs = of_get_property(node, "assigned-addresses", &proplen);
	if (!addrs)
	if (!addrs || !proplen) {
		addrs = of_get_property(node, "reg", &proplen);
		if (!addrs || !proplen)
			return;
		mark_unset = true;
	}

	pr_debug("    parse addresses (%d bytes) @ %p\n", proplen, addrs);
	for (; proplen >= 20; proplen -= 20, addrs += 5) {
		flags = pci_parse_of_flags(of_read_number(addrs, 1), 0);
@@ -110,6 +116,8 @@ static void of_pci_parse_addrs(struct device_node *node, struct pci_dev *dev)
			continue;
		}
		res->flags = flags;
		if (mark_unset)
			res->flags |= IORESOURCE_UNSET;
		res->name = pci_name(dev);
		region.start = base;
		region.end = base + size - 1;
+1 −1
Original line number Diff line number Diff line
@@ -570,7 +570,7 @@ static const struct iio_info ad7797_info = {
	.read_raw = &ad7793_read_raw,
	.write_raw = &ad7793_write_raw,
	.write_raw_get_fmt = &ad7793_write_raw_get_fmt,
	.attrs = &ad7793_attribute_group,
	.attrs = &ad7797_attribute_group,
	.validate_trigger = ad_sd_validate_trigger,
	.driver_module = THIS_MODULE,
};
+26 −4
Original line number Diff line number Diff line
@@ -1109,6 +1109,7 @@ static int b53_arl_read(struct b53_device *dev, u64 mac,
			u16 vid, struct b53_arl_entry *ent, u8 *idx,
			bool is_valid)
{
	DECLARE_BITMAP(free_bins, B53_ARLTBL_MAX_BIN_ENTRIES);
	unsigned int i;
	int ret;

@@ -1116,6 +1117,8 @@ static int b53_arl_read(struct b53_device *dev, u64 mac,
	if (ret)
		return ret;

	bitmap_zero(free_bins, dev->num_arl_entries);

	/* Read the bins */
	for (i = 0; i < dev->num_arl_entries; i++) {
		u64 mac_vid;
@@ -1127,13 +1130,21 @@ static int b53_arl_read(struct b53_device *dev, u64 mac,
			   B53_ARLTBL_DATA_ENTRY(i), &fwd_entry);
		b53_arl_to_entry(ent, mac_vid, fwd_entry);

		if (!(fwd_entry & ARLTBL_VALID))
		if (!(fwd_entry & ARLTBL_VALID)) {
			set_bit(i, free_bins);
			continue;
		}
		if ((mac_vid & ARLTBL_MAC_MASK) != mac)
			continue;
		*idx = i;
		return 0;
	}

	if (bitmap_weight(free_bins, dev->num_arl_entries) == 0)
		return -ENOSPC;

	*idx = find_first_bit(free_bins, dev->num_arl_entries);

	return -ENOENT;
}

@@ -1163,10 +1174,21 @@ static int b53_arl_op(struct b53_device *dev, int op, int port,
	if (op)
		return ret;

	switch (ret) {
	case -ENOSPC:
		dev_dbg(dev->dev, "{%pM,%.4d} no space left in ARL\n",
			addr, vid);
		return is_valid ? ret : 0;
	case -ENOENT:
		/* We could not find a matching MAC, so reset to a new entry */
	if (ret) {
		dev_dbg(dev->dev, "{%pM,%.4d} not found, using idx: %d\n",
			addr, vid, idx);
		fwd_entry = 0;
		idx = 1;
		break;
	default:
		dev_dbg(dev->dev, "{%pM,%.4d} found, using idx: %d\n",
			addr, vid, idx);
		break;
	}

	memset(&ent, 0, sizeof(ent));
Loading