From b6769f8b3b91a82cb94a185cd294bd00764038b0 Mon Sep 17 00:00:00 2001
From: Robert Nelson <robertcnelson@gmail.com>
Date: Mon, 12 Sep 2022 12:05:39 -0500
Subject: [PATCH] kernel v6.0-rc5 rebase with: device-tree/etc AUFS:
 https://github.com/sfjro/aufs5-standalone/commit/ba33c72cb9fd20d86a2f38dea64d47607fcc9b6a
 BBDTBS:
 https://github.com/beagleboard/BeagleBoard-DeviceTrees/commit/22ffe2a3b5ad1415be0606ef739c275d3f9c9a8f
 TI_AMX3_CM3:
 http://git.ti.com/gitweb/?p=processor-firmware/ti-amx3-cm3-pm-firmware.git;a=commit;h=fb484c5e54f2e31cf0a338d2927a06a2870bcc2c
 WPANUSB:
 https://github.com/statropy/wpanusb/commit/251f0167545bf2dcaa3cad991a59dbf5ab05490a
 BCFSERIAL:
 https://github.com/statropy/bcfserial/commit/aded88429a8a00143596b41f4c1f50d9ae3d4069
 WIRELESS_REGDB:
 https://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git/commit/?id=9dc9c89375c996c4d1d1a8c0a76f9dd04e244077

Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
---
 patch.sh                                      |   4 +-
 .../0001-backports-uio-from-linux.git.patch   |   6 +-
 ...-https-github.com-statropy-bcfserial.patch |   4 +-
 patches/defconfig                             |   3 +-
 patches/ref_omap2plus_defconfig               |   3 +-
 ...01-merge-CONFIG_PREEMPT_RT-Patch-Set.patch | 431 ++++++++++++++++--
 ...eless-regdb-regulatory-database-file.patch |   4 +-
 ...sb-https-github.com-statropy-wpanusb.patch |   4 +-
 version.sh                                    |   6 +-
 9 files changed, 417 insertions(+), 48 deletions(-)

