linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Vladimir Oltean <vladimir.oltean@nxp.com>,
	Jakub Kicinski <kuba@kernel.org>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.19 253/365] net: mscc: ocelot: make struct ocelot_stat_layout array indexable
Date: Tue, 23 Aug 2022 10:02:34 +0200	[thread overview]
Message-ID: <20220823080128.778682232@linuxfoundation.org> (raw)
In-Reply-To: <20220823080118.128342613@linuxfoundation.org>

From: Vladimir Oltean <vladimir.oltean@nxp.com>

[ Upstream commit 9190460084ddd0e9235f55eab0fdd5456b5f2fd5 ]

The ocelot counters are 32-bit and require periodic reading, every 2
seconds, by ocelot_port_update_stats(), so that wraparounds are
detected.

Currently, the counters reported by ocelot_get_stats64() come from the
32-bit hardware counters directly, rather than from the 64-bit
accumulated ocelot->stats, and this is a problem for their integrity.

The strategy is to make ocelot_get_stats64() able to cherry-pick
individual stats from ocelot->stats the way in which it currently reads
them out from SYS_COUNT_* registers. But currently it can't, because
ocelot->stats is an opaque u64 array that's used only to feed data into
ethtool -S.

To solve that problem, we need to make ocelot->stats indexable, and
associate each element with an element of struct ocelot_stat_layout used
by ethtool -S.

This makes ocelot_stat_layout a fat (and possibly sparse) array, so we
need to change the way in which we access it. We no longer need
OCELOT_STAT_END as a sentinel, because we know the array's size
(OCELOT_NUM_STATS). We just need to skip the array elements that were
left unpopulated for the switch revision (ocelot, felix, seville).

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/dsa/ocelot/felix_vsc9959.c     | 468 ++++++++++++++++-----
 drivers/net/dsa/ocelot/seville_vsc9953.c   | 468 ++++++++++++++++-----
 drivers/net/ethernet/mscc/ocelot.c         |  40 +-
 drivers/net/ethernet/mscc/ocelot_vsc7514.c | 468 ++++++++++++++++-----
 include/soc/mscc/ocelot.h                  | 105 ++++-
 5 files changed, 1243 insertions(+), 306 deletions(-)

diff --git a/drivers/net/dsa/ocelot/felix_vsc9959.c b/drivers/net/dsa/ocelot/felix_vsc9959.c
index 601fae886b26..6439b56f381f 100644
--- a/drivers/net/dsa/ocelot/felix_vsc9959.c
+++ b/drivers/net/dsa/ocelot/felix_vsc9959.c
@@ -550,101 +550,379 @@ static const struct reg_field vsc9959_regfields[REGFIELD_MAX] = {
 	[SYS_PAUSE_CFG_PAUSE_ENA] = REG_FIELD_ID(SYS_PAUSE_CFG, 0, 1, 7, 4),
 };
 
