--- /dev/null
+From 15feb56e30efea95992f5c572cee753db205eb7b Mon Sep 17 00:00:00 2001
+From: Jiri Pirko <jiri@nvidia.com>
+Date: Tue, 8 Nov 2022 14:22:07 +0100
+Subject: net: devlink: move netdev notifier block to dest namespace during reload
+
+From: Jiri Pirko <jiri@nvidia.com>
+
+commit 15feb56e30efea95992f5c572cee753db205eb7b upstream.
+
+The notifier block tracking netdev changes in devlink is registered
+during devlink_alloc() per-net, it is then unregistered
+in devlink_free(). When devlink moves from net namespace to another one,
+the notifier block needs to move along.
+
+Fix this by adding forgotten call to move the block.
+
+Reported-by: Ido Schimmel <idosch@idosch.org>
+Fixes: 02a68a47eade ("net: devlink: track netdev with devlink_port assigned")
+Reviewed-by: Ido Schimmel <idosch@nvidia.com>
+Tested-by: Ido Schimmel <idosch@nvidia.com>
+Signed-off-by: Jiri Pirko <jiri@nvidia.com>
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ net/devlink/leftover.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/net/devlink/leftover.c
++++ b/net/devlink/leftover.c
+@@ -4507,8 +4507,11 @@ static int devlink_reload(struct devlink
+ if (err)
+ return err;
+
+- if (dest_net && !net_eq(dest_net, curr_net))
++ if (dest_net && !net_eq(dest_net, curr_net)) {
++ move_netdevice_notifier_net(curr_net, dest_net,
++ &devlink->netdevice_nb);
+ write_pnet(&devlink->_net, dest_net);
++ }
+
+ err = devlink->ops->reload_up(devlink, action, limit, actions_performed, extack);
+ devlink_reload_failed_set(devlink, !!err);
--- /dev/null
+From ae62c49c0ceff20dc7c1fad4a5b8f91d64b4f628 Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Wed, 17 May 2023 22:20:07 +0200
+Subject: serial: 8250: omap: convert to modern PM ops
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+commit ae62c49c0ceff20dc7c1fad4a5b8f91d64b4f628 upstream.
+
+The new uart_write() function is only called from suspend/resume code, causing
+a build warning when those are left out:
+
+drivers/tty/serial/8250/8250_omap.c:169:13: error: 'uart_write' defined but not used [-Werror=unused-function]
+
+Remove the #ifdefs and use the modern pm_ops/pm_sleep_ops and their wrappers
+to let the compiler see where it's used but still drop the dead code.
+
+Fixes: 398cecc24846 ("serial: 8250: omap: Fix imprecise external abort for omap_8250_pm()")
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Reviewed-by: Tony Lindgren <tony@atomide.com>
+Link: https://lore.kernel.org/r/20230517202012.634386-1-arnd@kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/tty/serial/8250/8250_omap.c | 17 +++++------------
+ 1 file changed, 5 insertions(+), 12 deletions(-)
+
+--- a/drivers/tty/serial/8250/8250_omap.c
++++ b/drivers/tty/serial/8250/8250_omap.c
+@@ -1487,7 +1487,6 @@ static int omap8250_remove(struct platfo
+ return 0;
+ }
+
+-#ifdef CONFIG_PM_SLEEP
+ static int omap8250_prepare(struct device *dev)
+ {
+ struct omap8250_priv *priv = dev_get_drvdata(dev);
+@@ -1547,12 +1546,7 @@ static int omap8250_resume(struct device
+
+ return 0;
+ }
+-#else
+-#define omap8250_prepare NULL
+-#define omap8250_complete NULL
+-#endif
+
+-#ifdef CONFIG_PM
+ static int omap8250_lost_context(struct uart_8250_port *up)
+ {
+ u32 val;
+@@ -1664,7 +1658,6 @@ static int omap8250_runtime_resume(struc
+ schedule_work(&priv->qos_work);
+ return 0;
+ }
+-#endif
+
+ #ifdef CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP
+ static int __init omap8250_console_fixup(void)
+@@ -1707,17 +1700,17 @@ console_initcall(omap8250_console_fixup)
+ #endif
+
+ static const struct dev_pm_ops omap8250_dev_pm_ops = {
+- SET_SYSTEM_SLEEP_PM_OPS(omap8250_suspend, omap8250_resume)
+- SET_RUNTIME_PM_OPS(omap8250_runtime_suspend,
++ SYSTEM_SLEEP_PM_OPS(omap8250_suspend, omap8250_resume)
++ RUNTIME_PM_OPS(omap8250_runtime_suspend,
+ omap8250_runtime_resume, NULL)
+- .prepare = omap8250_prepare,
+- .complete = omap8250_complete,
++ .prepare = pm_sleep_ptr(omap8250_prepare),
++ .complete = pm_sleep_ptr(omap8250_complete),
+ };
+
+ static struct platform_driver omap8250_platform_driver = {
+ .driver = {
+ .name = "omap8250",
+- .pm = &omap8250_dev_pm_ops,
++ .pm = pm_ptr(&omap8250_dev_pm_ops),
+ .of_match_table = omap8250_dt_ids,
+ },
+ .probe = omap8250_probe,
--- /dev/null
+From c53aab20762255ee03e65dd66b3cba3887ad39d1 Mon Sep 17 00:00:00 2001
+From: Geert Uytterhoeven <geert@linux-m68k.org>
+Date: Mon, 15 May 2023 08:57:06 +0200
+Subject: serial: 8250: omap: Move uart_write() inside PM section
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Geert Uytterhoeven <geert@linux-m68k.org>
+
+commit c53aab20762255ee03e65dd66b3cba3887ad39d1 upstream.
+
+If CONFIG_PM is not set (e.g. m68k/allmodconfig):
+
+ drivers/tty/serial/8250/8250_omap.c:169:13: error: ‘uart_write’ defined but not used [-Werror=unused-function]
+ 169 | static void uart_write(struct omap8250_priv *priv, u32 reg, u32 val)
+ | ^~~~~~~~~~
+
+Fix tis by moving uart_write() inside the existing section protected
+by #ifdef CONFIG_PM.
+
+Reported-by: noreply@ellerman.id.au
+Link: http://kisskb.ellerman.id.au/kisskb/buildresult/14925095/
+Fixes: 398cecc24846e867 ("serial: 8250: omap: Fix imprecise external abort for omap_8250_pm()")
+Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
+Reviewed-by: Tony Lindgren <tony@atomide.com>
+Link: https://lore.kernel.org/r/20230515065706.1723477-1-geert@linux-m68k.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/tty/serial/8250/8250_omap.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+--- a/drivers/tty/serial/8250/8250_omap.c
++++ b/drivers/tty/serial/8250/8250_omap.c
+@@ -159,11 +159,6 @@ static u32 uart_read(struct omap8250_pri
+ return readl(priv->membase + (reg << OMAP_UART_REGSHIFT));
+ }
+
+-static void uart_write(struct omap8250_priv *priv, u32 reg, u32 val)
+-{
+- writel(val, priv->membase + (reg << OMAP_UART_REGSHIFT));
+-}
+-
+ /*
+ * Called on runtime PM resume path from omap8250_restore_regs(), and
+ * omap8250_set_mctrl().
+@@ -1573,6 +1568,11 @@ static int omap8250_lost_context(struct
+ return 0;
+ }
+
++static void uart_write(struct omap8250_priv *priv, u32 reg, u32 val)
++{
++ writel(val, priv->membase + (reg << OMAP_UART_REGSHIFT));
++}
++
+ /* TODO: in future, this should happen via API in drivers/reset/ */
+ static int omap8250_soft_reset(struct device *dev)
+ {
drm-bridge-ti-sn65dsi86-associate-dsi-device-lifetim.patch
drm-panel-move-aux-b116xw03-out-of-panel-edp-back-to.patch
net-make-sure-we-never-create-ifindex-0.patch
+net-devlink-move-netdev-notifier-block-to-dest-namespace-during-reload.patch
+serial-8250-omap-move-uart_write-inside-pm-section.patch
+serial-8250-omap-convert-to-modern-pm-ops.patch