diff --git a/patch.sh b/patch.sh
index 96f4dd692..b001fbd8c 100644
--- a/patch.sh
+++ b/patch.sh
@@ -518,7 +518,7 @@ patch_backports (){
 }
 
 backports () {
-	backport_tag="v5.10.139"
+	backport_tag="v5.10.142"
 
 	subsystem="uio"
 	#regenerate="enable"
@@ -587,7 +587,7 @@ fixes
 packaging () {
 	#do_backport="enable"
 	if [ "x${do_backport}" = "xenable" ] ; then
-		backport_tag="v5.19.5"
+		backport_tag="v5.19.8"
 
 		subsystem="bindeb-pkg"
 		#regenerate="enable"
diff --git a/patches/backports/uio/0001-backports-uio-from-linux.git.patch b/patches/backports/uio/0001-backports-uio-from-linux.git.patch
index 4fcd40efd..15e2bc7d7 100644
--- a/patches/backports/uio/0001-backports-uio-from-linux.git.patch
+++ b/patches/backports/uio/0001-backports-uio-from-linux.git.patch
@@ -1,9 +1,9 @@
-From 9f651526c9562706eeffad9bfe4cacb2142ed8ce Mon Sep 17 00:00:00 2001
+From c6254f811abb9fb92657253db5393944b976d042 Mon Sep 17 00:00:00 2001
 From: Robert Nelson <robertcnelson@gmail.com>
-Date: Mon, 29 Aug 2022 09:02:10 -0500
+Date: Mon, 12 Sep 2022 10:55:32 -0500
 Subject: [PATCH] backports: uio: from: linux.git
 
-Reference: v5.10.139
+Reference: v5.10.142
 Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
 ---
  drivers/uio/uio_pruss.c | 44 +++++++++++++++++++++++++++++++----------
diff --git a/patches/bcfserial/0001-merge-bcfserial-https-github.com-statropy-bcfserial.patch b/patches/bcfserial/0001-merge-bcfserial-https-github.com-statropy-bcfserial.patch
index 8179aeccc..14165080d 100644
--- a/patches/bcfserial/0001-merge-bcfserial-https-github.com-statropy-bcfserial.patch
+++ b/patches/bcfserial/0001-merge-bcfserial-https-github.com-statropy-bcfserial.patch
@@ -1,6 +1,6 @@
-From 887180c17693c683320b27167f22e9735ea86dd1 Mon Sep 17 00:00:00 2001
+From 533954c3bd5440a924d1daf74263c890541e6321 Mon Sep 17 00:00:00 2001
 From: Robert Nelson <robertcnelson@gmail.com>
-Date: Mon, 29 Aug 2022 09:01:12 -0500
+Date: Mon, 12 Sep 2022 10:54:18 -0500
 Subject: [PATCH] merge: bcfserial: https://github.com/statropy/bcfserial
 
 https://github.com/statropy/bcfserial/commit/aded88429a8a00143596b41f4c1f50d9ae3d4069
diff --git a/patches/defconfig b/patches/defconfig
index fe6c9c01e..35188d622 100644
--- a/patches/defconfig
+++ b/patches/defconfig
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/arm 6.0.0-rc3 Kernel Configuration
+# Linux/arm 6.0.0-rc5 Kernel Configuration
 #
 CONFIG_CC_VERSION_TEXT="arm-linux-gnueabi-gcc (GCC) 11.3.0"
 CONFIG_CC_IS_GCC=y
@@ -650,6 +650,7 @@ CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
 CONFIG_MODULES_USE_ELF_REL=y
 CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
 CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_SOFTIRQ_ON_OWN_STACK=y
 CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
 CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
 CONFIG_HAVE_EXIT_THREAD=y
diff --git a/patches/ref_omap2plus_defconfig b/patches/ref_omap2plus_defconfig
index 3b48d5b9c..5f72429f7 100644
--- a/patches/ref_omap2plus_defconfig
+++ b/patches/ref_omap2plus_defconfig
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/arm 6.0.0-rc3 Kernel Configuration
+# Linux/arm 6.0.0-rc5 Kernel Configuration
 #
 CONFIG_CC_VERSION_TEXT="arm-linux-gnueabi-gcc (GCC) 11.3.0"
 CONFIG_CC_IS_GCC=y
@@ -706,6 +706,7 @@ CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
 CONFIG_MODULES_USE_ELF_REL=y
 CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
 CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_SOFTIRQ_ON_OWN_STACK=y
 CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
 CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
 CONFIG_HAVE_EXIT_THREAD=y
diff --git a/patches/rt/0001-merge-CONFIG_PREEMPT_RT-Patch-Set.patch b/patches/rt/0001-merge-CONFIG_PREEMPT_RT-Patch-Set.patch
index 65d41540c..0d9aed968 100644
--- a/patches/rt/0001-merge-CONFIG_PREEMPT_RT-Patch-Set.patch
+++ b/patches/rt/0001-merge-CONFIG_PREEMPT_RT-Patch-Set.patch
@@ -1,9 +1,9 @@
-From 7b332f35e3b552c5a20601c14e3070a42dd94ae5 Mon Sep 17 00:00:00 2001
+From c048b2a1369f01eb8f8ba62f01621f53d2ca975b Mon Sep 17 00:00:00 2001
 From: Robert Nelson <robertcnelson@gmail.com>
-Date: Mon, 29 Aug 2022 09:01:26 -0500
+Date: Mon, 12 Sep 2022 10:53:19 -0500
 Subject: [PATCH] merge: CONFIG_PREEMPT_RT Patch Set
 
-patch-6.0-rc3-rt5.patch.xz
+patch-6.0-rc4-rt6.patch.xz
 
 Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
 ---
@@ -50,7 +50,6 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
  drivers/gpu/drm/i915/i915_request.c           |   2 -
  drivers/gpu/drm/i915/i915_trace.h             |   6 +-
  drivers/gpu/drm/i915/i915_utils.h             |   2 +-
- drivers/net/dsa/xrs700x/xrs700x.c             |   5 +-
  drivers/net/ethernet/alacritech/slic.h        |  12 +-
  drivers/net/ethernet/amazon/ena/ena_ethtool.c |   4 +-
  drivers/net/ethernet/amazon/ena/ena_netdev.c  |  12 +-
@@ -58,9 +57,15 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
  drivers/net/ethernet/asix/ax88796c_main.c     |   4 +-
  drivers/net/ethernet/broadcom/b44.c           |   8 +-
  drivers/net/ethernet/broadcom/bcmsysport.c    |  12 +-
+ drivers/net/ethernet/cortina/gemini.c         |  24 +-
  .../net/ethernet/emulex/benet/be_ethtool.c    |  12 +-
  drivers/net/ethernet/emulex/benet/be_main.c   |  16 +-
+ .../ethernet/fungible/funeth/funeth_txrx.h    |   4 +-
+ drivers/net/ethernet/google/gve/gve_ethtool.c |  16 +-
+ drivers/net/ethernet/google/gve/gve_main.c    |  12 +-
  .../net/ethernet/hisilicon/hns3/hns3_enet.c   |   4 +-
+ drivers/net/ethernet/huawei/hinic/hinic_rx.c  |   4 +-
+ drivers/net/ethernet/huawei/hinic/hinic_tx.c  |   4 +-
  .../net/ethernet/intel/fm10k/fm10k_netdev.c   |   8 +-
  .../net/ethernet/intel/i40e/i40e_ethtool.c    |   8 +-
  drivers/net/ethernet/intel/i40e/i40e_main.c   |  20 +-
@@ -81,6 +86,8 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
  .../net/ethernet/mellanox/mlxsw/spectrum.c    |   4 +-
  drivers/net/ethernet/microsoft/mana/mana_en.c |   8 +-
  .../ethernet/microsoft/mana/mana_ethtool.c    |   8 +-
+ .../ethernet/netronome/nfp/nfp_net_common.c   |   8 +-
+ .../ethernet/netronome/nfp/nfp_net_ethtool.c  |   8 +-
  .../net/ethernet/netronome/nfp/nfp_net_repr.c |   4 +-
  drivers/net/ethernet/nvidia/forcedeth.c       |   8 +-
  .../net/ethernet/qualcomm/rmnet/rmnet_vnd.c   |   4 +-
@@ -96,6 +103,7 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
  drivers/net/macsec.c                          |  12 +-
  drivers/net/macvlan.c                         |   4 +-
  drivers/net/mhi_net.c                         |   8 +-
+ drivers/net/netdevsim/netdev.c                |   4 +-
  drivers/net/team/team.c                       |   4 +-
  drivers/net/team/team_mode_loadbalance.c      |   4 +-
  drivers/net/veth.c                            |  12 +-
@@ -192,12 +200,14 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
  net/dsa/slave.c                               |   4 +-
  net/ipv4/af_inet.c                            |   4 +-
  net/ipv6/seg6_local.c                         |   4 +-
+ net/mac80211/sta_info.c                       |   8 +-
+ net/mpls/af_mpls.c                            |   4 +-
  net/netfilter/ipvs/ip_vs_ctl.c                |   4 +-
  net/netfilter/nf_tables_api.c                 |   4 +-
  net/openvswitch/datapath.c                    |   4 +-
  net/openvswitch/flow_table.c                  |   9 +-
  scripts/checkpatch.pl                         |   6 +
- 190 files changed, 2760 insertions(+), 940 deletions(-)
+ 200 files changed, 2805 insertions(+), 986 deletions(-)
 
 diff --git a/arch/Kconfig b/arch/Kconfig
 index 5dbf11a5ba4e..8b311e400ec1 100644
@@ -1367,30 +1377,6 @@ index c10d68cdc3ca..593f3a7e0e4f 100644
  # define _WAIT_FOR_ATOMIC_CHECK(ATOMIC) WARN_ON_ONCE((ATOMIC) && !in_atomic())
  #else
  # define _WAIT_FOR_ATOMIC_CHECK(ATOMIC) do { } while (0)
-diff --git a/drivers/net/dsa/xrs700x/xrs700x.c b/drivers/net/dsa/xrs700x/xrs700x.c
-index 3887ed33c5fe..fa622639d640 100644
---- a/drivers/net/dsa/xrs700x/xrs700x.c
-+++ b/drivers/net/dsa/xrs700x/xrs700x.c
-@@ -109,6 +109,7 @@ static void xrs700x_read_port_counters(struct xrs700x *priv, int port)
- {
- 	struct xrs700x_port *p = &priv->ports[port];
- 	struct rtnl_link_stats64 stats;
-+	unsigned long flags;
- 	int i;
- 
- 	memset(&stats, 0, sizeof(stats));
-@@ -138,9 +139,9 @@ static void xrs700x_read_port_counters(struct xrs700x *priv, int port)
- 	 */
- 	stats.rx_packets += stats.multicast;
- 
--	u64_stats_update_begin(&p->syncp);
-+	flags = u64_stats_update_begin_irqsave(&p->syncp);
- 	p->stats64 = stats;
--	u64_stats_update_end(&p->syncp);
-+	u64_stats_update_end_irqrestore(&p->syncp, flags);
- 
- 	mutex_unlock(&p->mib_mutex);
- }
 diff --git a/drivers/net/ethernet/alacritech/slic.h b/drivers/net/ethernet/alacritech/slic.h
 index 4eecbdfff3ff..82071d0e5f7f 100644
 --- a/drivers/net/ethernet/alacritech/slic.h
@@ -1603,6 +1589,99 @@ index 47fc8e6963d5..98d5bd15ee43 100644
  }
  
  static void bcm_sysport_netif_start(struct net_device *dev)
+diff --git a/drivers/net/ethernet/cortina/gemini.c b/drivers/net/ethernet/cortina/gemini.c
+index 6dae768671e3..9e6de2f968fa 100644
+--- a/drivers/net/ethernet/cortina/gemini.c
++++ b/drivers/net/ethernet/cortina/gemini.c
+@@ -1919,7 +1919,7 @@ static void gmac_get_stats64(struct net_device *netdev,
+ 
+ 	/* Racing with RX NAPI */
+ 	do {
+-		start = u64_stats_fetch_begin_irq(&port->rx_stats_syncp);
++		start = u64_stats_fetch_begin(&port->rx_stats_syncp);
+ 
+ 		stats->rx_packets = port->stats.rx_packets;
+ 		stats->rx_bytes = port->stats.rx_bytes;
+@@ -1931,11 +1931,11 @@ static void gmac_get_stats64(struct net_device *netdev,
+ 		stats->rx_crc_errors = port->stats.rx_crc_errors;
+ 		stats->rx_frame_errors = port->stats.rx_frame_errors;
+ 
+-	} while (u64_stats_fetch_retry_irq(&port->rx_stats_syncp, start));
++	} while (u64_stats_fetch_retry(&port->rx_stats_syncp, start));
+ 
+ 	/* Racing with MIB and TX completion interrupts */
+ 	do {
+-		start = u64_stats_fetch_begin_irq(&port->ir_stats_syncp);
++		start = u64_stats_fetch_begin(&port->ir_stats_syncp);
+ 
+ 		stats->tx_errors = port->stats.tx_errors;
+ 		stats->tx_packets = port->stats.tx_packets;
+@@ -1945,15 +1945,15 @@ static void gmac_get_stats64(struct net_device *netdev,
+ 		stats->rx_missed_errors = port->stats.rx_missed_errors;
+ 		stats->rx_fifo_errors = port->stats.rx_fifo_errors;
+ 
+-	} while (u64_stats_fetch_retry_irq(&port->ir_stats_syncp, start));
++	} while (u64_stats_fetch_retry(&port->ir_stats_syncp, start));
+ 
+ 	/* Racing with hard_start_xmit */
+ 	do {
+-		start = u64_stats_fetch_begin_irq(&port->tx_stats_syncp);
++		start = u64_stats_fetch_begin(&port->tx_stats_syncp);
+ 
+ 		stats->tx_dropped = port->stats.tx_dropped;
+ 
+-	} while (u64_stats_fetch_retry_irq(&port->tx_stats_syncp, start));
++	} while (u64_stats_fetch_retry(&port->tx_stats_syncp, start));
+ 
+ 	stats->rx_dropped += stats->rx_missed_errors;
+ }
+@@ -2031,18 +2031,18 @@ static void gmac_get_ethtool_stats(struct net_device *netdev,
+ 	/* Racing with MIB interrupt */
+ 	do {
+ 		p = values;
+-		start = u64_stats_fetch_begin_irq(&port->ir_stats_syncp);
++		start = u64_stats_fetch_begin(&port->ir_stats_syncp);
+ 
+ 		for (i = 0; i < RX_STATS_NUM; i++)
+ 			*p++ = port->hw_stats[i];
+ 
+-	} while (u64_stats_fetch_retry_irq(&port->ir_stats_syncp, start));
++	} while (u64_stats_fetch_retry(&port->ir_stats_syncp, start));
+ 	values = p;
+ 
+ 	/* Racing with RX NAPI */
+ 	do {
+ 		p = values;
+-		start = u64_stats_fetch_begin_irq(&port->rx_stats_syncp);
++		start = u64_stats_fetch_begin(&port->rx_stats_syncp);
+ 
+ 		for (i = 0; i < RX_STATUS_NUM; i++)
+ 			*p++ = port->rx_stats[i];
+@@ -2050,13 +2050,13 @@ static void gmac_get_ethtool_stats(struct net_device *netdev,
+ 			*p++ = port->rx_csum_stats[i];
+ 		*p++ = port->rx_napi_exits;
+ 
+-	} while (u64_stats_fetch_retry_irq(&port->rx_stats_syncp, start));
++	} while (u64_stats_fetch_retry(&port->rx_stats_syncp, start));
+ 	values = p;
+ 
+ 	/* Racing with TX start_xmit */
+ 	do {
+ 		p = values;
+-		start = u64_stats_fetch_begin_irq(&port->tx_stats_syncp);
++		start = u64_stats_fetch_begin(&port->tx_stats_syncp);
+ 
+ 		for (i = 0; i < TX_MAX_FRAGS; i++) {
+ 			*values++ = port->tx_frag_stats[i];
+@@ -2065,7 +2065,7 @@ static void gmac_get_ethtool_stats(struct net_device *netdev,
+ 		*values++ = port->tx_frags_linearized;
+ 		*values++ = port->tx_hw_csummed;
+ 
+-	} while (u64_stats_fetch_retry_irq(&port->tx_stats_syncp, start));
++	} while (u64_stats_fetch_retry(&port->tx_stats_syncp, start));
+ }
+ 
+ static int gmac_get_ksettings(struct net_device *netdev,
 diff --git a/drivers/net/ethernet/emulex/benet/be_ethtool.c b/drivers/net/ethernet/emulex/benet/be_ethtool.c
 index bd0df189d871..39e7a4a3c15e 100644
 --- a/drivers/net/ethernet/emulex/benet/be_ethtool.c
@@ -1695,6 +1774,126 @@ index 414362febbb9..9350c901aa27 100644
  	}
  
  	/* Skip, if wrapped around or first calculation */