-static const struct ocelot_stat_layout vsc9959_stats_layout[] = {
-	{ .offset = 0x00,	.name = "rx_octets", },
-	{ .offset = 0x01,	.name = "rx_unicast", },
-	{ .offset = 0x02,	.name = "rx_multicast", },
-	{ .offset = 0x03,	.name = "rx_broadcast", },
-	{ .offset = 0x04,	.name = "rx_shorts", },
-	{ .offset = 0x05,	.name = "rx_fragments", },
-	{ .offset = 0x06,	.name = "rx_jabbers", },
-	{ .offset = 0x07,	.name = "rx_crc_align_errs", },
-	{ .offset = 0x08,	.name = "rx_sym_errs", },
-	{ .offset = 0x09,	.name = "rx_frames_below_65_octets", },
-	{ .offset = 0x0A,	.name = "rx_frames_65_to_127_octets", },
-	{ .offset = 0x0B,	.name = "rx_frames_128_to_255_octets", },
-	{ .offset = 0x0C,	.name = "rx_frames_256_to_511_octets", },
-	{ .offset = 0x0D,	.name = "rx_frames_512_to_1023_octets", },
-	{ .offset = 0x0E,	.name = "rx_frames_1024_to_1526_octets", },
-	{ .offset = 0x0F,	.name = "rx_frames_over_1526_octets", },
-	{ .offset = 0x10,	.name = "rx_pause", },
-	{ .offset = 0x11,	.name = "rx_control", },
-	{ .offset = 0x12,	.name = "rx_longs", },
-	{ .offset = 0x13,	.name = "rx_classified_drops", },
-	{ .offset = 0x14,	.name = "rx_red_prio_0", },
-	{ .offset = 0x15,	.name = "rx_red_prio_1", },
-	{ .offset = 0x16,	.name = "rx_red_prio_2", },
-	{ .offset = 0x17,	.name = "rx_red_prio_3", },
-	{ .offset = 0x18,	.name = "rx_red_prio_4", },
-	{ .offset = 0x19,	.name = "rx_red_prio_5", },
-	{ .offset = 0x1A,	.name = "rx_red_prio_6", },
-	{ .offset = 0x1B,	.name = "rx_red_prio_7", },
-	{ .offset = 0x1C,	.name = "rx_yellow_prio_0", },
-	{ .offset = 0x1D,	.name = "rx_yellow_prio_1", },
-	{ .offset = 0x1E,	.name = "rx_yellow_prio_2", },
-	{ .offset = 0x1F,	.name = "rx_yellow_prio_3", },
-	{ .offset = 0x20,	.name = "rx_yellow_prio_4", },
-	{ .offset = 0x21,	.name = "rx_yellow_prio_5", },
-	{ .offset = 0x22,	.name = "rx_yellow_prio_6", },
-	{ .offset = 0x23,	.name = "rx_yellow_prio_7", },
-	{ .offset = 0x24,	.name = "rx_green_prio_0", },
-	{ .offset = 0x25,	.name = "rx_green_prio_1", },
-	{ .offset = 0x26,	.name = "rx_green_prio_2", },
-	{ .offset = 0x27,	.name = "rx_green_prio_3", },
-	{ .offset = 0x28,	.name = "rx_green_prio_4", },
-	{ .offset = 0x29,	.name = "rx_green_prio_5", },
-	{ .offset = 0x2A,	.name = "rx_green_prio_6", },
-	{ .offset = 0x2B,	.name = "rx_green_prio_7", },
-	{ .offset = 0x80,	.name = "tx_octets", },
-	{ .offset = 0x81,	.name = "tx_unicast", },
-	{ .offset = 0x82,	.name = "tx_multicast", },
-	{ .offset = 0x83,	.name = "tx_broadcast", },
-	{ .offset = 0x84,	.name = "tx_collision", },
-	{ .offset = 0x85,	.name = "tx_drops", },
-	{ .offset = 0x86,	.name = "tx_pause", },
-	{ .offset = 0x87,	.name = "tx_frames_below_65_octets", },
-	{ .offset = 0x88,	.name = "tx_frames_65_to_127_octets", },
-	{ .offset = 0x89,	.name = "tx_frames_128_255_octets", },
-	{ .offset = 0x8A,	.name = "tx_frames_256_511_octets", },
-	{ .offset = 0x8B,	.name = "tx_frames_512_1023_octets", },
-	{ .offset = 0x8C,	.name = "tx_frames_1024_1526_octets", },
-	{ .offset = 0x8D,	.name = "tx_frames_over_1526_octets", },
-	{ .offset = 0x8E,	.name = "tx_yellow_prio_0", },
-	{ .offset = 0x8F,	.name = "tx_yellow_prio_1", },
-	{ .offset = 0x90,	.name = "tx_yellow_prio_2", },
-	{ .offset = 0x91,	.name = "tx_yellow_prio_3", },
-	{ .offset = 0x92,	.name = "tx_yellow_prio_4", },
-	{ .offset = 0x93,	.name = "tx_yellow_prio_5", },
-	{ .offset = 0x94,	.name = "tx_yellow_prio_6", },
-	{ .offset = 0x95,	.name = "tx_yellow_prio_7", },
-	{ .offset = 0x96,	.name = "tx_green_prio_0", },
-	{ .offset = 0x97,	.name = "tx_green_prio_1", },
-	{ .offset = 0x98,	.name = "tx_green_prio_2", },
-	{ .offset = 0x99,	.name = "tx_green_prio_3", },
-	{ .offset = 0x9A,	.name = "tx_green_prio_4", },
-	{ .offset = 0x9B,	.name = "tx_green_prio_5", },
-	{ .offset = 0x9C,	.name = "tx_green_prio_6", },
-	{ .offset = 0x9D,	.name = "tx_green_prio_7", },
-	{ .offset = 0x9E,	.name = "tx_aged", },
-	{ .offset = 0x100,	.name = "drop_local", },
-	{ .offset = 0x101,	.name = "drop_tail", },
-	{ .offset = 0x102,	.name = "drop_yellow_prio_0", },
-	{ .offset = 0x103,	.name = "drop_yellow_prio_1", },
-	{ .offset = 0x104,	.name = "drop_yellow_prio_2", },
-	{ .offset = 0x105,	.name = "drop_yellow_prio_3", },
-	{ .offset = 0x106,	.name = "drop_yellow_prio_4", },
-	{ .offset = 0x107,	.name = "drop_yellow_prio_5", },
-	{ .offset = 0x108,	.name = "drop_yellow_prio_6", },
-	{ .offset = 0x109,	.name = "drop_yellow_prio_7", },
-	{ .offset = 0x10A,	.name = "drop_green_prio_0", },
-	{ .offset = 0x10B,	.name = "drop_green_prio_1", },
-	{ .offset = 0x10C,	.name = "drop_green_prio_2", },
-	{ .offset = 0x10D,	.name = "drop_green_prio_3", },
-	{ .offset = 0x10E,	.name = "drop_green_prio_4", },
-	{ .offset = 0x10F,	.name = "drop_green_prio_5", },
-	{ .offset = 0x110,	.name = "drop_green_prio_6", },
-	{ .offset = 0x111,	.name = "drop_green_prio_7", },
-	OCELOT_STAT_END
+static const struct ocelot_stat_layout vsc9959_stats_layout[OCELOT_NUM_STATS] = {
+	[OCELOT_STAT_RX_OCTETS] = {
+		.name = "rx_octets",
+		.offset = 0x00,
+	},
+	[OCELOT_STAT_RX_UNICAST] = {
+		.name = "rx_unicast",
+		.offset = 0x01,
+	},
+	[OCELOT_STAT_RX_MULTICAST] = {
+		.name = "rx_multicast",
+		.offset = 0x02,
+	},
+	[OCELOT_STAT_RX_BROADCAST] = {
+		.name = "rx_broadcast",
+		.offset = 0x03,
+	},
+	[OCELOT_STAT_RX_SHORTS] = {
+		.name = "rx_shorts",
+		.offset = 0x04,
+	},
+	[OCELOT_STAT_RX_FRAGMENTS] = {
+		.name = "rx_fragments",
+		.offset = 0x05,
+	},
+	[OCELOT_STAT_RX_JABBERS] = {
+		.name = "rx_jabbers",
+		.offset = 0x06,
+	},
+	[OCELOT_STAT_RX_CRC_ALIGN_ERRS] = {
+		.name = "rx_crc_align_errs",
+		.offset = 0x07,
+	},
+	[OCELOT_STAT_RX_SYM_ERRS] = {
+		.name = "rx_sym_errs",
+		.offset = 0x08,
+	},
+	[OCELOT_STAT_RX_64] = {
+		.name = "rx_frames_below_65_octets",
+		.offset = 0x09,
+	},
+	[OCELOT_STAT_RX_65_127] = {
+		.name = "rx_frames_65_to_127_octets",
+		.offset = 0x0A,
+	},
+	[OCELOT_STAT_RX_128_255] = {
+		.name = "rx_frames_128_to_255_octets",
+		.offset = 0x0B,
+	},
+	[OCELOT_STAT_RX_256_511] = {
+		.name = "rx_frames_256_to_511_octets",
+		.offset = 0x0C,
+	},
+	[OCELOT_STAT_RX_512_1023] = {
+		.name = "rx_frames_512_to_1023_octets",
+		.offset = 0x0D,
+	},
+	[OCELOT_STAT_RX_1024_1526] = {
+		.name = "rx_frames_1024_to_1526_octets",
+		.offset = 0x0E,
+	},
+	[OCELOT_STAT_RX_1527_MAX] = {
+		.name = "rx_frames_over_1526_octets",
+		.offset = 0x0F,
+	},
+	[OCELOT_STAT_RX_PAUSE] = {
+		.name = "rx_pause",
+		.offset = 0x10,
+	},
+	[OCELOT_STAT_RX_CONTROL] = {
+		.name = "rx_control",
+		.offset = 0x11,
+	},
+	[OCELOT_STAT_RX_LONGS] = {
+		.name = "rx_longs",
+		.offset = 0x12,
+	},
+	[OCELOT_STAT_RX_CLASSIFIED_DROPS] = {
+		.name = "rx_classified_drops",
+		.offset = 0x13,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_0] = {
+		.name = "rx_red_prio_0",
+		.offset = 0x14,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_1] = {
+		.name = "rx_red_prio_1",
+		.offset = 0x15,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_2] = {
+		.name = "rx_red_prio_2",
+		.offset = 0x16,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_3] = {
+		.name = "rx_red_prio_3",
+		.offset = 0x17,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_4] = {
+		.name = "rx_red_prio_4",
+		.offset = 0x18,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_5] = {
+		.name = "rx_red_prio_5",
+		.offset = 0x19,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_6] = {
+		.name = "rx_red_prio_6",
+		.offset = 0x1A,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_7] = {
+		.name = "rx_red_prio_7",
+		.offset = 0x1B,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_0] = {
+		.name = "rx_yellow_prio_0",
+		.offset = 0x1C,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_1] = {
+		.name = "rx_yellow_prio_1",
+		.offset = 0x1D,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_2] = {
+		.name = "rx_yellow_prio_2",
+		.offset = 0x1E,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_3] = {
+		.name = "rx_yellow_prio_3",
+		.offset = 0x1F,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_4] = {
+		.name = "rx_yellow_prio_4",
+		.offset = 0x20,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_5] = {
+		.name = "rx_yellow_prio_5",
+		.offset = 0x21,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_6] = {
+		.name = "rx_yellow_prio_6",
+		.offset = 0x22,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_7] = {
+		.name = "rx_yellow_prio_7",
+		.offset = 0x23,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_0] = {
+		.name = "rx_green_prio_0",
+		.offset = 0x24,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_1] = {
+		.name = "rx_green_prio_1",
+		.offset = 0x25,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_2] = {
+		.name = "rx_green_prio_2",
+		.offset = 0x26,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_3] = {
+		.name = "rx_green_prio_3",
+		.offset = 0x27,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_4] = {
+		.name = "rx_green_prio_4",
+		.offset = 0x28,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_5] = {
+		.name = "rx_green_prio_5",
+		.offset = 0x29,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_6] = {
+		.name = "rx_green_prio_6",
+		.offset = 0x2A,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_7] = {
+		.name = "rx_green_prio_7",
+		.offset = 0x2B,
+	},
+	[OCELOT_STAT_TX_OCTETS] = {
+		.name = "tx_octets",
+		.offset = 0x80,
+	},
+	[OCELOT_STAT_TX_UNICAST] = {
+		.name = "tx_unicast",
+		.offset = 0x81,
+	},
+	[OCELOT_STAT_TX_MULTICAST] = {
+		.name = "tx_multicast",
+		.offset = 0x82,
+	},
+	[OCELOT_STAT_TX_BROADCAST] = {
+		.name = "tx_broadcast",
+		.offset = 0x83,
+	},
+	[OCELOT_STAT_TX_COLLISION] = {
+		.name = "tx_collision",
+		.offset = 0x84,
+	},
+	[OCELOT_STAT_TX_DROPS] = {
+		.name = "tx_drops",
+		.offset = 0x85,
+	},
+	[OCELOT_STAT_TX_PAUSE] = {
+		.name = "tx_pause",
+		.offset = 0x86,
+	},
+	[OCELOT_STAT_TX_64] = {
+		.name = "tx_frames_below_65_octets",
+		.offset = 0x87,
+	},
+	[OCELOT_STAT_TX_65_127] = {
+		.name = "tx_frames_65_to_127_octets",
+		.offset = 0x88,
+	},
+	[OCELOT_STAT_TX_128_255] = {
+		.name = "tx_frames_128_255_octets",
+		.offset = 0x89,
+	},
+	[OCELOT_STAT_TX_256_511] = {
+		.name = "tx_frames_256_511_octets",
+		.offset = 0x8A,
+	},
+	[OCELOT_STAT_TX_512_1023] = {
+		.name = "tx_frames_512_1023_octets",
+		.offset = 0x8B,
+	},
+	[OCELOT_STAT_TX_1024_1526] = {
+		.name = "tx_frames_1024_1526_octets",
+		.offset = 0x8C,
+	},
+	[OCELOT_STAT_TX_1527_MAX] = {
+		.name = "tx_frames_over_1526_octets",
+		.offset = 0x8D,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_0] = {
+		.name = "tx_yellow_prio_0",
+		.offset = 0x8E,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_1] = {
+		.name = "tx_yellow_prio_1",
+		.offset = 0x8F,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_2] = {
+		.name = "tx_yellow_prio_2",
+		.offset = 0x90,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_3] = {
+		.name = "tx_yellow_prio_3",
+		.offset = 0x91,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_4] = {
+		.name = "tx_yellow_prio_4",
+		.offset = 0x92,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_5] = {
+		.name = "tx_yellow_prio_5",
+		.offset = 0x93,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_6] = {
+		.name = "tx_yellow_prio_6",
+		.offset = 0x94,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_7] = {
+		.name = "tx_yellow_prio_7",
+		.offset = 0x95,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_0] = {
+		.name = "tx_green_prio_0",
+		.offset = 0x96,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_1] = {
+		.name = "tx_green_prio_1",
+		.offset = 0x97,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_2] = {
+		.name = "tx_green_prio_2",
+		.offset = 0x98,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_3] = {
+		.name = "tx_green_prio_3",
+		.offset = 0x99,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_4] = {
+		.name = "tx_green_prio_4",
+		.offset = 0x9A,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_5] = {
+		.name = "tx_green_prio_5",
+		.offset = 0x9B,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_6] = {
+		.name = "tx_green_prio_6",
+		.offset = 0x9C,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_7] = {
+		.name = "tx_green_prio_7",
+		.offset = 0x9D,
+	},
+	[OCELOT_STAT_TX_AGED] = {
+		.name = "tx_aged",
+		.offset = 0x9E,
+	},
+	[OCELOT_STAT_DROP_LOCAL] = {
+		.name = "drop_local",
+		.offset = 0x100,
+	},
+	[OCELOT_STAT_DROP_TAIL] = {
+		.name = "drop_tail",
+		.offset = 0x101,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_0] = {
+		.name = "drop_yellow_prio_0",
+		.offset = 0x102,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_1] = {
+		.name = "drop_yellow_prio_1",
+		.offset = 0x103,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_2] = {
+		.name = "drop_yellow_prio_2",
+		.offset = 0x104,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_3] = {
+		.name = "drop_yellow_prio_3",
+		.offset = 0x105,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_4] = {
+		.name = "drop_yellow_prio_4",
+		.offset = 0x106,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_5] = {
+		.name = "drop_yellow_prio_5",
+		.offset = 0x107,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_6] = {
+		.name = "drop_yellow_prio_6",
+		.offset = 0x108,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_7] = {
+		.name = "drop_yellow_prio_7",
+		.offset = 0x109,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_0] = {
+		.name = "drop_green_prio_0",
+		.offset = 0x10A,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_1] = {
+		.name = "drop_green_prio_1",
+		.offset = 0x10B,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_2] = {
+		.name = "drop_green_prio_2",
+		.offset = 0x10C,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_3] = {
+		.name = "drop_green_prio_3",
+		.offset = 0x10D,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_4] = {
+		.name = "drop_green_prio_4",
+		.offset = 0x10E,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_5] = {
+		.name = "drop_green_prio_5",
+		.offset = 0x10F,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_6] = {
+		.name = "drop_green_prio_6",
+		.offset = 0x110,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_7] = {
+		.name = "drop_green_prio_7",
+		.offset = 0x111,
+	},
 };
 
 static const struct vcap_field vsc9959_vcap_es0_keys[] = {
diff --git a/drivers/net/dsa/ocelot/seville_vsc9953.c b/drivers/net/dsa/ocelot/seville_vsc9953.c
index ebe9ddbbe2b7..fe5d4642d0bc 100644
--- a/drivers/net/dsa/ocelot/seville_vsc9953.c
+++ b/drivers/net/dsa/ocelot/seville_vsc9953.c
@@ -545,101 +545,379 @@ static const struct reg_field vsc9953_regfields[REGFIELD_MAX] = {
 	[SYS_PAUSE_CFG_PAUSE_ENA] = REG_FIELD_ID(SYS_PAUSE_CFG, 0, 1, 11, 4),
 };
 
-static const struct ocelot_stat_layout vsc9953_stats_layout[] = {
-	{ .offset = 0x00,	.name = "rx_octets", },
-	{ .offset = 0x01,	.name = "rx_unicast", },
-	{ .offset = 0x02,	.name = "rx_multicast", },
-	{ .offset = 0x03,	.name = "rx_broadcast", },
-	{ .offset = 0x04,	.name = "rx_shorts", },
-	{ .offset = 0x05,	.name = "rx_fragments", },
-	{ .offset = 0x06,	.name = "rx_jabbers", },
-	{ .offset = 0x07,	.name = "rx_crc_align_errs", },
-	{ .offset = 0x08,	.name = "rx_sym_errs", },
-	{ .offset = 0x09,	.name = "rx_frames_below_65_octets", },
-	{ .offset = 0x0A,	.name = "rx_frames_65_to_127_octets", },
-	{ .offset = 0x0B,	.name = "rx_frames_128_to_255_octets", },
-	{ .offset = 0x0C,	.name = "rx_frames_256_to_511_octets", },
-	{ .offset = 0x0D,	.name = "rx_frames_512_to_1023_octets", },
-	{ .offset = 0x0E,	.name = "rx_frames_1024_to_1526_octets", },
-	{ .offset = 0x0F,	.name = "rx_frames_over_1526_octets", },
-	{ .offset = 0x10,	.name = "rx_pause", },
-	{ .offset = 0x11,	.name = "rx_control", },
-	{ .offset = 0x12,	.name = "rx_longs", },
-	{ .offset = 0x13,	.name = "rx_classified_drops", },
-	{ .offset = 0x14,	.name = "rx_red_prio_0", },
-	{ .offset = 0x15,	.name = "rx_red_prio_1", },
-	{ .offset = 0x16,	.name = "rx_red_prio_2", },
-	{ .offset = 0x17,	.name = "rx_red_prio_3", },
-	{ .offset = 0x18,	.name = "rx_red_prio_4", },
-	{ .offset = 0x19,	.name = "rx_red_prio_5", },
-	{ .offset = 0x1A,	.name = "rx_red_prio_6", },
-	{ .offset = 0x1B,	.name = "rx_red_prio_7", },
-	{ .offset = 0x1C,	.name = "rx_yellow_prio_0", },
-	{ .offset = 0x1D,	.name = "rx_yellow_prio_1", },
-	{ .offset = 0x1E,	.name = "rx_yellow_prio_2", },
-	{ .offset = 0x1F,	.name = "rx_yellow_prio_3", },
-	{ .offset = 0x20,	.name = "rx_yellow_prio_4", },
-	{ .offset = 0x21,	.name = "rx_yellow_prio_5", },
-	{ .offset = 0x22,	.name = "rx_yellow_prio_6", },
-	{ .offset = 0x23,	.name = "rx_yellow_prio_7", },
-	{ .offset = 0x24,	.name = "rx_green_prio_0", },
-	{ .offset = 0x25,	.name = "rx_green_prio_1", },
-	{ .offset = 0x26,	.name = "rx_green_prio_2", },
-	{ .offset = 0x27,	.name = "rx_green_prio_3", },
-	{ .offset = 0x28,	.name = "rx_green_prio_4", },
-	{ .offset = 0x29,	.name = "rx_green_prio_5", },
-	{ .offset = 0x2A,	.name = "rx_green_prio_6", },
-	{ .offset = 0x2B,	.name = "rx_green_prio_7", },
-	{ .offset = 0x40,	.name = "tx_octets", },
-	{ .offset = 0x41,	.name = "tx_unicast", },
-	{ .offset = 0x42,	.name = "tx_multicast", },
-	{ .offset = 0x43,	.name = "tx_broadcast", },
-	{ .offset = 0x44,	.name = "tx_collision", },
-	{ .offset = 0x45,	.name = "tx_drops", },
-	{ .offset = 0x46,	.name = "tx_pause", },
-	{ .offset = 0x47,	.name = "tx_frames_below_65_octets", },
-	{ .offset = 0x48,	.name = "tx_frames_65_to_127_octets", },
-	{ .offset = 0x49,	.name = "tx_frames_128_255_octets", },
-	{ .offset = 0x4A,	.name = "tx_frames_256_511_octets", },
-	{ .offset = 0x4B,	.name = "tx_frames_512_1023_octets", },
-	{ .offset = 0x4C,	.name = "tx_frames_1024_1526_octets", },
-	{ .offset = 0x4D,	.name = "tx_frames_over_1526_octets", },
-	{ .offset = 0x4E,	.name = "tx_yellow_prio_0", },
-	{ .offset = 0x4F,	.name = "tx_yellow_prio_1", },
-	{ .offset = 0x50,	.name = "tx_yellow_prio_2", },
-	{ .offset = 0x51,	.name = "tx_yellow_prio_3", },
-	{ .offset = 0x52,	.name = "tx_yellow_prio_4", },
-	{ .offset = 0x53,	.name = "tx_yellow_prio_5", },
-	{ .offset = 0x54,	.name = "tx_yellow_prio_6", },
-	{ .offset = 0x55,	.name = "tx_yellow_prio_7", },
-	{ .offset = 0x56,	.name = "tx_green_prio_0", },
-	{ .offset = 0x57,	.name = "tx_green_prio_1", },
-	{ .offset = 0x58,	.name = "tx_green_prio_2", },
-	{ .offset = 0x59,	.name = "tx_green_prio_3", },
-	{ .offset = 0x5A,	.name = "tx_green_prio_4", },
-	{ .offset = 0x5B,	.name = "tx_green_prio_5", },
-	{ .offset = 0x5C,	.name = "tx_green_prio_6", },
-	{ .offset = 0x5D,	.name = "tx_green_prio_7", },
-	{ .offset = 0x5E,	.name = "tx_aged", },
-	{ .offset = 0x80,	.name = "drop_local", },
-	{ .offset = 0x81,	.name = "drop_tail", },
-	{ .offset = 0x82,	.name = "drop_yellow_prio_0", },
-	{ .offset = 0x83,	.name = "drop_yellow_prio_1", },
-	{ .offset = 0x84,	.name = "drop_yellow_prio_2", },
-	{ .offset = 0x85,	.name = "drop_yellow_prio_3", },
-	{ .offset = 0x86,	.name = "drop_yellow_prio_4", },
-	{ .offset = 0x87,	.name = "drop_yellow_prio_5", },
-	{ .offset = 0x88,	.name = "drop_yellow_prio_6", },
-	{ .offset = 0x89,	.name = "drop_yellow_prio_7", },
-	{ .offset = 0x8A,	.name = "drop_green_prio_0", },
-	{ .offset = 0x8B,	.name = "drop_green_prio_1", },
-	{ .offset = 0x8C,	.name = "drop_green_prio_2", },
-	{ .offset = 0x8D,	.name = "drop_green_prio_3", },
-	{ .offset = 0x8E,	.name = "drop_green_prio_4", },
-	{ .offset = 0x8F,	.name = "drop_green_prio_5", },
-	{ .offset = 0x90,	.name = "drop_green_prio_6", },
-	{ .offset = 0x91,	.name = "drop_green_prio_7", },
-	OCELOT_STAT_END
+static const struct ocelot_stat_layout vsc9953_stats_layout[OCELOT_NUM_STATS] = {
+	[OCELOT_STAT_RX_OCTETS] = {
+		.name = "rx_octets",
+		.offset = 0x00,
+	},
+	[OCELOT_STAT_RX_UNICAST] = {
+		.name = "rx_unicast",
+		.offset = 0x01,
+	},
+	[OCELOT_STAT_RX_MULTICAST] = {
+		.name = "rx_multicast",
+		.offset = 0x02,
+	},
+	[OCELOT_STAT_RX_BROADCAST] = {
+		.name = "rx_broadcast",
+		.offset = 0x03,
+	},
+	[OCELOT_STAT_RX_SHORTS] = {
+		.name = "rx_shorts",
+		.offset = 0x04,
+	},
+	[OCELOT_STAT_RX_FRAGMENTS] = {
+		.name = "rx_fragments",
+		.offset = 0x05,
+	},
+	[OCELOT_STAT_RX_JABBERS] = {
+		.name = "rx_jabbers",
+		.offset = 0x06,
+	},
+	[OCELOT_STAT_RX_CRC_ALIGN_ERRS] = {
+		.name = "rx_crc_align_errs",
+		.offset = 0x07,
+	},
+	[OCELOT_STAT_RX_SYM_ERRS] = {
+		.name = "rx_sym_errs",
+		.offset = 0x08,
+	},
+	[OCELOT_STAT_RX_64] = {
+		.name = "rx_frames_below_65_octets",
+		.offset = 0x09,
+	},
+	[OCELOT_STAT_RX_65_127] = {
+		.name = "rx_frames_65_to_127_octets",
+		.offset = 0x0A,
+	},
+	[OCELOT_STAT_RX_128_255] = {
+		.name = "rx_frames_128_to_255_octets",
+		.offset = 0x0B,
+	},
+	[OCELOT_STAT_RX_256_511] = {
+		.name = "rx_frames_256_to_511_octets",
+		.offset = 0x0C,
+	},
+	[OCELOT_STAT_RX_512_1023] = {
+		.name = "rx_frames_512_to_1023_octets",
+		.offset = 0x0D,
+	},
+	[OCELOT_STAT_RX_1024_1526] = {
+		.name = "rx_frames_1024_to_1526_octets",
+		.offset = 0x0E,
+	},
+	[OCELOT_STAT_RX_1527_MAX] = {
+		.name = "rx_frames_over_1526_octets",
+		.offset = 0x0F,
+	},
+	[OCELOT_STAT_RX_PAUSE] = {
+		.name = "rx_pause",
+		.offset = 0x10,
+	},
+	[OCELOT_STAT_RX_CONTROL] = {
+		.name = "rx_control",
+		.offset = 0x11,
+	},
+	[OCELOT_STAT_RX_LONGS] = {
+		.name = "rx_longs",
+		.offset = 0x12,
+	},
+	[OCELOT_STAT_RX_CLASSIFIED_DROPS] = {
+		.name = "rx_classified_drops",
+		.offset = 0x13,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_0] = {
+		.name = "rx_red_prio_0",
+		.offset = 0x14,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_1] = {
+		.name = "rx_red_prio_1",
+		.offset = 0x15,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_2] = {
+		.name = "rx_red_prio_2",
+		.offset = 0x16,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_3] = {
+		.name = "rx_red_prio_3",
+		.offset = 0x17,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_4] = {
+		.name = "rx_red_prio_4",
+		.offset = 0x18,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_5] = {
+		.name = "rx_red_prio_5",
+		.offset = 0x19,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_6] = {
+		.name = "rx_red_prio_6",
+		.offset = 0x1A,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_7] = {
+		.name = "rx_red_prio_7",
+		.offset = 0x1B,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_0] = {
+		.name = "rx_yellow_prio_0",
+		.offset = 0x1C,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_1] = {
+		.name = "rx_yellow_prio_1",
+		.offset = 0x1D,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_2] = {
+		.name = "rx_yellow_prio_2",
+		.offset = 0x1E,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_3] = {
+		.name = "rx_yellow_prio_3",
+		.offset = 0x1F,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_4] = {
+		.name = "rx_yellow_prio_4",
+		.offset = 0x20,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_5] = {
+		.name = "rx_yellow_prio_5",
+		.offset = 0x21,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_6] = {
+		.name = "rx_yellow_prio_6",
+		.offset = 0x22,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_7] = {
+		.name = "rx_yellow_prio_7",
+		.offset = 0x23,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_0] = {
+		.name = "rx_green_prio_0",
+		.offset = 0x24,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_1] = {
+		.name = "rx_green_prio_1",
+		.offset = 0x25,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_2] = {
+		.name = "rx_green_prio_2",
+		.offset = 0x26,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_3] = {
+		.name = "rx_green_prio_3",
+		.offset = 0x27,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_4] = {
+		.name = "rx_green_prio_4",
+		.offset = 0x28,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_5] = {
+		.name = "rx_green_prio_5",
+		.offset = 0x29,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_6] = {
+		.name = "rx_green_prio_6",
+		.offset = 0x2A,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_7] = {
+		.name = "rx_green_prio_7",
+		.offset = 0x2B,
+	},
+	[OCELOT_STAT_TX_OCTETS] = {
+		.name = "tx_octets",
+		.offset = 0x40,
+	},
+	[OCELOT_STAT_TX_UNICAST] = {
+		.name = "tx_unicast",
+		.offset = 0x41,
+	},
+	[OCELOT_STAT_TX_MULTICAST] = {
+		.name = "tx_multicast",
+		.offset = 0x42,
+	},
+	[OCELOT_STAT_TX_BROADCAST] = {
+		.name = "tx_broadcast",
+		.offset = 0x43,
+	},
+	[OCELOT_STAT_TX_COLLISION] = {
+		.name = "tx_collision",
+		.offset = 0x44,
+	},
+	[OCELOT_STAT_TX_DROPS] = {
+		.name = "tx_drops",
+		.offset = 0x45,
+	},
+	[OCELOT_STAT_TX_PAUSE] = {
+		.name = "tx_pause",
+		.offset = 0x46,
+	},
+	[OCELOT_STAT_TX_64] = {
+		.name = "tx_frames_below_65_octets",
+		.offset = 0x47,
+	},
+	[OCELOT_STAT_TX_65_127] = {
+		.name = "tx_frames_65_to_127_octets",
+		.offset = 0x48,
+	},
+	[OCELOT_STAT_TX_128_255] = {
+		.name = "tx_frames_128_255_octets",
+		.offset = 0x49,
+	},
+	[OCELOT_STAT_TX_256_511] = {
+		.name = "tx_frames_256_511_octets",
+		.offset = 0x4A,
+	},
+	[OCELOT_STAT_TX_512_1023] = {
+		.name = "tx_frames_512_1023_octets",
+		.offset = 0x4B,
+	},
+	[OCELOT_STAT_TX_1024_1526] = {
+		.name = "tx_frames_1024_1526_octets",
+		.offset = 0x4C,
+	},
+	[OCELOT_STAT_TX_1527_MAX] = {
+		.name = "tx_frames_over_1526_octets",
+		.offset = 0x4D,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_0] = {
+		.name = "tx_yellow_prio_0",
+		.offset = 0x4E,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_1] = {
+		.name = "tx_yellow_prio_1",
+		.offset = 0x4F,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_2] = {
+		.name = "tx_yellow_prio_2",
+		.offset = 0x50,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_3] = {
+		.name = "tx_yellow_prio_3",
+		.offset = 0x51,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_4] = {
+		.name = "tx_yellow_prio_4",
+		.offset = 0x52,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_5] = {
+		.name = "tx_yellow_prio_5",
+		.offset = 0x53,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_6] = {
+		.name = "tx_yellow_prio_6",
+		.offset = 0x54,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_7] = {
+		.name = "tx_yellow_prio_7",
+		.offset = 0x55,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_0] = {
+		.name = "tx_green_prio_0",
+		.offset = 0x56,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_1] = {
+		.name = "tx_green_prio_1",
+		.offset = 0x57,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_2] = {
+		.name = "tx_green_prio_2",
+		.offset = 0x58,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_3] = {
+		.name = "tx_green_prio_3",
+		.offset = 0x59,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_4] = {
+		.name = "tx_green_prio_4",
+		.offset = 0x5A,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_5] = {
+		.name = "tx_green_prio_5",
+		.offset = 0x5B,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_6] = {
+		.name = "tx_green_prio_6",
+		.offset = 0x5C,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_7] = {
+		.name = "tx_green_prio_7",
+		.offset = 0x5D,
+	},
+	[OCELOT_STAT_TX_AGED] = {
+		.name = "tx_aged",
+		.offset = 0x5E,
+	},
+	[OCELOT_STAT_DROP_LOCAL] = {
+		.name = "drop_local",
+		.offset = 0x80,
+	},
+	[OCELOT_STAT_DROP_TAIL] = {
+		.name = "drop_tail",
+		.offset = 0x81,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_0] = {
+		.name = "drop_yellow_prio_0",
+		.offset = 0x82,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_1] = {
+		.name = "drop_yellow_prio_1",
+		.offset = 0x83,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_2] = {
+		.name = "drop_yellow_prio_2",
+		.offset = 0x84,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_3] = {
+		.name = "drop_yellow_prio_3",
+		.offset = 0x85,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_4] = {
+		.name = "drop_yellow_prio_4",
+		.offset = 0x86,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_5] = {
+		.name = "drop_yellow_prio_5",
+		.offset = 0x87,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_6] = {
+		.name = "drop_yellow_prio_6",
+		.offset = 0x88,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_7] = {
+		.name = "drop_yellow_prio_7",
+		.offset = 0x89,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_0] = {
+		.name = "drop_green_prio_0",
+		.offset = 0x8A,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_1] = {
+		.name = "drop_green_prio_1",
+		.offset = 0x8B,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_2] = {
+		.name = "drop_green_prio_2",
+		.offset = 0x8C,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_3] = {
+		.name = "drop_green_prio_3",
+		.offset = 0x8D,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_4] = {
+		.name = "drop_green_prio_4",
+		.offset = 0x8E,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_5] = {
+		.name = "drop_green_prio_5",
+		.offset = 0x8F,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_6] = {
+		.name = "drop_green_prio_6",
+		.offset = 0x90,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_7] = {
+		.name = "drop_green_prio_7",
+		.offset = 0x91,
+	},
 };
 
 static const struct vcap_field vsc9953_vcap_es0_keys[] = {
diff --git a/drivers/net/ethernet/mscc/ocelot.c b/drivers/net/ethernet/mscc/ocelot.c
index c67f162f8ab5..68991b021c56 100644
--- a/drivers/net/ethernet/mscc/ocelot.c
+++ b/drivers/net/ethernet/mscc/ocelot.c
@@ -1860,16 +1860,20 @@ void ocelot_get_strings(struct ocelot *ocelot, int port, u32 sset, u8 *data)
 	if (sset != ETH_SS_STATS)
 		return;
 
-	for (i = 0; i < ocelot->num_stats; i++)
+	for (i = 0; i < OCELOT_NUM_STATS; i++) {
+		if (ocelot->stats_layout[i].name[0] == '\0')
+			continue;
+
 		memcpy(data + i * ETH_GSTRING_LEN, ocelot->stats_layout[i].name,
 		       ETH_GSTRING_LEN);
+	}
 }
 EXPORT_SYMBOL(ocelot_get_strings);
 
 /* Caller must hold &ocelot->stats_lock */
 static int ocelot_port_update_stats(struct ocelot *ocelot, int port)
 {
-	unsigned int idx = port * ocelot->num_stats;
+	unsigned int idx = port * OCELOT_NUM_STATS;
 	struct ocelot_stats_region *region;
 	int err, j;
 
@@ -1930,9 +1934,15 @@ void ocelot_get_ethtool_stats(struct ocelot *ocelot, int port, u64 *data)
 	/* check and update now */
 	err = ocelot_port_update_stats(ocelot, port);
 
-	/* Copy all counters */
-	for (i = 0; i < ocelot->num_stats; i++)
-		*data++ = ocelot->stats[port * ocelot->num_stats + i];
+	/* Copy all supported counters */
+	for (i = 0; i < OCELOT_NUM_STATS; i++) {
+		int index = port * OCELOT_NUM_STATS + i;
+
+		if (ocelot->stats_layout[i].name[0] == '\0')
+			continue;
+
+		*data++ = ocelot->stats[index];
+	}
 
 	spin_unlock(&ocelot->stats_lock);
 
@@ -1943,10 +1953,16 @@ EXPORT_SYMBOL(ocelot_get_ethtool_stats);
 
 int ocelot_get_sset_count(struct ocelot *ocelot, int port, int sset)
 {
+	int i, num_stats = 0;
+
 	if (sset != ETH_SS_STATS)
 		return -EOPNOTSUPP;
 
-	return ocelot->num_stats;
+	for (i = 0; i < OCELOT_NUM_STATS; i++)
+		if (ocelot->stats_layout[i].name[0] != '\0')
+			num_stats++;
+
+	return num_stats;
 }
 EXPORT_SYMBOL(ocelot_get_sset_count);
 
@@ -1958,7 +1974,10 @@ static int ocelot_prepare_stats_regions(struct ocelot *ocelot)
 
 	INIT_LIST_HEAD(&ocelot->stats_regions);
 
-	for (i = 0; i < ocelot->num_stats; i++) {
+	for (i = 0; i < OCELOT_NUM_STATS; i++) {
+		if (ocelot->stats_layout[i].name[0] == '\0')
+			continue;
+
 		if (region && ocelot->stats_layout[i].offset == last + 1) {
 			region->count++;
 		} else {
@@ -3340,7 +3359,6 @@ static void ocelot_detect_features(struct ocelot *ocelot)
 
 int ocelot_init(struct ocelot *ocelot)
 {
-	const struct ocelot_stat_layout *stat;
 	char queue_name[32];
 	int i, ret;
 	u32 port;
@@ -3353,12 +3371,8 @@ int ocelot_init(struct ocelot *ocelot)
 		}
 	}
 
-	ocelot->num_stats = 0;
-	for_each_stat(ocelot, stat)
-		ocelot->num_stats++;
-
 	ocelot->stats = devm_kcalloc(ocelot->dev,
-				     ocelot->num_phys_ports * ocelot->num_stats,
+				     ocelot->num_phys_ports * OCELOT_NUM_STATS,
 				     sizeof(u64), GFP_KERNEL);
 	if (!ocelot->stats)
 		return -ENOMEM;
diff --git a/drivers/net/ethernet/mscc/ocelot_vsc7514.c b/drivers/net/ethernet/mscc/ocelot_vsc7514.c
index 961f803aca19..9ff910560043 100644
--- a/drivers/net/ethernet/mscc/ocelot_vsc7514.c
+++ b/drivers/net/ethernet/mscc/ocelot_vsc7514.c
@@ -96,101 +96,379 @@ static const struct reg_field ocelot_regfields[REGFIELD_MAX] = {
 	[SYS_PAUSE_CFG_PAUSE_ENA] = REG_FIELD_ID(SYS_PAUSE_CFG, 0, 1, 12, 4),
 };
 
-static const struct ocelot_stat_layout ocelot_stats_layout[] = {
-	{ .name = "rx_octets", .offset = 0x00, },
-	{ .name = "rx_unicast", .offset = 0x01, },
-	{ .name = "rx_multicast", .offset = 0x02, },
-	{ .name = "rx_broadcast", .offset = 0x03, },
-	{ .name = "rx_shorts", .offset = 0x04, },
-	{ .name = "rx_fragments", .offset = 0x05, },
-	{ .name = "rx_jabbers", .offset = 0x06, },
-	{ .name = "rx_crc_align_errs", .offset = 0x07, },
-	{ .name = "rx_sym_errs", .offset = 0x08, },
-	{ .name = "rx_frames_below_65_octets", .offset = 0x09, },
-	{ .name = "rx_frames_65_to_127_octets", .offset = 0x0A, },
-	{ .name = "rx_frames_128_to_255_octets", .offset = 0x0B, },
-	{ .name = "rx_frames_256_to_511_octets", .offset = 0x0C, },
-	{ .name = "rx_frames_512_to_1023_octets", .offset = 0x0D, },
-	{ .name = "rx_frames_1024_to_1526_octets", .offset = 0x0E, },
-	{ .name = "rx_frames_over_1526_octets", .offset = 0x0F, },
-	{ .name = "rx_pause", .offset = 0x10, },
-	{ .name = "rx_control", .offset = 0x11, },
-	{ .name = "rx_longs", .offset = 0x12, },
-	{ .name = "rx_classified_drops", .offset = 0x13, },
-	{ .name = "rx_red_prio_0", .offset = 0x14, },
-	{ .name = "rx_red_prio_1", .offset = 0x15, },
-	{ .name = "rx_red_prio_2", .offset = 0x16, },
-	{ .name = "rx_red_prio_3", .offset = 0x17, },
-	{ .name = "rx_red_prio_4", .offset = 0x18, },
-	{ .name = "rx_red_prio_5", .offset = 0x19, },
-	{ .name = "rx_red_prio_6", .offset = 0x1A, },
-	{ .name = "rx_red_prio_7", .offset = 0x1B, },
-	{ .name = "rx_yellow_prio_0", .offset = 0x1C, },
-	{ .name = "rx_yellow_prio_1", .offset = 0x1D, },
-	{ .name = "rx_yellow_prio_2", .offset = 0x1E, },
-	{ .name = "rx_yellow_prio_3", .offset = 0x1F, },
-	{ .name = "rx_yellow_prio_4", .offset = 0x20, },
-	{ .name = "rx_yellow_prio_5", .offset = 0x21, },
-	{ .name = "rx_yellow_prio_6", .offset = 0x22, },
-	{ .name = "rx_yellow_prio_7", .offset = 0x23, },
-	{ .name = "rx_green_prio_0", .offset = 0x24, },
-	{ .name = "rx_green_prio_1", .offset = 0x25, },
-	{ .name = "rx_green_prio_2", .offset = 0x26, },
-	{ .name = "rx_green_prio_3", .offset = 0x27, },
-	{ .name = "rx_green_prio_4", .offset = 0x28, },
-	{ .name = "rx_green_prio_5", .offset = 0x29, },
-	{ .name = "rx_green_prio_6", .offset = 0x2A, },
-	{ .name = "rx_green_prio_7", .offset = 0x2B, },
-	{ .name = "tx_octets", .offset = 0x40, },
-	{ .name = "tx_unicast", .offset = 0x41, },
-	{ .name = "tx_multicast", .offset = 0x42, },
-	{ .name = "tx_broadcast", .offset = 0x43, },
-	{ .name = "tx_collision", .offset = 0x44, },
-	{ .name = "tx_drops", .offset = 0x45, },
-	{ .name = "tx_pause", .offset = 0x46, },
-	{ .name = "tx_frames_below_65_octets", .offset = 0x47, },
-	{ .name = "tx_frames_65_to_127_octets", .offset = 0x48, },
-	{ .name = "tx_frames_128_255_octets", .offset = 0x49, },
-	{ .name = "tx_frames_256_511_octets", .offset = 0x4A, },
-	{ .name = "tx_frames_512_1023_octets", .offset = 0x4B, },
-	{ .name = "tx_frames_1024_1526_octets", .offset = 0x4C, },
-	{ .name = "tx_frames_over_1526_octets", .offset = 0x4D, },
-	{ .name = "tx_yellow_prio_0", .offset = 0x4E, },
-	{ .name = "tx_yellow_prio_1", .offset = 0x4F, },
-	{ .name = "tx_yellow_prio_2", .offset = 0x50, },
-	{ .name = "tx_yellow_prio_3", .offset = 0x51, },
-	{ .name = "tx_yellow_prio_4", .offset = 0x52, },
-	{ .name = "tx_yellow_prio_5", .offset = 0x53, },
-	{ .name = "tx_yellow_prio_6", .offset = 0x54, },
-	{ .name = "tx_yellow_prio_7", .offset = 0x55, },
-	{ .name = "tx_green_prio_0", .offset = 0x56, },
-	{ .name = "tx_green_prio_1", .offset = 0x57, },
-	{ .name = "tx_green_prio_2", .offset = 0x58, },
-	{ .name = "tx_green_prio_3", .offset = 0x59, },
-	{ .name = "tx_green_prio_4", .offset = 0x5A, },
-	{ .name = "tx_green_prio_5", .offset = 0x5B, },
-	{ .name = "tx_green_prio_6", .offset = 0x5C, },
-	{ .name = "tx_green_prio_7", .offset = 0x5D, },
-	{ .name = "tx_aged", .offset = 0x5E, },
-	{ .name = "drop_local", .offset = 0x80, },
-	{ .name = "drop_tail", .offset = 0x81, },
-	{ .name = "drop_yellow_prio_0", .offset = 0x82, },
-	{ .name = "drop_yellow_prio_1", .offset = 0x83, },
-	{ .name = "drop_yellow_prio_2", .offset = 0x84, },
-	{ .name = "drop_yellow_prio_3", .offset = 0x85, },
-	{ .name = "drop_yellow_prio_4", .offset = 0x86, },
-	{ .name = "drop_yellow_prio_5", .offset = 0x87, },
-	{ .name = "drop_yellow_prio_6", .offset = 0x88, },
-	{ .name = "drop_yellow_prio_7", .offset = 0x89, },
-	{ .name = "drop_green_prio_0", .offset = 0x8A, },
-	{ .name = "drop_green_prio_1", .offset = 0x8B, },
-	{ .name = "drop_green_prio_2", .offset = 0x8C, },
-	{ .name = "drop_green_prio_3", .offset = 0x8D, },
-	{ .name = "drop_green_prio_4", .offset = 0x8E, },
-	{ .name = "drop_green_prio_5", .offset = 0x8F, },
-	{ .name = "drop_green_prio_6", .offset = 0x90, },
-	{ .name = "drop_green_prio_7", .offset = 0x91, },
-	OCELOT_STAT_END
+static const struct ocelot_stat_layout ocelot_stats_layout[OCELOT_NUM_STATS] = {
+	[OCELOT_STAT_RX_OCTETS] = {
+		.name = "rx_octets",
+		.offset = 0x00,
+	},
+	[OCELOT_STAT_RX_UNICAST] = {
+		.name = "rx_unicast",
+		.offset = 0x01,
+	},
+	[OCELOT_STAT_RX_MULTICAST] = {
+		.name = "rx_multicast",
+		.offset = 0x02,
+	},
+	[OCELOT_STAT_RX_BROADCAST] = {
+		.name = "rx_broadcast",
+		.offset = 0x03,
+	},
+	[OCELOT_STAT_RX_SHORTS] = {
+		.name = "rx_shorts",
+		.offset = 0x04,
+	},
+	[OCELOT_STAT_RX_FRAGMENTS] = {
+		.name = "rx_fragments",
+		.offset = 0x05,
+	},
+	[OCELOT_STAT_RX_JABBERS] = {
+		.name = "rx_jabbers",
+		.offset = 0x06,
+	},
+	[OCELOT_STAT_RX_CRC_ALIGN_ERRS] = {
+		.name = "rx_crc_align_errs",
+		.offset = 0x07,
+	},
+	[OCELOT_STAT_RX_SYM_ERRS] = {
+		.name = "rx_sym_errs",
+		.offset = 0x08,
+	},
+	[OCELOT_STAT_RX_64] = {
+		.name = "rx_frames_below_65_octets",
+		.offset = 0x09,
+	},
+	[OCELOT_STAT_RX_65_127] = {
+		.name = "rx_frames_65_to_127_octets",
+		.offset = 0x0A,
+	},
+	[OCELOT_STAT_RX_128_255] = {
+		.name = "rx_frames_128_to_255_octets",
+		.offset = 0x0B,
+	},
+	[OCELOT_STAT_RX_256_511] = {
+		.name = "rx_frames_256_to_511_octets",
+		.offset = 0x0C,
+	},
+	[OCELOT_STAT_RX_512_1023] = {
+		.name = "rx_frames_512_to_1023_octets",
+		.offset = 0x0D,
+	},
+	[OCELOT_STAT_RX_1024_1526] = {
+		.name = "rx_frames_1024_to_1526_octets",
+		.offset = 0x0E,
+	},
+	[OCELOT_STAT_RX_1527_MAX] = {
+		.name = "rx_frames_over_1526_octets",
+		.offset = 0x0F,
+	},
+	[OCELOT_STAT_RX_PAUSE] = {
+		.name = "rx_pause",
+		.offset = 0x10,
+	},
+	[OCELOT_STAT_RX_CONTROL] = {
+		.name = "rx_control",
+		.offset = 0x11,
+	},
+	[OCELOT_STAT_RX_LONGS] = {
+		.name = "rx_longs",
+		.offset = 0x12,
+	},
+	[OCELOT_STAT_RX_CLASSIFIED_DROPS] = {
+		.name = "rx_classified_drops",
+		.offset = 0x13,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_0] = {
+		.name = "rx_red_prio_0",
+		.offset = 0x14,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_1] = {
+		.name = "rx_red_prio_1",
+		.offset = 0x15,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_2] = {
+		.name = "rx_red_prio_2",
+		.offset = 0x16,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_3] = {
+		.name = "rx_red_prio_3",
+		.offset = 0x17,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_4] = {
+		.name = "rx_red_prio_4",
+		.offset = 0x18,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_5] = {
+		.name = "rx_red_prio_5",
+		.offset = 0x19,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_6] = {
+		.name = "rx_red_prio_6",
+		.offset = 0x1A,
+	},
+	[OCELOT_STAT_RX_RED_PRIO_7] = {
+		.name = "rx_red_prio_7",
+		.offset = 0x1B,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_0] = {
+		.name = "rx_yellow_prio_0",
+		.offset = 0x1C,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_1] = {
+		.name = "rx_yellow_prio_1",
+		.offset = 0x1D,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_2] = {
+		.name = "rx_yellow_prio_2",
+		.offset = 0x1E,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_3] = {
+		.name = "rx_yellow_prio_3",
+		.offset = 0x1F,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_4] = {
+		.name = "rx_yellow_prio_4",
+		.offset = 0x20,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_5] = {
+		.name = "rx_yellow_prio_5",
+		.offset = 0x21,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_6] = {
+		.name = "rx_yellow_prio_6",
+		.offset = 0x22,
+	},
+	[OCELOT_STAT_RX_YELLOW_PRIO_7] = {
+		.name = "rx_yellow_prio_7",
+		.offset = 0x23,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_0] = {
+		.name = "rx_green_prio_0",
+		.offset = 0x24,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_1] = {
+		.name = "rx_green_prio_1",
+		.offset = 0x25,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_2] = {
+		.name = "rx_green_prio_2",
+		.offset = 0x26,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_3] = {
+		.name = "rx_green_prio_3",
+		.offset = 0x27,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_4] = {
+		.name = "rx_green_prio_4",
+		.offset = 0x28,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_5] = {
+		.name = "rx_green_prio_5",
+		.offset = 0x29,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_6] = {
+		.name = "rx_green_prio_6",
+		.offset = 0x2A,
+	},
+	[OCELOT_STAT_RX_GREEN_PRIO_7] = {
+		.name = "rx_green_prio_7",
+		.offset = 0x2B,
+	},
+	[OCELOT_STAT_TX_OCTETS] = {
+		.name = "tx_octets",
+		.offset = 0x40,
+	},
+	[OCELOT_STAT_TX_UNICAST] = {
+		.name = "tx_unicast",
+		.offset = 0x41,
+	},
+	[OCELOT_STAT_TX_MULTICAST] = {
+		.name = "tx_multicast",
+		.offset = 0x42,
+	},
+	[OCELOT_STAT_TX_BROADCAST] = {
+		.name = "tx_broadcast",
+		.offset = 0x43,
+	},
+	[OCELOT_STAT_TX_COLLISION] = {
+		.name = "tx_collision",
+		.offset = 0x44,
+	},
+	[OCELOT_STAT_TX_DROPS] = {
+		.name = "tx_drops",
+		.offset = 0x45,
+	},
+	[OCELOT_STAT_TX_PAUSE] = {
+		.name = "tx_pause",
+		.offset = 0x46,
+	},
+	[OCELOT_STAT_TX_64] = {
+		.name = "tx_frames_below_65_octets",
+		.offset = 0x47,
+	},
+	[OCELOT_STAT_TX_65_127] = {
+		.name = "tx_frames_65_to_127_octets",
+		.offset = 0x48,
+	},
+	[OCELOT_STAT_TX_128_255] = {
+		.name = "tx_frames_128_255_octets",
+		.offset = 0x49,
+	},
+	[OCELOT_STAT_TX_256_511] = {
+		.name = "tx_frames_256_511_octets",
+		.offset = 0x4A,
+	},
+	[OCELOT_STAT_TX_512_1023] = {
+		.name = "tx_frames_512_1023_octets",
+		.offset = 0x4B,
+	},
+	[OCELOT_STAT_TX_1024_1526] = {
+		.name = "tx_frames_1024_1526_octets",
+		.offset = 0x4C,
+	},
+	[OCELOT_STAT_TX_1527_MAX] = {
+		.name = "tx_frames_over_1526_octets",
+		.offset = 0x4D,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_0] = {
+		.name = "tx_yellow_prio_0",
+		.offset = 0x4E,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_1] = {
+		.name = "tx_yellow_prio_1",
+		.offset = 0x4F,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_2] = {
+		.name = "tx_yellow_prio_2",
+		.offset = 0x50,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_3] = {
+		.name = "tx_yellow_prio_3",
+		.offset = 0x51,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_4] = {
+		.name = "tx_yellow_prio_4",
+		.offset = 0x52,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_5] = {
+		.name = "tx_yellow_prio_5",
+		.offset = 0x53,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_6] = {
+		.name = "tx_yellow_prio_6",
+		.offset = 0x54,
+	},
+	[OCELOT_STAT_TX_YELLOW_PRIO_7] = {
+		.name = "tx_yellow_prio_7",
+		.offset = 0x55,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_0] = {
+		.name = "tx_green_prio_0",
+		.offset = 0x56,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_1] = {
+		.name = "tx_green_prio_1",
+		.offset = 0x57,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_2] = {
+		.name = "tx_green_prio_2",
+		.offset = 0x58,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_3] = {
+		.name = "tx_green_prio_3",
+		.offset = 0x59,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_4] = {
+		.name = "tx_green_prio_4",
+		.offset = 0x5A,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_5] = {
+		.name = "tx_green_prio_5",
+		.offset = 0x5B,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_6] = {
+		.name = "tx_green_prio_6",
+		.offset = 0x5C,
+	},
+	[OCELOT_STAT_TX_GREEN_PRIO_7] = {
+		.name = "tx_green_prio_7",
+		.offset = 0x5D,
+	},
+	[OCELOT_STAT_TX_AGED] = {
+		.name = "tx_aged",
+		.offset = 0x5E,
+	},
+	[OCELOT_STAT_DROP_LOCAL] = {
+		.name = "drop_local",
+		.offset = 0x80,
+	},
+	[OCELOT_STAT_DROP_TAIL] = {
+		.name = "drop_tail",
+		.offset = 0x81,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_0] = {
+		.name = "drop_yellow_prio_0",
+		.offset = 0x82,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_1] = {
+		.name = "drop_yellow_prio_1",
+		.offset = 0x83,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_2] = {
+		.name = "drop_yellow_prio_2",
+		.offset = 0x84,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_3] = {
+		.name = "drop_yellow_prio_3",
+		.offset = 0x85,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_4] = {
+		.name = "drop_yellow_prio_4",
+		.offset = 0x86,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_5] = {
+		.name = "drop_yellow_prio_5",
+		.offset = 0x87,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_6] = {
+		.name = "drop_yellow_prio_6",
+		.offset = 0x88,
+	},
+	[OCELOT_STAT_DROP_YELLOW_PRIO_7] = {
+		.name = "drop_yellow_prio_7",
+		.offset = 0x89,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_0] = {
+		.name = "drop_green_prio_0",
+		.offset = 0x8A,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_1] = {
+		.name = "drop_green_prio_1",
+		.offset = 0x8B,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_2] = {
+		.name = "drop_green_prio_2",
+		.offset = 0x8C,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_3] = {
+		.name = "drop_green_prio_3",
+		.offset = 0x8D,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_4] = {
+		.name = "drop_green_prio_4",
+		.offset = 0x8E,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_5] = {
+		.name = "drop_green_prio_5",
+		.offset = 0x8F,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_6] = {
+		.name = "drop_green_prio_6",
+		.offset = 0x90,
+	},
+	[OCELOT_STAT_DROP_GREEN_PRIO_7] = {
+		.name = "drop_green_prio_7",
+		.offset = 0x91,
+	},
 };
 
 static void ocelot_pll5_init(struct ocelot *ocelot)
diff --git a/include/soc/mscc/ocelot.h b/include/soc/mscc/ocelot.h
index 72b9474391da..2428bc64cb1d 100644
--- a/include/soc/mscc/ocelot.h
+++ b/include/soc/mscc/ocelot.h
@@ -105,11 +105,6 @@
 #define REG_RESERVED_ADDR		0xffffffff
 #define REG_RESERVED(reg)		REG(reg, REG_RESERVED_ADDR)
 
-#define for_each_stat(ocelot, stat)				\
-	for ((stat) = (ocelot)->stats_layout;			\
-	     ((stat)->name[0] != '\0');				\
-	     (stat)++)
-
 enum ocelot_target {
 	ANA = 1,
 	QS,
@@ -540,13 +535,108 @@ enum ocelot_ptp_pins {
 	TOD_ACC_PIN
 };
 
+enum ocelot_stat {
+	OCELOT_STAT_RX_OCTETS,
+	OCELOT_STAT_RX_UNICAST,
+	OCELOT_STAT_RX_MULTICAST,
+	OCELOT_STAT_RX_BROADCAST,
+	OCELOT_STAT_RX_SHORTS,
+	OCELOT_STAT_RX_FRAGMENTS,
+	OCELOT_STAT_RX_JABBERS,
+	OCELOT_STAT_RX_CRC_ALIGN_ERRS,
+	OCELOT_STAT_RX_SYM_ERRS,
+	OCELOT_STAT_RX_64,
+	OCELOT_STAT_RX_65_127,
+	OCELOT_STAT_RX_128_255,
+	OCELOT_STAT_RX_256_511,
+	OCELOT_STAT_RX_512_1023,
+	OCELOT_STAT_RX_1024_1526,
+	OCELOT_STAT_RX_1527_MAX,
+	OCELOT_STAT_RX_PAUSE,
+	OCELOT_STAT_RX_CONTROL,
+	OCELOT_STAT_RX_LONGS,
+	OCELOT_STAT_RX_CLASSIFIED_DROPS,
+	OCELOT_STAT_RX_RED_PRIO_0,
+	OCELOT_STAT_RX_RED_PRIO_1,
+	OCELOT_STAT_RX_RED_PRIO_2,
+	OCELOT_STAT_RX_RED_PRIO_3,
+	OCELOT_STAT_RX_RED_PRIO_4,
+	OCELOT_STAT_RX_RED_PRIO_5,
+	OCELOT_STAT_RX_RED_PRIO_6,
+	OCELOT_STAT_RX_RED_PRIO_7,
+	OCELOT_STAT_RX_YELLOW_PRIO_0,
+	OCELOT_STAT_RX_YELLOW_PRIO_1,
+	OCELOT_STAT_RX_YELLOW_PRIO_2,
+	OCELOT_STAT_RX_YELLOW_PRIO_3,
+	OCELOT_STAT_RX_YELLOW_PRIO_4,
+	OCELOT_STAT_RX_YELLOW_PRIO_5,
+	OCELOT_STAT_RX_YELLOW_PRIO_6,
+	OCELOT_STAT_RX_YELLOW_PRIO_7,
+	OCELOT_STAT_RX_GREEN_PRIO_0,
+	OCELOT_STAT_RX_GREEN_PRIO_1,
+	OCELOT_STAT_RX_GREEN_PRIO_2,
+	OCELOT_STAT_RX_GREEN_PRIO_3,
+	OCELOT_STAT_RX_GREEN_PRIO_4,
+	OCELOT_STAT_RX_GREEN_PRIO_5,
+	OCELOT_STAT_RX_GREEN_PRIO_6,
+	OCELOT_STAT_RX_GREEN_PRIO_7,
+	OCELOT_STAT_TX_OCTETS,
+	OCELOT_STAT_TX_UNICAST,
+	OCELOT_STAT_TX_MULTICAST,
+	OCELOT_STAT_TX_BROADCAST,
+	OCELOT_STAT_TX_COLLISION,
+	OCELOT_STAT_TX_DROPS,
+	OCELOT_STAT_TX_PAUSE,
+	OCELOT_STAT_TX_64,
+	OCELOT_STAT_TX_65_127,
+	OCELOT_STAT_TX_128_255,
+	OCELOT_STAT_TX_256_511,
+	OCELOT_STAT_TX_512_1023,
+	OCELOT_STAT_TX_1024_1526,
+	OCELOT_STAT_TX_1527_MAX,
+	OCELOT_STAT_TX_YELLOW_PRIO_0,
+	OCELOT_STAT_TX_YELLOW_PRIO_1,
+	OCELOT_STAT_TX_YELLOW_PRIO_2,
+	OCELOT_STAT_TX_YELLOW_PRIO_3,
+	OCELOT_STAT_TX_YELLOW_PRIO_4,
+	OCELOT_STAT_TX_YELLOW_PRIO_5,
+	OCELOT_STAT_TX_YELLOW_PRIO_6,
+	OCELOT_STAT_TX_YELLOW_PRIO_7,
+	OCELOT_STAT_TX_GREEN_PRIO_0,
+	OCELOT_STAT_TX_GREEN_PRIO_1,
+	OCELOT_STAT_TX_GREEN_PRIO_2,
+	OCELOT_STAT_TX_GREEN_PRIO_3,
+	OCELOT_STAT_TX_GREEN_PRIO_4,
+	OCELOT_STAT_TX_GREEN_PRIO_5,
+	OCELOT_STAT_TX_GREEN_PRIO_6,
+	OCELOT_STAT_TX_GREEN_PRIO_7,
+	OCELOT_STAT_TX_AGED,
+	OCELOT_STAT_DROP_LOCAL,
+	OCELOT_STAT_DROP_TAIL,
+	OCELOT_STAT_DROP_YELLOW_PRIO_0,
+	OCELOT_STAT_DROP_YELLOW_PRIO_1,
+	OCELOT_STAT_DROP_YELLOW_PRIO_2,
+	OCELOT_STAT_DROP_YELLOW_PRIO_3,
+	OCELOT_STAT_DROP_YELLOW_PRIO_4,
+	OCELOT_STAT_DROP_YELLOW_PRIO_5,
+	OCELOT_STAT_DROP_YELLOW_PRIO_6,
+	OCELOT_STAT_DROP_YELLOW_PRIO_7,
+	OCELOT_STAT_DROP_GREEN_PRIO_0,
+	OCELOT_STAT_DROP_GREEN_PRIO_1,
+	OCELOT_STAT_DROP_GREEN_PRIO_2,
+	OCELOT_STAT_DROP_GREEN_PRIO_3,
+	OCELOT_STAT_DROP_GREEN_PRIO_4,
+	OCELOT_STAT_DROP_GREEN_PRIO_5,
+	OCELOT_STAT_DROP_GREEN_PRIO_6,
+	OCELOT_STAT_DROP_GREEN_PRIO_7,
+	OCELOT_NUM_STATS,
+};
+
 struct ocelot_stat_layout {
 	u32 offset;
 	char name[ETH_GSTRING_LEN];
 };
 
-#define OCELOT_STAT_END { .name = "" }
-
 struct ocelot_stats_region {
 	struct list_head node;
 	u32 offset;
@@ -709,7 +799,6 @@ struct ocelot {
 	const u32 *const		*map;
 	const struct ocelot_stat_layout	*stats_layout;
 	struct list_head		stats_regions;
-	unsigned int			num_stats;
 
 	u32				pool_size[OCELOT_SB_NUM][OCELOT_SB_POOL_NUM];
 	int				packet_buffer_size;
-- 
2.35.1




  parent reply	other threads:[~2022-08-23  9:08 UTC|newest]

Thread overview: 384+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-23  7:58 [PATCH 5.19 000/365] 5.19.4-rc1 review Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 001/365] ALSA: info: Fix llseek return value when using callback Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 002/365] ALSA: hda/realtek: Add quirk for Clevo NS50PU, NS70PU Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 003/365] RDMA: Handle the return code from dma_resv_wait_timeout() properly Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 004/365] KVM: Unconditionally get a ref to /dev/kvm module when creating a VM Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 005/365] x86/mm: Use proper mask when setting PUD mapping Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 006/365] rds: add missing barrier to release_refill Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 007/365] drm/i915/gem: Remove shared locking on freeing objects Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 008/365] locking/atomic: Make test_and_*_bit() ordered on failure Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 009/365] drm/nouveau: recognise GA103 Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 010/365] drm/ttm: Fix dummy res NULL ptr deref bug Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 011/365] drm/amdgpu: Only disable prefer_shadow on hawaii Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 012/365] drm/amd/display: Check correct bounds for stream encoder instances for DCN303 Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 013/365] s390/ap: fix crash on older machines based on QCI info missing Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 014/365] ata: libata-eh: Add missing command name Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 015/365] mmc: pxamci: Fix another error handling path in pxamci_probe() Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 016/365] mmc: pxamci: Fix an " Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 017/365] mmc: meson-gx: Fix an error handling path in meson_mmc_probe() Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 018/365] btrfs: unset reloc control if transaction commit fails in prepare_to_relocate() Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 019/365] btrfs: reset RO counter on block group if we fail to relocate Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 020/365] btrfs: fix lost error handling when looking up extended ref on log replay Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 021/365] btrfs: fix warning during log replay when bumping inode link count Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 022/365] drm/amdgpu: change vram width algorithm for vram_info v3_0 Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 023/365] drm/i915/gt: Ignore TLB invalidations on idle engines Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 024/365] drm/i915/gt: Invalidate TLB of the OA unit at TLB invalidations Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 025/365] drm/i915/gt: Skip TLB invalidations once wedged Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 026/365] drm/i915/gt: Batch TLB invalidations Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 027/365] drm/i915: pass a pointer for tlb seqno at vma_invalidate_tlb() Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 028/365] cifs: Fix memory leak on the deferred close Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 029/365] x86/kprobes: Fix JNG/JNLE emulation Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 030/365] tracing/perf: Fix double put of trace event when init fails Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 031/365] tracing/eprobes: Do not allow eprobes to use $stack, or % for regs Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 032/365] tracing/eprobes: Do not hardcode $comm as a string Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 033/365] tracing/eprobes: Fix reading of string fields Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 034/365] tracing/eprobes: Have event probes be consistent with kprobes and uprobes Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 035/365] tracing/probes: Have kprobes and uprobes use $COMM too Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 036/365] tracing: Have filter accept "common_cpu" to be consistent Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 037/365] ALSA: usb-audio: More comprehensive mixer map for ASUS ROG Zenith II Greg Kroah-Hartman
2022-08-23  7:58 ` [PATCH 5.19 038/365] ALSA: hda: Fix crash due to jack poll in suspend Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 039/365] dt-bindings: usb: mtk-xhci: Allow wakeup interrupt-names to be optional Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 040/365] can: ems_usb: fix clangs -Wunaligned-access warning Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 041/365] apparmor: fix quiet_denied for file rules Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 042/365] apparmor: fix absroot causing audited secids to begin with = Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 043/365] apparmor: Fix failed mount permission check error message Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 044/365] apparmor: fix aa_label_asxprint return check Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 045/365] apparmor: fix setting unconfined mode on a loaded profile Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 046/365] apparmor: fix overlapping attachment computation Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 047/365] apparmor: fix reference count leak in aa_pivotroot() Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 048/365] apparmor: Fix memleak in aa_simple_write_to_buffer() Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 049/365] Documentation: ACPI: EINJ: Fix obsolete example Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 050/365] netfilter: nf_tables: fix crash when nf_trace is enabled Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 051/365] net: tap: NULL pointer derefence in dev_parse_header_protocol when skb->dev is null Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 052/365] NFSv4.1: Dont decrease the value of seq_nr_highest_sent Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 053/365] NFSv4.1: Handle NFS4ERR_DELAY replies to OP_SEQUENCE correctly Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 054/365] NFSv4: Fix races in the legacy idmapper upcall Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 055/365] NFSv4.1: RECLAIM_COMPLETE must handle EACCES Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 056/365] NFSv4/pnfs: Fix a use-after-free bug in open Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 057/365] mptcp, btf: Add struct mptcp_sock definition when CONFIG_MPTCP is disabled Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 058/365] mptcp: move subflow cleanup in mptcp_destroy_common() Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 059/365] mptcp: do not queue data on closed subflows Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 060/365] selftests: mptcp: make sendfile selftest work Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 061/365] BPF: Fix potential bad pointer dereference in bpf_sys_bpf() Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 062/365] bpf: Disallow bpf programs call prog_run command Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 063/365] bpf: Dont reinit map value in prealloc_lru_pop Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 064/365] bpf: Acquire map uref in .init_seq_private for array map iterator Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 065/365] bpf: Acquire map uref in .init_seq_private for hash " Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 066/365] bpf: Acquire map uref in .init_seq_private for sock local storage " Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 067/365] bpf: Acquire map uref in .init_seq_private for sock{map,hash} iterator Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 068/365] bpf: Check the validity of max_rdwr_access for sock local storage map iterator Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 069/365] can: mcp251x: Fix race condition on receive interrupt Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 070/365] can: j1939: j1939_session_destroy(): fix memory leak of skbs Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 071/365] net: atlantic: fix aq_vec index out of range error Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 072/365] m68k: coldfire/device.c: protect FLEXCAN blocks Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 073/365] sunrpc: fix expiry of auth creds Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 074/365] SUNRPC: Fix xdr_encode_bool() Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 075/365] SUNRPC: Reinitialise the backchannel request buffers before reuse Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 076/365] SUNRPC: Dont reuse bvec on retransmission of the request Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 077/365] ASoC: qdsp6: q6apm-dai: unprepare stream if its already prepared Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 078/365] virtio: VIRTIO_HARDEN_NOTIFICATION is broken Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 079/365] virtio_net: fix memory leak inside XPD_TX with mergeable Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 080/365] virtio-blk: Avoid use-after-free on suspend/resume Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 081/365] devlink: Fix use-after-free after a failed reload Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 082/365] net: phy: Warn about incorrect mdio_bus_phy_resume() state Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 083/365] net: bcmgenet: Indicate MAC is in charge of PHY PM Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 084/365] net: phy: c45 baset1: do not skip aneg configuration if clock role is not specified Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 085/365] net: dsa: felix: suppress non-changes to the tagging protocol Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 086/365] net: bgmac: Fix a BUG triggered by wrong bytes_compl Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 087/365] net: atm: bring back zatm uAPI Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 088/365] selftests: forwarding: Fix failing tests with old libnet Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 089/365] dt-bindings: arm: qcom: fix Alcatel OneTouch Idol 3 compatibles Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 090/365] pinctrl: renesas: rzg2l: Return -EINVAL for pins which have input disabled Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 091/365] dt-bindings: pinctrl: mt8192: Add drive-strength-microamp Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 092/365] dt-bindings: pinctrl: mt8192: Use generic bias instead of pull-*-adv Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 093/365] pinctrl: nomadik: Fix refcount leak in nmk_pinctrl_dt_subnode_to_map Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 094/365] pinctrl: qcom: msm8916: Allow CAMSS GP clocks to be muxed Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 095/365] pinctrl: amd: Dont save/restore interrupt status and wake status bits Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 096/365] dt-bindings: pinctrl: mt8195: Fix name for mediatek,rsel-resistance-in-si-unit Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 097/365] dt-bindings: pinctrl: mt8195: Add and use drive-strength-microamp Greg Kroah-Hartman
2022-08-23  7:59 ` [PATCH 5.19 098/365] pinctrl: sunxi: Add I/O bias setting for H6 R-PIO Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 099/365] dt-bindings: pinctrl: mt8186: Add and use drive-strength-microamp Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 100/365] pinctrl: qcom: sm8250: Fix PDC map Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 101/365] rtc: spear: set range max Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 102/365] Input: exc3000 - fix return value check of wait_for_completion_timeout Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 103/365] Input: mt6779-keypad - match hardware matrix organization Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 104/365] Input: iqs7222 - correct slider event disable logic Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 105/365] Input: iqs7222 - fortify slider event reporting Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 106/365] Input: iqs7222 - protect volatile registers Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 107/365] Input: iqs7222 - acknowledge reset before writing registers Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 108/365] Input: iqs7222 - handle reset during ATI Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 109/365] Input: iqs7222 - remove support for RF filter Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 110/365] dt-bindings: input: iqs7222: Remove " Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 111/365] dt-bindings: input: iqs7222: Correct bottom speed step size Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 112/365] dt-bindings: input: iqs7222: Extend slider-mapped GPIO to IQS7222C Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 113/365] um: Add missing apply_returns() Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 114/365] octeontx2-pf: Fix NIX_AF_TL3_TL2X_LINKX_CFG register configuration Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 115/365] octeontx2-af: Apply tx nibble fixup always Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 116/365] octeontx2-af: suppress external profile loading warning Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 117/365] octeontx2-af: Fix mcam entry resource leak Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 118/365] octeontx2-af: Fix key checking for source mac Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 119/365] ACPI: property: Return type of acpi_add_nondev_subnodes() should be bool Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 120/365] geneve: do not use RT_TOS for IPv6 flowlabel Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 121/365] vxlan: " Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 122/365] mlx5: " Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 123/365] ipv6: " Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 124/365] plip: avoid rcu debug splat Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 125/365] vsock: Fix memory leak in vsock_connect() Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 126/365] vsock: Set socket state back to SS_UNCONNECTED in vsock_connect_timeout() Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 127/365] dt-bindings: gpio: zynq: Add missing compatible strings Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 128/365] dt-bindings: arm: qcom: fix Longcheer L8150 compatibles Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 129/365] dt-bindings: arm: qcom: fix MSM8916 MTP compatibles Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 130/365] dt-bindings: arm: qcom: fix MSM8994 boards compatibles Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 131/365] dt-bindings: clock: qcom,gcc-msm8996: add more GCC clock sources Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 132/365] dt-bindings: PCI: qcom: Fix reset conditional Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 133/365] spi: dt-bindings: cadence: add missing required Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 134/365] spi: dt-bindings: zynqmp-qspi: " Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 135/365] dt-bindings: opp: opp-v2-kryo-cpu: Fix example binding checks Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 136/365] spi: dt-bindings: qcom,spi-geni-qcom: allow three interconnects Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 137/365] ceph: use correct index when encoding client supported features Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 138/365] tools/testing/cxl: Fix decoder default state Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 139/365] tools/vm/slabinfo: use alphabetic order when two values are equal Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 140/365] ceph: dont leak snap_rwsem in handle_cap_grant Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 141/365] clk: imx93: Correct the edma1s parent clock Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 142/365] vdpa_sim: use max_iotlb_entries as a limit in vhost_iotlb_init Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 143/365] vdpa_sim_blk: set number of address spaces and virtqueue groups Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 144/365] tools/testing/cxl: Fix cxl_hdm_decode_init() calling convention Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 145/365] kbuild: dummy-tools: avoid tmpdir leak in dummy gcc Greg Kroah-Hartman
2022-08-27  7:51   ` Jiri Slaby
2022-08-27  8:34     ` Ondrej Mosnacek
2022-08-29  7:12       ` Jiri Slaby
2022-08-29  8:05         ` Greg Kroah-Hartman
2022-08-29  9:33           ` Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 146/365] tools build: Switch to new openssl API for test-libcrypto Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 147/365] NTB: ntb_tool: uninitialized heap data in tool_fn_write() Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 148/365] nfp: ethtool: fix the display error of `ethtool -m DEVNAME` Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 149/365] xen/xenbus: fix return type in xenbus_file_read() Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 150/365] tsnep: Fix tsnep_tx_unmap() error path usage Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 151/365] atm: idt77252: fix use-after-free bugs caused by tst_timer Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 152/365] fscache: dont leak cookie access refs if invalidation is in progress or failed Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 153/365] geneve: fix TOS inheriting for ipv4 Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 154/365] nvme-fc: fix the fc_appid_store return value Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 155/365] perf probe: Fix an error handling path in parse_perf_probe_command() Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 156/365] i2c: qcom-geni: Fix GPI DMA buffer sync-back Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 157/365] perf parse-events: Fix segfault when event parser gets an error Greg Kroah-Hartman
2022-08-23  8:00 ` [PATCH 5.19 158/365] perf tests: Fix Track with sched_switch test for hybrid case Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 159/365] dpaa2-eth: trace the allocated address instead of page struct Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 160/365] fs/ntfs3: Fix using uninitialized value n when calling indx_read Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 161/365] fs/ntfs3: Fix NULL deref in ntfs_update_mftmirr Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 162/365] fs/ntfs3: Dont clear upper bits accidentally in log_replay() Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 163/365] fs/ntfs3: Fix double free on remount Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 164/365] fs/ntfs3: Do not change mode if ntfs_set_ea failed Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 165/365] fs/ntfs3: Fix missing i_op in ntfs_read_mft Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 166/365] nios2: page fault et.al. are *not* restartable syscalls Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 167/365] nios2: dont leave NULLs in sys_call_table[] Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 168/365] nios2: traced syscall does need to check the syscall number Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 169/365] nios2: fix syscall restart checks Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 170/365] nios2: restarts apply only to the first sigframe we build Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 171/365] nios2: add force_successful_syscall_return() Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 172/365] iavf: Fix adminq error handling Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 173/365] iavf: Fix NULL pointer dereference in iavf_get_link_ksettings Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 174/365] iavf: Fix reset error handling Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 175/365] iavf: Fix deadlock in initialization Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 176/365] ASoC: Intel: avs: Fix potential buffer overflow by snprintf() Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 177/365] ASoC: SOF: debug: " Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 178/365] ASoC: SOF: Intel: hda: " Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 179/365] ASoC: DPCM: Dont pick up BE without substream Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 180/365] ASoC: tas2770: Set correct FSYNC polarity Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 181/365] ASoC: tas2770: Allow mono streams Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 182/365] ASoC: tas2770: Drop conflicting set_bias_level power setting Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 183/365] ASoC: tas2770: Fix handling of mute/unmute Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 184/365] ASoC: codec: tlv320aic32x4: fix mono playback via I2S Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 185/365] IB/iser: Fix login with authentication Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 186/365] RDMA/mlx5: Use the proper number of ports Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 187/365] RDMA/cxgb4: fix accept failure due to increased cpl_t5_pass_accept_rpl size Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 188/365] netfilter: nfnetlink: re-enable conntrack expectation events Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 189/365] netfilter: nf_tables: use READ_ONCE and WRITE_ONCE for shared generation id access Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 190/365] fs/ntfs3: uninitialized variable in ntfs_set_acl_ex() Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 191/365] netfilter: nf_tables: disallow NFTA_SET_ELEM_KEY_END with NFT_SET_ELEM_INTERVAL_END flag Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 192/365] netfilter: nf_ct_sane: remove pseudo skb linearization Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 193/365] netfilter: nf_ct_h323: cap packet size at 64k Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 194/365] netfilter: nf_ct_ftp: prefer skb_linearize Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 195/365] netfilter: nf_ct_irc: cap packet search space to 4k Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 196/365] netfilter: nf_tables: possible module reference underflow in error path Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 197/365] netfilter: nf_tables: really skip inactive sets when allocating name Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 198/365] netfilter: nf_tables: fix scheduling-while-atomic splat Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 199/365] netfilter: nf_tables: validate NFTA_SET_ELEM_OBJREF based on NFT_SET_OBJECT flag Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 200/365] netfilter: nf_tables: NFTA_SET_ELEM_KEY_END requires concat and interval flags Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 201/365] netfilter: nf_tables: disallow NFT_SET_ELEM_CATCHALL and NFT_SET_ELEM_INTERVAL_END Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 202/365] netfilter: nf_tables: check NFT_SET_CONCAT flag if field_count is specified Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 203/365] powerpc/pci: Fix get_phb_number() locking Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 204/365] spi: meson-spicc: add local pow2 clock ops to preserve rate between messages Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 205/365] net/sunrpc: fix potential memory leaks in rpc_sysfs_xprt_state_change() Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 206/365] net: dsa: mv88e6060: prevent crash on an unused port Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 207/365] net: qrtr: start MHI channel after endpoit creation Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 208/365] virtio_net: fix endian-ness for RSS Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 209/365] mlxsw: spectrum: Clear PTP configuration after unregistering the netdevice Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 210/365] net: moxa: pass pdev instead of ndev to DMA functions Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 211/365] net: fix potential refcount leak in ndisc_router_discovery() Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 212/365] net: rtnetlink: fix module reference count leak issue in rtnetlink_rcv_msg Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 213/365] net: sched: fix misuse of qcpu->backlog in gnet_stats_add_queue_cpu Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 214/365] net: dsa: microchip: ksz9477: fix fdb_dump last invalid entry Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 215/365] net: dsa: felix: fix ethtool 256-511 and 512-1023 TX packet counters Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 216/365] net: mscc: ocelot: fix incorrect ndo_get_stats64 " Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 217/365] net: mscc: ocelot: fix address of SYS_COUNT_TX_AGING counter Greg Kroah-Hartman
2022-08-23  8:01 ` [PATCH 5.19 218/365] net: genl: fix error path memory leak in policy dumping Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 219/365] net: dsa: dont warn in dsa_port_set_state_now() when driver doesnt support it Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 220/365] net: dsa: sja1105: fix buffer overflow in sja1105_setup_devlink_regions() Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 221/365] ice: Fix VSI rebuild WARN_ON check for VF Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 222/365] ice: Fix call trace with null VSI during VF reset Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 223/365] ice: Fix VF not able to send tagged traffic with no VLAN filters Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 224/365] ice: Fix double VLAN error when entering promisc mode Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 225/365] ice: Ignore EEXIST when setting " Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 226/365] ice: Fix clearing of promisc mode with bridge over bond Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 227/365] ice: Ignore error message when setting same promiscuous mode Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 228/365] modpost: fix module versioning when a symbol lacks valid CRC Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 229/365] i2c: imx: Make sure to unregister adapter on remove() Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 230/365] i40e: Fix tunnel checksum offload with fragmented traffic Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 231/365] regulator: pca9450: Remove restrictions for regulator-name Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 232/365] i40e: Fix to stop tx_timeout recovery if GLOBR fails Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 233/365] blk-mq: run queue no matter whether the request is the last request Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 234/365] tools/rtla: Fix command symlinks Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 235/365] fec: Fix timer capture timing in `fec_ptp_enable_pps()` Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 236/365] dt-bindings: display: sun4i: Add D1 TCONs to conditionals Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 237/365] stmmac: intel: Add a missing clk_disable_unprepare() call in intel_eth_pci_remove() Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 238/365] igb: Add lock to avoid data race Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 239/365] kbuild: fix the modules order between drivers and libs Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 240/365] gcc-plugins: Undefine LATENT_ENTROPY_PLUGIN when plugin disabled for a file Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 241/365] can: j1939: j1939_sk_queue_activate_next_locked(): replace WARN_ON_ONCE with netdev_warn_once() Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 242/365] drm/imx/dcss: get rid of HPD warning message Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 243/365] drm/meson: Fix refcount bugs in meson_vpu_has_available_connectors() Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 244/365] drm/i915/ttm: dont leak the ccs state Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 245/365] drm/amdgpu: Avoid another list of reset devices Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 246/365] drm/bridge: lvds-codec: Fix error checking of drm_of_lvds_get_data_mapping() Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 247/365] drm/sun4i: dsi: Prevent underflow when computing packet sizes Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 248/365] drm/amdgpu: Fix use-after-free on amdgpu_bo_list mutex Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 249/365] KVM: arm64: Treat PMCR_EL1.LC as RES1 on asymmetric systems Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 250/365] KVM: arm64: Reject 32bit user PSTATE " Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 251/365] net: mscc: ocelot: turn stats_lock into a spinlock Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 252/365] net: mscc: ocelot: fix race between ndo_get_stats64 and ocelot_check_stats_work Greg Kroah-Hartman
2022-08-23  8:02 ` Greg Kroah-Hartman [this message]
2022-08-23  8:02 ` [PATCH 5.19 254/365] net: mscc: ocelot: report ndo_get_stats64 from the wraparound-resistant ocelot->stats Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 255/365] x86/ibt, objtool: Add IBT_NOSEAL() Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 256/365] x86/kvm: Fix "missing ENDBR" BUG for fastop functions Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 257/365] thunderbolt: Change downstream routers TMU rate in both TMU uni/bidir mode Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 258/365] HID: multitouch: new device class fix Lenovo X12 trackpad sticky Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 259/365] PCI: Add ACS quirk for Broadcom BCM5750x NICs Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 260/365] platform/chrome: cros_ec_proto: dont show MKBP version if unsupported Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 261/365] staging: r8188eu: add error handling of rtw_read8 Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 262/365] staging: r8188eu: add error handling of rtw_read16 Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 263/365] staging: r8188eu: add error handling of rtw_read32 Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 264/365] usb: cdns3 fix use-after-free at workaround 2 Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 265/365] usb: gadget: uvc: calculate the number of request depending on framesize Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 266/365] usb: gadget: uvc: call uvc uvcg_warn on completed status instead of uvcg_info Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 267/365] PCI: aardvark: Fix reporting Slot capabilities on emulated bridge Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 268/365] scsi: ufs: core: Add UFSHCD_QUIRK_BROKEN_64BIT_ADDRESS Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 269/365] scsi: ufs: core: Add UFSHCD_QUIRK_HIBERN_FASTAUTO Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 270/365] irqchip/tegra: Fix overflow implicit truncation warnings Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 271/365] drm/meson: " Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 272/365] clk: ti: Stop using legacy clkctrl names for omap4 and 5 Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 273/365] scsi: ufs: ufs-mediatek: Fix the timing of configuring device regulators Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 274/365] usb: typec: mux: Add CONFIG guards for functions Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 275/365] usb: host: ohci-ppc-of: Fix refcount leak bug Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 276/365] usb: renesas: " Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 277/365] scsi: iscsi: Fix HW conn removal use after free Greg Kroah-Hartman
2022-08-23  8:02 ` [PATCH 5.19 278/365] usb: dwc2: gadget: remove D+ pull-up while no vbus with usb-role-switch Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 279/365] vboxguest: Do not use devm for irq Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 280/365] clk: qcom: ipq8074: dont disable gcc_sleep_clk_src Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 281/365] uacce: Handle parent device removal or parent driver module rmmod Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 282/365] zram: do not lookup algorithm in backends table Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 283/365] clk: qcom: clk-alpha-pll: fix clk_trion_pll_configure description Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 284/365] scsi: lpfc: Prevent buffer overflow crashes in debugfs with malformed user input Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 285/365] scsi: lpfc: Fix possible memory leak when failing to issue CMF WQE Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 286/365] gadgetfs: ep_io - wait until IRQ finishes Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 287/365] coresight: etm4x: avoid build failure with unrolled loops Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 288/365] habanalabs: add terminating NULL to attrs arrays Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 289/365] habanalabs/gaudi: invoke device reset from one code block Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 290/365] habanalabs/gaudi: fix shift out of bounds Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 291/365] habanalabs/gaudi: mask constant value before cast Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 292/365] mmc: tmio: avoid glitches when resetting Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 293/365] scsi: ufs: ufs-exynos: Change ufs phy control sequence Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 294/365] pinctrl: intel: Check against matching data instead of ACPI companion Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 295/365] cxl: Fix a memory leak in an error handling path Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 296/365] PCI/ACPI: Guard ARM64-specific mcfg_quirks Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 297/365] um: add "noreboot" command line option for PANIC_TIMEOUT=-1 setups Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 298/365] of: overlay: Move devicetree_corrupt() check up Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 299/365] dmaengine: dw-axi-dmac: do not print NULL LLI during error Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 300/365] dmaengine: dw-axi-dmac: ignore interrupt if no descriptor Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 301/365] mmc: renesas_sdhi: newer SoCs dont need manual tap correction Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 302/365] ACPI: PPTT: Leave the table mapped for the runtime usage Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 303/365] RDMA/rxe: Limit the number of calls to each tasklet Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 304/365] csky/kprobe: reclaim insn_slot on kprobe unregistration Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 305/365] selftests/kprobe: Do not test for GRP/ without event failures Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 306/365] dmaengine: tegra: Add terminate() for Tegra234 Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 307/365] dmaengine: sprd: Cleanup in .remove() after pm_runtime_get_sync() failed Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 308/365] Revert "RDMA/rxe: Create duplicate mapping tables for FMRs" Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 309/365] openrisc: io: Define iounmap argument as volatile Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 310/365] phy: samsung: phy-exynos-pcie: sanitize init/power_on callbacks Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 311/365] md: Notify sysfs sync_completed in md_reap_sync_thread() Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 312/365] md/raid5: Make logic blocking check consistent with logic that blocks Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 313/365] nvmet-tcp: fix lockdep complaint on nvmet_tcp_wq flush during queue teardown Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 314/365] drivers:md:fix a potential use-after-free bug Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 315/365] ext4: avoid remove directory when directory is corrupted Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 316/365] ext4: block range must be validated before use in ext4_mb_clear_bb() Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 317/365] ext4: avoid resizing to a partial cluster size Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 318/365] lib/list_debug.c: Detect uninitialized lists Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 319/365] swiotlb: panic if nslabs is too small Greg Kroah-Hartman
2022-08-23 17:25   ` Dongli Zhang
2022-08-23 17:51     ` Yu Zhao
2022-08-23 18:22       ` Dongli Zhang
2022-08-24  6:56     ` Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 320/365] tty: serial: Fix refcount leak bug in ucc_uart.c Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 321/365] KVM: PPC: Book3S HV: Fix "rm_exit" entry in debugfs timings Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 322/365] vfio: Clear the caps->buf to NULL after free Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 323/365] mips: cavium-octeon: Fix missing of_node_put() in octeon2_usb_clocks_start Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 324/365] iommu/io-pgtable-arm-v7s: Add a quirk to allow pgtable PA up to 35bit Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 325/365] ASoC: Intel: avs: Set max DMA segment size Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 326/365] ALSA: hda: Fix page fault in snd_hda_codec_shutdown() Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 327/365] modules: Ensure natural alignment for .altinstructions and __bug_table sections Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 328/365] ASoC: SOF: Intel: cnl: Do not process IPC reply before firmware boot Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 329/365] ASoC: SOF: Intel: hda-ipc: " Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 330/365] ASoC: SOF: sof-client-probes: Only load the driver if IPC3 is used Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 331/365] ASoC: rsnd: care default case on rsnd_ssiu_busif_err_irq_ctrl() Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 332/365] riscv: dts: sifive: Add fu540 topology information Greg Kroah-Hartman
2022-08-23  9:49   ` Conor.Dooley
2022-08-23 11:10     ` Greg KH
2022-08-23  8:03 ` [PATCH 5.19 333/365] riscv: dts: sifive: Add fu740 " Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 334/365] riscv: dts: canaan: Add k210 " Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 335/365] ASoC: nau8821: Dont unconditionally free interrupt Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 336/365] riscv: mmap with PROT_WRITE but no PROT_READ is invalid Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 337/365] RISC-V: Add fast call path of crash_kexec() Greg Kroah-Hartman
2022-08-23  8:03 ` [PATCH 5.19 338/365] ALSA: hda/realtek: Enable speaker and mute LEDs for HP laptops Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 339/365] ASoC: SOF: Intel: hda: add sanity check on SSP index reported by NHLT Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 340/365] ASoC: Intel: sof_es8336: Fix GPIO quirks set via module option Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 341/365] ASoC: Intel: sof_es8336: ignore GpioInt when looking for speaker/headset GPIO lines Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 342/365] ASoC: Intel: sof_nau8825: Move quirk check to the front in late probe Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 343/365] watchdog: export lockup_detector_reconfigure Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 344/365] powerpc/watchdog: introduce a NMI watchdogs factor Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 345/365] powerpc/pseries/mobility: set NMI watchdog factor during an LPM Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 346/365] powerpc/32: Set an IBAT covering up to _einittext during init Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 347/365] powerpc/32: Dont always pass -mcpu=powerpc to the compiler Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 348/365] ASoC: codecs: va-macro: use fsgen as clock Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 349/365] ovl: warn if trusted xattr creation fails Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 350/365] powerpc/ioda/iommu/debugfs: Generate unique debugfs entries Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 351/365] ALSA: core: Add async signal helpers Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 352/365] ALSA: timer: Use deferred fasync helper Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 353/365] ALSA: pcm: " Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 354/365] ALSA: control: " Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 355/365] f2fs: fix to avoid use f2fs_bug_on() in f2fs_new_node_page() Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 356/365] f2fs: fix to do sanity check on segment type in build_sit_entries() Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 357/365] smb3: check xattr value length earlier Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 358/365] powerpc/64: Init jump labels before parse_early_param() Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 359/365] venus: pm_helpers: Fix warning in OPP during probe Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 360/365] video: fbdev: i740fb: Check the argument of i740_calc_vclk() Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 361/365] MIPS: tlbex: Explicitly compare _PAGE_NO_EXEC against 0 Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 362/365] f2fs: revive F2FS_IOC_ABORT_VOLATILE_WRITE Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 363/365] f2fs: fix null-ptr-deref in f2fs_get_dnode_of_data Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 364/365] scsi: ufs: ufs-mediatek: Fix build error and type mismatch Greg Kroah-Hartman
2022-08-23  8:04 ` [PATCH 5.19 365/365] Revert "ALSA: hda: Fix page fault in snd_hda_codec_shutdown()" Greg Kroah-Hartman
2022-08-23 17:02 ` [PATCH 5.19 000/365] 5.19.4-rc1 review Justin Forbes
2022-08-23 21:16 ` Guenter Roeck
2022-08-24  6:06   ` Greg Kroah-Hartman
2022-08-24  6:56     ` Greg Kroah-Hartman
2022-08-23 21:33 ` Shuah Khan
2022-08-23 22:38 ` Rudi Heitbaum
2022-08-23 22:43 ` Ron Economos

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220823080128.778682232@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=vladimir.oltean@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).