+diff --git a/drivers/net/ethernet/fungible/funeth/funeth_txrx.h b/drivers/net/ethernet/fungible/funeth/funeth_txrx.h
+index 671f51135c26..53b7e95213a8 100644
+--- a/drivers/net/ethernet/fungible/funeth/funeth_txrx.h
++++ b/drivers/net/ethernet/fungible/funeth/funeth_txrx.h
+@@ -206,9 +206,9 @@ struct funeth_rxq {
+ 
+ #define FUN_QSTAT_READ(q, seq, stats_copy) \
+ 	do { \
+-		seq = u64_stats_fetch_begin_irq(&(q)->syncp); \
++		seq = u64_stats_fetch_begin(&(q)->syncp); \
+ 		stats_copy = (q)->stats; \
+-	} while (u64_stats_fetch_retry_irq(&(q)->syncp, (seq)))
++	} while (u64_stats_fetch_retry(&(q)->syncp, (seq)))
+ 
+ #define FUN_INT_NAME_LEN (IFNAMSIZ + 16)
+ 
+diff --git a/drivers/net/ethernet/google/gve/gve_ethtool.c b/drivers/net/ethernet/google/gve/gve_ethtool.c
+index 7b9a2d9d9624..50b384910c83 100644
+--- a/drivers/net/ethernet/google/gve/gve_ethtool.c
++++ b/drivers/net/ethernet/google/gve/gve_ethtool.c
+@@ -177,14 +177,14 @@ gve_get_ethtool_stats(struct net_device *netdev,
+ 				struct gve_rx_ring *rx = &priv->rx[ring];
+ 
+ 				start =
+-				  u64_stats_fetch_begin_irq(&priv->rx[ring].statss);
++				  u64_stats_fetch_begin(&priv->rx[ring].statss);
+ 				tmp_rx_pkts = rx->rpackets;
+ 				tmp_rx_bytes = rx->rbytes;
+ 				tmp_rx_skb_alloc_fail = rx->rx_skb_alloc_fail;
+ 				tmp_rx_buf_alloc_fail = rx->rx_buf_alloc_fail;
+ 				tmp_rx_desc_err_dropped_pkt =
+ 					rx->rx_desc_err_dropped_pkt;
+-			} while (u64_stats_fetch_retry_irq(&priv->rx[ring].statss,
++			} while (u64_stats_fetch_retry(&priv->rx[ring].statss,
+ 						       start));
+ 			rx_pkts += tmp_rx_pkts;
+ 			rx_bytes += tmp_rx_bytes;
+@@ -198,10 +198,10 @@ gve_get_ethtool_stats(struct net_device *netdev,
+ 		if (priv->tx) {
+ 			do {
+ 				start =
+-				  u64_stats_fetch_begin_irq(&priv->tx[ring].statss);
++				  u64_stats_fetch_begin(&priv->tx[ring].statss);
+ 				tmp_tx_pkts = priv->tx[ring].pkt_done;
+ 				tmp_tx_bytes = priv->tx[ring].bytes_done;
+-			} while (u64_stats_fetch_retry_irq(&priv->tx[ring].statss,
++			} while (u64_stats_fetch_retry(&priv->tx[ring].statss,
+ 						       start));
+ 			tx_pkts += tmp_tx_pkts;
+ 			tx_bytes += tmp_tx_bytes;
+@@ -259,13 +259,13 @@ gve_get_ethtool_stats(struct net_device *netdev,
+ 			data[i++] = rx->fill_cnt - rx->cnt;
+ 			do {
+ 				start =
+-				  u64_stats_fetch_begin_irq(&priv->rx[ring].statss);
++				  u64_stats_fetch_begin(&priv->rx[ring].statss);
+ 				tmp_rx_bytes = rx->rbytes;
+ 				tmp_rx_skb_alloc_fail = rx->rx_skb_alloc_fail;
+ 				tmp_rx_buf_alloc_fail = rx->rx_buf_alloc_fail;
+ 				tmp_rx_desc_err_dropped_pkt =
+ 					rx->rx_desc_err_dropped_pkt;
+-			} while (u64_stats_fetch_retry_irq(&priv->rx[ring].statss,
++			} while (u64_stats_fetch_retry(&priv->rx[ring].statss,
+ 						       start));
+ 			data[i++] = tmp_rx_bytes;
+ 			data[i++] = rx->rx_cont_packet_cnt;
+@@ -331,9 +331,9 @@ gve_get_ethtool_stats(struct net_device *netdev,
+ 			}
+ 			do {
+ 				start =
+-				  u64_stats_fetch_begin_irq(&priv->tx[ring].statss);
++				  u64_stats_fetch_begin(&priv->tx[ring].statss);
+ 				tmp_tx_bytes = tx->bytes_done;
+-			} while (u64_stats_fetch_retry_irq(&priv->tx[ring].statss,
++			} while (u64_stats_fetch_retry(&priv->tx[ring].statss,
+ 						       start));
+ 			data[i++] = tmp_tx_bytes;
+ 			data[i++] = tx->wake_queue;
+diff --git a/drivers/net/ethernet/google/gve/gve_main.c b/drivers/net/ethernet/google/gve/gve_main.c
+index 044db3ebb071..6cafee55efc3 100644
+--- a/drivers/net/ethernet/google/gve/gve_main.c
++++ b/drivers/net/ethernet/google/gve/gve_main.c
+@@ -51,10 +51,10 @@ static void gve_get_stats(struct net_device *dev, struct rtnl_link_stats64 *s)
+ 		for (ring = 0; ring < priv->rx_cfg.num_queues; ring++) {
+ 			do {
+ 				start =
+-				  u64_stats_fetch_begin_irq(&priv->rx[ring].statss);
++				  u64_stats_fetch_begin(&priv->rx[ring].statss);
+ 				packets = priv->rx[ring].rpackets;
+ 				bytes = priv->rx[ring].rbytes;
+-			} while (u64_stats_fetch_retry_irq(&priv->rx[ring].statss,
++			} while (u64_stats_fetch_retry(&priv->rx[ring].statss,
+ 						       start));
+ 			s->rx_packets += packets;
+ 			s->rx_bytes += bytes;
+@@ -64,10 +64,10 @@ static void gve_get_stats(struct net_device *dev, struct rtnl_link_stats64 *s)
+ 		for (ring = 0; ring < priv->tx_cfg.num_queues; ring++) {
+ 			do {
+ 				start =
+-				  u64_stats_fetch_begin_irq(&priv->tx[ring].statss);
++				  u64_stats_fetch_begin(&priv->tx[ring].statss);
+ 				packets = priv->tx[ring].pkt_done;
+ 				bytes = priv->tx[ring].bytes_done;
+-			} while (u64_stats_fetch_retry_irq(&priv->tx[ring].statss,
++			} while (u64_stats_fetch_retry(&priv->tx[ring].statss,
+ 						       start));
+ 			s->tx_packets += packets;
+ 			s->tx_bytes += bytes;
+@@ -1274,9 +1274,9 @@ void gve_handle_report_stats(struct gve_priv *priv)
+ 			}
+ 
+ 			do {
+-				start = u64_stats_fetch_begin_irq(&priv->tx[idx].statss);
++				start = u64_stats_fetch_begin(&priv->tx[idx].statss);
+ 				tx_bytes = priv->tx[idx].bytes_done;
+-			} while (u64_stats_fetch_retry_irq(&priv->tx[idx].statss, start));
++			} while (u64_stats_fetch_retry(&priv->tx[idx].statss, start));
+ 			stats[stats_idx++] = (struct stats) {
+ 				.stat_name = cpu_to_be32(TX_WAKE_CNT),
+ 				.value = cpu_to_be64(priv->tx[idx].wake_queue),
 diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
 index 35d70041b9e8..f82e98263307 100644
 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
@@ -1717,6 +1916,48 @@ index 35d70041b9e8..f82e98263307 100644
  }
  
  static void hns3_nic_get_stats64(struct net_device *netdev,
+diff --git a/drivers/net/ethernet/huawei/hinic/hinic_rx.c b/drivers/net/ethernet/huawei/hinic/hinic_rx.c
+index e5828a658caf..a866bea65110 100644
+--- a/drivers/net/ethernet/huawei/hinic/hinic_rx.c
++++ b/drivers/net/ethernet/huawei/hinic/hinic_rx.c
+@@ -74,14 +74,14 @@ void hinic_rxq_get_stats(struct hinic_rxq *rxq, struct hinic_rxq_stats *stats)
+ 	unsigned int start;
+ 
+ 	do {
+-		start = u64_stats_fetch_begin_irq(&rxq_stats->syncp);
++		start = u64_stats_fetch_begin(&rxq_stats->syncp);
+ 		stats->pkts = rxq_stats->pkts;
+ 		stats->bytes = rxq_stats->bytes;
+ 		stats->errors = rxq_stats->csum_errors +
+ 				rxq_stats->other_errors;
+ 		stats->csum_errors = rxq_stats->csum_errors;
+ 		stats->other_errors = rxq_stats->other_errors;
+-	} while (u64_stats_fetch_retry_irq(&rxq_stats->syncp, start));
++	} while (u64_stats_fetch_retry(&rxq_stats->syncp, start));
+ }
+ 
+ /**
+diff --git a/drivers/net/ethernet/huawei/hinic/hinic_tx.c b/drivers/net/ethernet/huawei/hinic/hinic_tx.c
+index 3b6c7b585737..5051cdff2384 100644
+--- a/drivers/net/ethernet/huawei/hinic/hinic_tx.c
++++ b/drivers/net/ethernet/huawei/hinic/hinic_tx.c
+@@ -99,14 +99,14 @@ void hinic_txq_get_stats(struct hinic_txq *txq, struct hinic_txq_stats *stats)
+ 	unsigned int start;
+ 
+ 	do {
+-		start = u64_stats_fetch_begin_irq(&txq_stats->syncp);
++		start = u64_stats_fetch_begin(&txq_stats->syncp);
+ 		stats->pkts    = txq_stats->pkts;
+ 		stats->bytes   = txq_stats->bytes;
+ 		stats->tx_busy = txq_stats->tx_busy;
+ 		stats->tx_wake = txq_stats->tx_wake;
+ 		stats->tx_dropped = txq_stats->tx_dropped;
+ 		stats->big_frags_pkts = txq_stats->big_frags_pkts;
+-	} while (u64_stats_fetch_retry_irq(&txq_stats->syncp, start));
++	} while (u64_stats_fetch_retry(&txq_stats->syncp, start));
+ }
+ 
+ /**
 diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c b/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
 index 2cca9e84e31e..34ab5ff9823b 100644
 --- a/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
@@ -2395,6 +2636,71 @@ index c530db76880f..96d55c91c969 100644
  
  		data[i++] = packets;
  		data[i++] = bytes;
+diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
+index 349a2b1a19a2..cf4d6f1129fa 100644
+--- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
++++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
+@@ -1630,21 +1630,21 @@ static void nfp_net_stat64(struct net_device *netdev,
+ 		unsigned int start;
+ 
+ 		do {
+-			start = u64_stats_fetch_begin_irq(&r_vec->rx_sync);
++			start = u64_stats_fetch_begin(&r_vec->rx_sync);
+ 			data[0] = r_vec->rx_pkts;
+ 			data[1] = r_vec->rx_bytes;
+ 			data[2] = r_vec->rx_drops;
+-		} while (u64_stats_fetch_retry_irq(&r_vec->rx_sync, start));
++		} while (u64_stats_fetch_retry(&r_vec->rx_sync, start));
+ 		stats->rx_packets += data[0];
+ 		stats->rx_bytes += data[1];
+ 		stats->rx_dropped += data[2];
+ 
+ 		do {
+-			start = u64_stats_fetch_begin_irq(&r_vec->tx_sync);
++			start = u64_stats_fetch_begin(&r_vec->tx_sync);
+ 			data[0] = r_vec->tx_pkts;
+ 			data[1] = r_vec->tx_bytes;
+ 			data[2] = r_vec->tx_errors;
+-		} while (u64_stats_fetch_retry_irq(&r_vec->tx_sync, start));
++		} while (u64_stats_fetch_retry(&r_vec->tx_sync, start));
+ 		stats->tx_packets += data[0];
+ 		stats->tx_bytes += data[1];
+ 		stats->tx_errors += data[2];
+diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c b/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c
+index b1b1b648e40c..eeb1455a4e5d 100644
+--- a/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c
++++ b/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c
+@@ -649,7 +649,7 @@ static u64 *nfp_vnic_get_sw_stats(struct net_device *netdev, u64 *data)
+ 		unsigned int start;
+ 
+ 		do {
+-			start = u64_stats_fetch_begin_irq(&nn->r_vecs[i].rx_sync);
++			start = u64_stats_fetch_begin(&nn->r_vecs[i].rx_sync);
+ 			data[0] = nn->r_vecs[i].rx_pkts;
+ 			tmp[0] = nn->r_vecs[i].hw_csum_rx_ok;
+ 			tmp[1] = nn->r_vecs[i].hw_csum_rx_inner_ok;
+@@ -657,10 +657,10 @@ static u64 *nfp_vnic_get_sw_stats(struct net_device *netdev, u64 *data)
+ 			tmp[3] = nn->r_vecs[i].hw_csum_rx_error;
+ 			tmp[4] = nn->r_vecs[i].rx_replace_buf_alloc_fail;
+ 			tmp[5] = nn->r_vecs[i].hw_tls_rx;
+-		} while (u64_stats_fetch_retry_irq(&nn->r_vecs[i].rx_sync, start));
++		} while (u64_stats_fetch_retry(&nn->r_vecs[i].rx_sync, start));
+ 
+ 		do {
+-			start = u64_stats_fetch_begin_irq(&nn->r_vecs[i].tx_sync);
++			start = u64_stats_fetch_begin(&nn->r_vecs[i].tx_sync);
+ 			data[1] = nn->r_vecs[i].tx_pkts;
+ 			data[2] = nn->r_vecs[i].tx_busy;
+ 			tmp[6] = nn->r_vecs[i].hw_csum_tx;
+@@ -670,7 +670,7 @@ static u64 *nfp_vnic_get_sw_stats(struct net_device *netdev, u64 *data)
+ 			tmp[10] = nn->r_vecs[i].hw_tls_tx;
+ 			tmp[11] = nn->r_vecs[i].tls_tx_fallback;
+ 			tmp[12] = nn->r_vecs[i].tls_tx_no_fallback;
+-		} while (u64_stats_fetch_retry_irq(&nn->r_vecs[i].tx_sync, start));
++		} while (u64_stats_fetch_retry(&nn->r_vecs[i].tx_sync, start));
+ 
+ 		data += NN_RVEC_PER_Q_STATS;
+ 
 diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
 index 8b77582bdfa0..a6b6ca1fd55e 100644
 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
@@ -2864,6 +3170,23 @@ index 0b1b6f650104..ff302144029d 100644
  }
  
  static const struct net_device_ops mhi_netdev_ops = {
+diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c
+index 9a1a5b203624..e470e3398abc 100644
+--- a/drivers/net/netdevsim/netdev.c
++++ b/drivers/net/netdevsim/netdev.c
+@@ -67,10 +67,10 @@ nsim_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
+ 	unsigned int start;
+ 
+ 	do {
+-		start = u64_stats_fetch_begin_irq(&ns->syncp);
++		start = u64_stats_fetch_begin(&ns->syncp);
+ 		stats->tx_bytes = ns->tx_bytes;
+ 		stats->tx_packets = ns->tx_packets;
+-	} while (u64_stats_fetch_retry_irq(&ns->syncp, start));
++	} while (u64_stats_fetch_retry(&ns->syncp, start));
+ }
+ 
+ static int
 diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
 index aac133a1e27a..d42bd3970177 100644
 --- a/drivers/net/team/team.c
@@ -4765,7 +5088,7 @@ index 9f392ec76f2b..779e0e96b9cb 100644
  #ifndef CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES
  static inline int arch_within_stack_frames(const void * const stack,
 diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h
-index b18759a673c6..9fcd531f287f 100644
+index 8401dec93c15..ca48590acc3b 100644
 --- a/include/linux/trace_events.h
 +++ b/include/linux/trace_events.h
 @@ -70,6 +70,7 @@ struct trace_entry {
@@ -5061,7 +5384,7 @@ index c2f1fd95a821..260c08efeb48 100644
  	bool
  
 diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
-index a4d40d98428a..b24612d94a12 100644
+index 27760627370d..0b15df183ec1 100644
 --- a/kernel/bpf/syscall.c
 +++ b/kernel/bpf/syscall.c
 @@ -2107,11 +2107,11 @@ static void bpf_prog_get_stats(const struct bpf_prog *prog,
@@ -8859,6 +9182,50 @@ index b7de5e46fdd8..f84da849819c 100644
  
  		counters.packets += packets;
  		counters.bytes += bytes;
+diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
+index 58998d821778..330dab41f2fe 100644
+--- a/net/mac80211/sta_info.c
++++ b/net/mac80211/sta_info.c
+@@ -2316,9 +2316,9 @@ static inline u64 sta_get_tidstats_msdu(struct ieee80211_sta_rx_stats *rxstats,
+ 	u64 value;
+ 
+ 	do {
+-		start = u64_stats_fetch_begin_irq(&rxstats->syncp);
++		start = u64_stats_fetch_begin(&rxstats->syncp);
+ 		value = rxstats->msdu[tid];
+-	} while (u64_stats_fetch_retry_irq(&rxstats->syncp, start));
++	} while (u64_stats_fetch_retry(&rxstats->syncp, start));
+ 
+ 	return value;
+ }
+@@ -2384,9 +2384,9 @@ static inline u64 sta_get_stats_bytes(struct ieee80211_sta_rx_stats *rxstats)
+ 	u64 value;
+ 
+ 	do {
+-		start = u64_stats_fetch_begin_irq(&rxstats->syncp);
++		start = u64_stats_fetch_begin(&rxstats->syncp);
+ 		value = rxstats->bytes;
+-	} while (u64_stats_fetch_retry_irq(&rxstats->syncp, start));
++	} while (u64_stats_fetch_retry(&rxstats->syncp, start));
+ 
+ 	return value;
+ }
+diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c
+index b52afe316dc4..35b5f806fdda 100644
+--- a/net/mpls/af_mpls.c
++++ b/net/mpls/af_mpls.c
+@@ -1079,9 +1079,9 @@ static void mpls_get_stats(struct mpls_dev *mdev,
+ 
+ 		p = per_cpu_ptr(mdev->stats, i);
+ 		do {
+-			start = u64_stats_fetch_begin_irq(&p->syncp);
++			start = u64_stats_fetch_begin(&p->syncp);
+ 			local = p->stats;
+-		} while (u64_stats_fetch_retry_irq(&p->syncp, start));
++		} while (u64_stats_fetch_retry(&p->syncp, start));
+ 
+ 		stats->rx_packets	+= local.rx_packets;
+ 		stats->rx_bytes		+= local.rx_bytes;
 diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c
 index efab2b06d373..5a7349002508 100644
 --- a/net/netfilter/ipvs/ip_vs_ctl.c
@@ -8897,7 +9264,7 @@ index 2ee50e23c9b7..7b0b7020b622 100644
  		total.bytes += bytes;
  	}
 diff --git a/net/openvswitch/datapath.c b/net/openvswitch/datapath.c
-index 7e8a39a35627..40c4218db429 100644
+index 6c9d153afbee..b70a5877a869 100644
 --- a/net/openvswitch/datapath.c
 +++ b/net/openvswitch/datapath.c
 @@ -707,9 +707,9 @@ static void get_dp_stats(const struct datapath *dp, struct ovs_dp_stats *stats,
diff --git a/patches/wireless_regdb/0001-Add-wireless-regdb-regulatory-database-file.patch b/patches/wireless_regdb/0001-Add-wireless-regdb-regulatory-database-file.patch
index adc08070b..5c72e3ea3 100644
--- a/patches/wireless_regdb/0001-Add-wireless-regdb-regulatory-database-file.patch
+++ b/patches/wireless_regdb/0001-Add-wireless-regdb-regulatory-database-file.patch
@@ -1,6 +1,6 @@
-From e20c6560ace05e0420e03438b4faaf577170820a Mon Sep 17 00:00:00 2001
+From 5b625f7cc662f06b123d900ae2353ec29a1025d6 Mon Sep 17 00:00:00 2001
 From: Robert Nelson <robertcnelson@gmail.com>
-Date: Mon, 29 Aug 2022 09:01:46 -0500
+Date: Mon, 12 Sep 2022 10:54:48 -0500
 Subject: [PATCH] Add wireless-regdb regulatory database file
 
 https://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git/commit/?id=9dc9c89375c996c4d1d1a8c0a76f9dd04e244077
diff --git a/patches/wpanusb/0001-merge-wpanusb-https-github.com-statropy-wpanusb.patch b/patches/wpanusb/0001-merge-wpanusb-https-github.com-statropy-wpanusb.patch
index 488346f11..35814718e 100644
--- a/patches/wpanusb/0001-merge-wpanusb-https-github.com-statropy-wpanusb.patch
+++ b/patches/wpanusb/0001-merge-wpanusb-https-github.com-statropy-wpanusb.patch
@@ -1,6 +1,6 @@
-From 9a7ca4a3c3173fb8bf3ecacdc17b21762515758d Mon Sep 17 00:00:00 2001
+From b54e05d522076743b7770812d20c3da3631d40aa Mon Sep 17 00:00:00 2001
 From: Robert Nelson <robertcnelson@gmail.com>
-Date: Mon, 29 Aug 2022 09:00:24 -0500
+Date: Mon, 12 Sep 2022 10:53:58 -0500
 Subject: [PATCH] merge: wpanusb: https://github.com/statropy/wpanusb
 
 https://github.com/statropy/wpanusb/commit/251f0167545bf2dcaa3cad991a59dbf5ab05490a
diff --git a/version.sh b/version.sh
index 50803c97f..e858ca333 100644
--- a/version.sh
+++ b/version.sh
@@ -41,10 +41,10 @@ toolchain="gcc_11_arm"
 
 #Kernel
 KERNEL_REL=6.0
-KERNEL_TAG=${KERNEL_REL}-rc3
-kernel_rt="-rc3-rt5"
+KERNEL_TAG=${KERNEL_REL}-rc5
+kernel_rt="-rc4-rt6"
 #Kernel Build
-BUILD=${build_prefix}2
+BUILD=${build_prefix}2.1
 
 #v6.X-rcX + upto SHA
 #prev_KERNEL_SHA=""
-- 
GitLab