diff --git a/crypto/api.c b/crypto/api.c
index bfd177a4313a01bc5c2953722be2384c31d468a3..c2c4eb14ef955f0761ea442b399307a44933daa5 100644
--- a/crypto/api.c
+++ b/crypto/api.c
@@ -36,7 +36,8 @@ EXPORT_SYMBOL_GPL(crypto_chain);
 DEFINE_STATIC_KEY_FALSE(__crypto_boot_test_finished);
 #endif
 
-static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg);
+static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg,
+					     u32 type, u32 mask);
 static struct crypto_alg *crypto_alg_lookup(const char *name, u32 type,
 					    u32 mask);
 
@@ -145,7 +146,7 @@ static struct crypto_alg *crypto_larval_add(const char *name, u32 type,
 	if (alg != &larval->alg) {
 		kfree(larval);
 		if (crypto_is_larval(alg))
-			alg = crypto_larval_wait(alg);
+			alg = crypto_larval_wait(alg, type, mask);
 	}
 
 	return alg;
@@ -197,7 +198,8 @@ static void crypto_start_test(struct crypto_larval *larval)
 	crypto_schedule_test(larval);
 }
 
-static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg)
+static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg,
+					     u32 type, u32 mask)
 {
 	struct crypto_larval *larval;
 	long time_left;
@@ -219,12 +221,7 @@ static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg)
 			crypto_larval_kill(larval);
 		alg = ERR_PTR(-ETIMEDOUT);
 	} else if (!alg) {
-		u32 type;
-		u32 mask;
-
 		alg = &larval->alg;
-		type = alg->cra_flags & ~(CRYPTO_ALG_LARVAL | CRYPTO_ALG_DEAD);
-		mask = larval->mask;
 		alg = crypto_alg_lookup(alg->cra_name, type, mask) ?:
 		      ERR_PTR(-EAGAIN);
 	} else if (IS_ERR(alg))
@@ -304,7 +301,7 @@ static struct crypto_alg *crypto_larval_lookup(const char *name, u32 type,
 	}
 
 	if (!IS_ERR_OR_NULL(alg) && crypto_is_larval(alg))
-		alg = crypto_larval_wait(alg);
+		alg = crypto_larval_wait(alg, type, mask);
 	else if (alg)
 		;
 	else if (!(mask & CRYPTO_ALG_TESTED))
@@ -352,7 +349,7 @@ struct crypto_alg *crypto_alg_mod_lookup(const char *name, u32 type, u32 mask)
 	ok = crypto_probing_notify(CRYPTO_MSG_ALG_REQUEST, larval);
 
 	if (ok == NOTIFY_STOP)
-		alg = crypto_larval_wait(larval);
+		alg = crypto_larval_wait(larval, type, mask);
 	else {
 		crypto_mod_put(larval);
 		alg = ERR_PTR(-ENOENT);
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-tegra.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-tegra.c
index 6fdd94c8919ec2697a81c6121c72bfe419fefabd..2996bcdea9a28e63bde7dd72abf83ac405cc8e30 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-tegra.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-tegra.c
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: GPL-2.0-only
+#include <linux/iommu.h>
 #include <linux/platform_device.h>
 #include <linux/of.h>
 #include <linux/module.h>
@@ -19,6 +20,8 @@ struct tegra_mgbe {
 	struct reset_control *rst_mac;
 	struct reset_control *rst_pcs;
 
+	u32 iommu_sid;
+
 	void __iomem *hv;
 	void __iomem *regs;
 	void __iomem *xpcs;
@@ -50,7 +53,6 @@ struct tegra_mgbe {
 #define MGBE_WRAP_COMMON_INTR_ENABLE	0x8704
 #define MAC_SBD_INTR			BIT(2)
 #define MGBE_WRAP_AXI_ASID0_CTRL	0x8400
-#define MGBE_SID			0x6
 
 static int __maybe_unused tegra_mgbe_suspend(struct device *dev)
 {
@@ -84,7 +86,7 @@ static int __maybe_unused tegra_mgbe_resume(struct device *dev)
 	writel(MAC_SBD_INTR, mgbe->regs + MGBE_WRAP_COMMON_INTR_ENABLE);
 
 	/* Program SID */
-	writel(MGBE_SID, mgbe->hv + MGBE_WRAP_AXI_ASID0_CTRL);
+	writel(mgbe->iommu_sid, mgbe->hv + MGBE_WRAP_AXI_ASID0_CTRL);
 
 	value = readl(mgbe->xpcs + XPCS_WRAP_UPHY_STATUS);
 	if ((value & XPCS_WRAP_UPHY_STATUS_TX_P_UP) == 0) {
@@ -241,6 +243,12 @@ static int tegra_mgbe_probe(struct platform_device *pdev)
 	if (IS_ERR(mgbe->xpcs))
 		return PTR_ERR(mgbe->xpcs);
 
+	/* get controller's stream id from iommu property in device tree */
+	if (!tegra_dev_iommu_get_stream_id(mgbe->dev, &mgbe->iommu_sid)) {
+		dev_err(mgbe->dev, "failed to get iommu stream id\n");
+		return -EINVAL;
+	}
+
 	res.addr = mgbe->regs;
 	res.irq = irq;
 
@@ -346,7 +354,7 @@ static int tegra_mgbe_probe(struct platform_device *pdev)
 	writel(MAC_SBD_INTR, mgbe->regs + MGBE_WRAP_COMMON_INTR_ENABLE);
 
 	/* Program SID */
-	writel(MGBE_SID, mgbe->hv + MGBE_WRAP_AXI_ASID0_CTRL);
+	writel(mgbe->iommu_sid, mgbe->hv + MGBE_WRAP_AXI_ASID0_CTRL);
 
 	plat->flags |= STMMAC_FLAG_SERDES_UP_AFTER_PHY_LINKUP;
 
diff --git a/include/linux/bpf.h b/include/linux/bpf.h
index bdadb0bb6cecd18c047b6548ae03134d43d4894a..80175c7a21c272364dbe1d4f105e87e8a10b9eb2 100644
--- a/include/linux/bpf.h
+++ b/include/linux/bpf.h
@@ -276,7 +276,7 @@ struct bpf_map {
 	u32 btf_vmlinux_value_type_id;
 	struct btf *btf;
 #ifdef CONFIG_MEMCG
-	struct obj_cgroup *objcg;
+	RH_KABI_EXCLUDE(struct obj_cgroup *objcg)
 #endif
 	char name[BPF_OBJ_NAME_LEN];
 	struct mutex freeze_mutex;
diff --git a/include/linux/bpf_mem_alloc.h b/include/linux/bpf_mem_alloc.h
index e45162ef59bb1a6d65489a26ce6f0b2d5cfb0bef..94190a41640e5651f4d22e41ca271979f25b9a21 100644
--- a/include/linux/bpf_mem_alloc.h
+++ b/include/linux/bpf_mem_alloc.h
@@ -11,7 +11,7 @@ struct bpf_mem_caches;
 struct bpf_mem_alloc {
 	struct bpf_mem_caches __percpu *caches;
 	struct bpf_mem_cache __percpu *cache;
-	struct obj_cgroup *objcg;
+	RH_KABI_EXCLUDE(struct obj_cgroup *objcg)
 	bool percpu;
 	struct work_struct work;
 };
diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h
index 3ecf7768e577940f9ea79393c38bc2550ce7ddb8..cdab5f6e6da52a81e15d0a2d0bee2126bb73bbc8 100644
--- a/include/linux/fsnotify_backend.h
+++ b/include/linux/fsnotify_backend.h
@@ -232,7 +232,7 @@ struct fsnotify_group {
 						 * notification list is too
 						 * full */
 
-	struct mem_cgroup *memcg;	/* memcg to charge allocations */
+	RH_KABI_EXCLUDE(struct mem_cgroup *memcg) /* memcg to charge allocations */
 
 	/* groups can define private fields here or use the void *private */
 	union {
diff --git a/include/linux/mempolicy.h b/include/linux/mempolicy.h
index 1add16f216124d8e15cc55a8d009487bc0804017..f29f1d4d1d7c7554ea1848042b39a192584c1c05 100644
--- a/include/linux/mempolicy.h
+++ b/include/linux/mempolicy.h
@@ -54,6 +54,8 @@ struct mempolicy {
 		nodemask_t cpuset_mems_allowed;	/* relative to these nodes */
 		nodemask_t user_nodemask;	/* nodemask passed by user */
 	} w;
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
 };
 
 /*
diff --git a/include/linux/mempool.h b/include/linux/mempool.h
index 7b151441341b4c2895ebb5005787f3b4e010f53c..a9a8accd3e38ee29ec13a99e7bb39c236dc556c2 100644
--- a/include/linux/mempool.h
+++ b/include/linux/mempool.h
@@ -25,6 +25,9 @@ typedef struct mempool_s {
 	mempool_alloc_t *alloc;
 	mempool_free_t *free;
 	wait_queue_head_t wait;
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
+	RH_KABI_RESERVE(3)
 } mempool_t;
 
 static inline bool mempool_initialized(mempool_t *pool)
diff --git a/include/linux/memremap.h b/include/linux/memremap.h
index 3f7143ade32c049d55f9f2025cdfb712dda9b613..3c2b05d5a2381d76f95adbec60f65f875461b261 100644
--- a/include/linux/memremap.h
+++ b/include/linux/memremap.h
@@ -26,6 +26,7 @@ struct vmem_altmap {
 	unsigned long align;
 	unsigned long alloc;
 	bool inaccessible;
+	RH_KABI_RESERVE(1)
 };
 
 /*
diff --git a/include/linux/mm.h b/include/linux/mm.h
index b9ff24a4e7dfe122dc37a75a0bf9fe2a0b36bdb6..0d9f101c4b41986a69a181e2f5330ab9a0e62e92 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -588,6 +588,9 @@ struct vm_fault {
 					 * page table to avoid allocation from
 					 * atomic context.
 					 */
+
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
 };
 
 /*
@@ -2413,6 +2416,7 @@ struct follow_pfnmap_args {
 	pgprot_t pgprot;
 	bool writable;
 	bool special;
+	RH_KABI_RESERVE(1)
 };
 int follow_pfnmap_start(struct follow_pfnmap_args *args);
 void follow_pfnmap_end(struct follow_pfnmap_args *args);
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index 6e3bdf8e38bcaee66a71f5566ac7debb94c0ee78..2979cdc32a3c9530d3ba8dd0508cb804a0342b7f 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -555,6 +555,7 @@ struct page_frag_cache {
 	 */
 	unsigned int		pagecnt_bias;
 	bool pfmemalloc;
+	RH_KABI_RESERVE(1)
 };
 
 typedef unsigned long vm_flags_t;
@@ -1026,12 +1027,15 @@ struct mm_struct {
 			unsigned long bitmap;
 #ifdef CONFIG_MEMCG
 			/* points to the memcg of "owner" above */
-			struct mem_cgroup *memcg;
+			RH_KABI_EXCLUDE(struct mem_cgroup *memcg)
 #endif
 		} lru_gen;
 #endif /* CONFIG_LRU_GEN_WALKS_MMU */
 	} __randomize_layout;
-
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
+	RH_KABI_RESERVE(3)
+	RH_KABI_RESERVE(4)
 	/*
 	 * The mm_cpumask needs to be at the end of mm_struct, because it
 	 * is dynamically sized based on nr_cpu_ids.
diff --git a/include/linux/mm_types_task.h b/include/linux/mm_types_task.h
index bff5706b76e14f71d238ebacbe8f49e36c1bd272..6cd74d02a0a2692d718915d67336fc1725f137fa 100644
--- a/include/linux/mm_types_task.h
+++ b/include/linux/mm_types_task.h
@@ -9,7 +9,7 @@
  */
 
 #include <linux/types.h>
-
+#include <linux/rh_kabi.h>
 #include <asm/page.h>
 
 #ifdef CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
@@ -65,6 +65,9 @@ struct tlbflush_unmap_batch {
 	 */
 	bool writable;
 #endif
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
+	RH_KABI_RESERVE(3)
 };
 
 #endif /* _LINUX_MM_TYPES_TASK_H */
diff --git a/include/linux/mmu_notifier.h b/include/linux/mmu_notifier.h
index d39ebb10caeb68453af7595a741bd5fe2c390b40..b15d35f072f702d15df8ea76f23003982acf4435 100644
--- a/include/linux/mmu_notifier.h
+++ b/include/linux/mmu_notifier.h
@@ -231,6 +231,7 @@ struct mmu_notifier {
 	struct mm_struct *mm;
 	struct rcu_head rcu;
 	unsigned int users;
+	RH_KABI_RESERVE(1)
 };
 
 /**
@@ -243,6 +244,9 @@ struct mmu_interval_notifier_ops {
 	bool (*invalidate)(struct mmu_interval_notifier *interval_sub,
 			   const struct mmu_notifier_range *range,
 			   unsigned long cur_seq);
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
+	RH_KABI_RESERVE(3)
 };
 
 struct mmu_interval_notifier {
@@ -251,6 +255,7 @@ struct mmu_interval_notifier {
 	struct mm_struct *mm;
 	struct hlist_node deferred_item;
 	unsigned long invalidate_seq;
+	RH_KABI_RESERVE(1)
 };
 
 #ifdef CONFIG_MMU_NOTIFIER
@@ -266,6 +271,9 @@ struct mmu_notifier_range {
 	unsigned flags;
 	enum mmu_notifier_event event;
 	void *owner;
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
+	RH_KABI_RESERVE(3)
 };
 
 static inline int mm_has_notifiers(struct mm_struct *mm)
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 80bc5640bb60d225221a5ea5f866acfe54adc67f..ffbe13f6f285e974b3106aa8d880184422fae22c 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -117,6 +117,9 @@ extern int page_group_by_mobility_disabled;
 struct free_area {
 	struct list_head	free_list[MIGRATE_TYPES];
 	unsigned long		nr_free;
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
+	RH_KABI_RESERVE(3)
 };
 
 struct pglist_data;
@@ -478,6 +481,10 @@ struct lru_gen_mm_state {
 	unsigned long *filters[NR_BLOOM_FILTERS];
 	/* the mm stats for debugging */
 	unsigned long stats[NR_HIST_GENS][NR_MM_STATS];
+
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
+	RH_KABI_RESERVE(3)
 };
 
 struct lru_gen_mm_walk {
@@ -495,6 +502,9 @@ struct lru_gen_mm_walk {
 	int batched;
 	bool can_swap;
 	bool force_scan;
+
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
 };
 
 /*
@@ -551,6 +561,10 @@ struct lru_gen_memcg {
 	struct hlist_nulls_head	fifo[MEMCG_NR_GENS][MEMCG_NR_BINS];
 	/* protects the above */
 	spinlock_t lock;
+
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
+	RH_KABI_RESERVE(3)
 };
 
 void lru_gen_init_pgdat(struct pglist_data *pgdat);
@@ -634,6 +648,11 @@ struct lruvec {
 	struct pglist_data *pgdat;
 #endif
 	struct zswap_lruvec_state zswap_lruvec_state;
+
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
+	RH_KABI_RESERVE(3)
+	RH_KABI_RESERVE(4)
 };
 
 /* Isolate for asynchronous migration */
@@ -696,6 +715,10 @@ struct per_cpu_pages {
 
 	/* Lists of pages, one per migrate type stored on the pcp-lists */
 	struct list_head lists[NR_PCP_LISTS];
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
+	RH_KABI_RESERVE(3)
+	RH_KABI_RESERVE(4)
 } ____cacheline_aligned_in_smp;
 
 struct per_cpu_zonestat {
@@ -716,6 +739,8 @@ struct per_cpu_zonestat {
 struct per_cpu_nodestat {
 	s8 stat_threshold;
 	s8 vm_node_stat_diff[NR_VM_NODE_STAT_ITEMS];
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
 };
 
 #endif /* !__GENERATING_BOUNDS.H */
@@ -990,6 +1015,11 @@ struct zone {
 	/* Zone statistics */
 	atomic_long_t		vm_stat[NR_VM_ZONE_STAT_ITEMS];
 	atomic_long_t		vm_numa_event[NR_VM_NUMA_EVENT_ITEMS];
+
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
+	RH_KABI_RESERVE(3)
+	RH_KABI_RESERVE(4)
 } ____cacheline_internodealigned_in_smp;
 
 enum pgdat_flags {
@@ -1245,6 +1275,9 @@ struct zoneref {
  */
 struct zonelist {
 	struct zoneref _zonerefs[MAX_ZONES_PER_ZONELIST + 1];
+
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
 };
 
 /*
@@ -1259,6 +1292,8 @@ struct deferred_split {
 	spinlock_t split_queue_lock;
 	struct list_head split_queue;
 	unsigned long split_queue_len;
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
 };
 #endif
 
@@ -1284,6 +1319,9 @@ struct memory_failure_stats {
 	unsigned long failed;
 	unsigned long delayed;
 	unsigned long recovered;
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
+	RH_KABI_RESERVE(3)
 };
 #endif
 
@@ -1435,6 +1473,10 @@ typedef struct pglist_data {
 #ifdef CONFIG_MEMORY_FAILURE
 	struct memory_failure_stats mf_stats;
 #endif
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
+	RH_KABI_RESERVE(3)
+	RH_KABI_RESERVE(4)
 } pg_data_t;
 
 #define node_present_pages(nid)	(NODE_DATA(nid)->node_present_pages)
diff --git a/include/linux/netfilter/nf_conntrack_common.h b/include/linux/netfilter/nf_conntrack_common.h
index 2770db2fa080d2925d1e17b1915b4242ce93f7a2..5174142d95c9bf3d81e01e3b0d06de767be37c07 100644
--- a/include/linux/netfilter/nf_conntrack_common.h
+++ b/include/linux/netfilter/nf_conntrack_common.h
@@ -3,6 +3,7 @@
 #define _NF_CONNTRACK_COMMON_H
 
 #include <linux/refcount.h>
+#include <linux/rh_kabi.h>
 #include <uapi/linux/netfilter/nf_conntrack_common.h>
 
 struct ip_conntrack_stat {
@@ -19,6 +20,7 @@ struct ip_conntrack_stat {
 	unsigned int expect_delete;
 	unsigned int search_restart;
 	unsigned int chaintoolong;
+	RH_KABI_RESERVE(1);
 };
 
 #define NFCT_INFOMASK	7UL
diff --git a/include/linux/node.h b/include/linux/node.h
index 9a881c2208b3bdaa44b6afb9c23450261b3e622b..0fb0e1d0c772f05a1b14d5d334696e187737f2a9 100644
--- a/include/linux/node.h
+++ b/include/linux/node.h
@@ -31,6 +31,8 @@ struct access_coordinate {
 	unsigned int write_bandwidth;
 	unsigned int read_latency;
 	unsigned int write_latency;
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
 };
 
 /*
diff --git a/include/linux/ns_common.h b/include/linux/ns_common.h
index 7d22ea50b09841ed2f764273564e53588e9b7a4e..b311a6cb9062989f2a1cabeb0aa1a7889e944f5d 100644
--- a/include/linux/ns_common.h
+++ b/include/linux/ns_common.h
@@ -3,6 +3,7 @@
 #define _LINUX_NS_COMMON_H
 
 #include <linux/refcount.h>
+#include <linux/rh_kabi.h>
 
 struct proc_ns_operations;
 
@@ -11,6 +12,7 @@ struct ns_common {
 	const struct proc_ns_operations *ops;
 	unsigned int inum;
 	refcount_t count;
+	RH_KABI_RESERVE(1)
 };
 
 #endif
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
index 68a5f1ff3301c6cfba823cab8a418d9ca6f25893..482280c720854601df6f6fcd4cbc756b7de0ac97 100644
--- a/include/linux/pagemap.h
+++ b/include/linux/pagemap.h
@@ -1073,6 +1073,7 @@ struct wait_page_queue {
 	struct folio *folio;
 	int bit_nr;
 	wait_queue_entry_t wait;
+	RH_KABI_RESERVE(1)
 };
 
 static inline bool wake_page_match(struct wait_page_queue *wait_page,
@@ -1352,6 +1353,7 @@ struct readahead_control {
 	unsigned int _batch_count;
 	bool _workingset;
 	unsigned long _pflags;
+	RH_KABI_RESERVE(1)
 };
 
 #define DEFINE_READAHEAD(ractl, f, r, m, i)				\
diff --git a/include/linux/pagevec.h b/include/linux/pagevec.h
index 5d3a0cccc6bf8dbe0a1fcd294cf3f39d9955259c..dd1975c5952e97951e628853c52116b24b76e9ce 100644
--- a/include/linux/pagevec.h
+++ b/include/linux/pagevec.h
@@ -10,6 +10,7 @@
 #define _LINUX_PAGEVEC_H
 
 #include <linux/types.h>
+#include <linux/rh_kabi.h>
 
 /* 31 pointers + header align the folio_batch structure to a power of two */
 #define PAGEVEC_SIZE	31
@@ -29,6 +30,8 @@ struct folio_batch {
 	unsigned char nr;
 	unsigned char i;
 	bool percpu_pvec_drained;
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
 	struct folio *folios[PAGEVEC_SIZE];
 };
 
diff --git a/include/linux/rmap.h b/include/linux/rmap.h
index d5e93e44322e50c45ff6896ae34b32c8328e9502..b5c0ea45b371accf045205f89928df2451651c46 100644
--- a/include/linux/rmap.h
+++ b/include/linux/rmap.h
@@ -64,6 +64,10 @@ struct anon_vma {
 
 	/* Interval tree of private "related" vmas */
 	struct rb_root_cached rb_root;
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
+	RH_KABI_RESERVE(3)
+	RH_KABI_RESERVE(4)
 };
 
 /*
diff --git a/include/linux/sched.h b/include/linux/sched.h
index ad20a656e741eb9ba702b5b0234176570ab7fabf..c36122872426dd4b1e2ad597ef3ebda2bc635931 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -14,6 +14,7 @@
 #include <linux/thread_info.h>
 #include <linux/preempt.h>
 #include <linux/cpumask_types.h>
+#include <linux/rh_kabi.h>
 
 #include <linux/cache.h>
 #include <linux/irqflags_types.h>
@@ -1250,7 +1251,7 @@ struct task_struct {
 	struct io_context		*io_context;
 
 #ifdef CONFIG_COMPACTION
-	struct capture_control		*capture_control;
+	RH_KABI_EXCLUDE(struct capture_control *capture_control)
 #endif
 	/* Ptrace state: */
 	unsigned long			ptrace_message;
@@ -1490,7 +1491,7 @@ struct task_struct {
 #endif
 
 #ifdef CONFIG_MEMCG_V1
-	struct mem_cgroup		*memcg_in_oom;
+	RH_KABI_EXCLUDE(struct mem_cgroup *memcg_in_oom)
 #endif
 
 #ifdef CONFIG_MEMCG
@@ -1498,10 +1499,10 @@ struct task_struct {
 	unsigned int			memcg_nr_pages_over_high;
 
 	/* Used by memcontrol for targeted memcg charge: */
-	struct mem_cgroup		*active_memcg;
+	RH_KABI_EXCLUDE(struct mem_cgroup *active_memcg)
 
 	/* Cache for current->cgroups->memcg->objcg lookups: */
-	struct obj_cgroup		*objcg;
+	RH_KABI_EXCLUDE(struct obj_cgroup *objcg)
 #endif
 
 #ifdef CONFIG_BLK_CGROUP
diff --git a/include/linux/shrinker.h b/include/linux/shrinker.h
index 1a00be90d93a9fa0f6234dd4854b59027d1e0ffe..0b96b84ae42d1c481b5d8a043977442c0f46d108 100644
--- a/include/linux/shrinker.h
+++ b/include/linux/shrinker.h
@@ -6,6 +6,7 @@
 #include <linux/types.h>
 #include <linux/refcount.h>
 #include <linux/completion.h>
+#include <linux/rh_kabi.h>
 
 #define SHRINKER_UNIT_BITS	BITS_PER_LONG
 
@@ -52,7 +53,11 @@ struct shrink_control {
 	unsigned long nr_scanned;
 
 	/* current memcg being shrunk (for memcg aware shrinkers) */
-	struct mem_cgroup *memcg;
+	RH_KABI_EXCLUDE(struct mem_cgroup *memcg)
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
+	RH_KABI_RESERVE(3)
+	RH_KABI_RESERVE(4)
 };
 
 #define SHRINK_STOP (~0UL)
@@ -115,6 +120,11 @@ struct shrinker {
 #endif
 	/* objs pending delete, per node */
 	atomic_long_t *nr_deferred;
+
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
+	RH_KABI_RESERVE(3)
+	RH_KABI_RESERVE(4)
 };
 #define DEFAULT_SEEKS 2 /* A good number if you don't know better. */
 
diff --git a/include/linux/slab.h b/include/linux/slab.h
index b35e2db7eb0ecc4933126f56b2c3dbf369cbb44b..aca61252e6c7d90364ff0a92759519b5ef64cd51 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -309,6 +309,8 @@ struct kmem_cache_args {
 	 * %NULL means no constructor.
 	 */
 	void (*ctor)(void *);
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
 };
 
 struct kmem_cache *__kmem_cache_create_args(const char *name,
diff --git a/include/linux/swap.h b/include/linux/swap.h
index f3e0ac20c2e8c91f75d1afd62d736cce113e5fad..323b3d98ea7ad594eb5f08dea9f30004848e8957 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -256,6 +256,8 @@ struct swap_cluster_info {
 	u8 flags;
 	u8 order;
 	struct list_head list;
+	
+	RH_KABI_RESERVE(1)
 };
 #define CLUSTER_FLAG_FREE 1 /* This cluster is free */
 #define CLUSTER_FLAG_NONFULL 2 /* This cluster is on nonfull list */
@@ -283,6 +285,9 @@ struct swap_cluster_info {
  */
 struct percpu_cluster {
 	unsigned int next[SWAP_NR_ORDERS]; /* Likely next allocation offset */
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
+	RH_KABI_RESERVE(3)
 };
 
 /*
diff --git a/include/net/sock.h b/include/net/sock.h
index f29c14448938753799953be3b6231d2cc3d6ab02..eb5af43e0cd18ac57817aa224873009757d1d8eb 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -434,7 +434,7 @@ struct sock {
 	__cacheline_group_begin(sock_read_rxtx);
 	int			sk_err;
 	struct socket		*sk_socket;
-	struct mem_cgroup	*sk_memcg;
+	RH_KABI_EXCLUDE(struct mem_cgroup *sk_memcg)
 #ifdef CONFIG_XFRM
 	struct xfrm_policy __rcu *sk_policy[2];
 #endif
diff --git a/mm/slab.h b/mm/slab.h
index 92ca5ff2037534bd7cdfbfb765baec032e29ed4e..b0f0c9f2b34ab75f0d6c65f179c26c7df2f1a781 100644
--- a/mm/slab.h
+++ b/mm/slab.h
@@ -310,7 +310,12 @@ struct kmem_cache {
 	unsigned int useroffset;	/* Usercopy region offset */
 	unsigned int usersize;		/* Usercopy region size */
 #endif
-
+	RH_KABI_RESERVE(1)
+	RH_KABI_RESERVE(2)
+	RH_KABI_RESERVE(3)
+	RH_KABI_RESERVE(4)
+	RH_KABI_RESERVE(5)
+	RH_KABI_RESERVE(6)
 	struct kmem_cache_node *node[MAX_NUMNODES];
 };
 
diff --git a/redhat/kernel.changelog-10.0 b/redhat/kernel.changelog-10.0
index 7f0fd5e36e2de5745b574893d0c118ac8e295192..94e07002039b1bb281d109236600e8c118682025 100644
--- a/redhat/kernel.changelog-10.0
+++ b/redhat/kernel.changelog-10.0
@@ -1,3 +1,46 @@
+* Tue Mar 25 2025 Jan Stancek <jstancek@redhat.com> [6.12.0-55.9.1.el10_0]
+- af_packet: fix vlan_get_protocol_dgram() vs MSG_PEEK (Davide Caratti) [RHEL-80306] {CVE-2024-57901}
+- redhat: kabi: update stablelist checksums (Čestmír Kalina) [RHEL-80552]
+- shrinker: include rh_kabi.h (Čestmír Kalina) [RHEL-80552]
+- redhat: pad the folio_batch struct (Nico Pache) [RHEL-80552]
+- redhat: pad the lruvec structure for the kabi (Nico Pache) [RHEL-80552]
+- redhat: pad the zone structures for kabi (Nico Pache) [RHEL-80552]
+- redhat: pad the wait_page_queue for the kabi (Nico Pache) [RHEL-80552]
+- redhat: pad the lru_gen functions for kabi (Nico Pache) [RHEL-80552]
+- redhat: pad the vmem_altmap struct for the kabi (Nico Pache) [RHEL-80552]
+- redhat: pad the vm_fault structure (Nico Pache) [RHEL-80552]
+- redhat: pad the tlbflush_unmap_batch struct for the KABI (Nico Pache) [RHEL-80552]
+- redhat: pad the swap_cluster_info structure for KABI (Nico Pache) [RHEL-80552]
+- redhat: pad the shrinker struct for KABI (Nico Pache) [RHEL-80552]
+- redhat: pad the shrink_control structure for kabi (Nico Pache) [RHEL-80552]
+- redhat: pad the readahead_control structure for kabi (Nico Pache) [RHEL-80552]
+- redhat: pad the pglist_data structure for kabi (Nico Pache) [RHEL-80552]
+- redhat: pad the percpu structures (Nico Pache) [RHEL-80552]
+- redhat: pad the page_frag_cache for the kabi (Nico Pache) [RHEL-80552]
+- redhat: pad the ns_common structure for kabi (Nico Pache) [RHEL-80552]
+- redhat: pad mmu_notifier functions for kabi (Nico Pache) [RHEL-80552]
+- redhat: pad the mm_struct for kabi (Nico Pache) [RHEL-80552]
+- redhat: pad mempool_s structure for kabi (Nico Pache) [RHEL-80552]
+- redhat: pad mempolicy struct for kabi (Nico Pache) [RHEL-80552]
+- redhat: pad the memory_failure_stats for kabi (Nico Pache) [RHEL-80552]
+- redhat: pad the kmem_cache_args struct (Nico Pache) [RHEL-80552]
+- redhat: pad the kmem_cache structure (Nico Pache) [RHEL-80552]
+- redhat: pad ip_conntrack_stat for kabi (Nico Pache) [RHEL-80552]
+- redhat: pad the free_area struct (Nico Pache) [RHEL-80552]
+- redhat: pad follow_pfnmap_args for kabi (Nico Pache) [RHEL-80552]
+- redhat: pad anon_vma for kabi (Nico Pache) [RHEL-80552]
+- redhat: pad access_coordinate for kabi (Nico Pache) [RHEL-80552]
+- redhat: pad the deferred_split queue for the kabi checker (Nico Pache) [RHEL-80552]
+- redhat: hide capture_control from kabi checker (Nico Pache) [RHEL-80552]
+- mm/memcg: Exclude mem_cgroup/obj_cgroup pointer from kABI signature computation (Waiman Long) [RHEL-80552]
+- net: stmmac: dwmac-tegra: Read iommu stream id from device tree (Izabela Bakollari) [RHEL-75653] {CVE-2025-21663}
+- Revert "smb: client: fix chmod(2) regression with ATTR_READONLY" (Jan Stancek)
+Resolves: RHEL-75653, RHEL-80306, RHEL-80552
+
+* Thu Mar 20 2025 Jan Stancek <jstancek@redhat.com> [6.12.0-55.8.1.el10_0]
+- crypto: api - Fix larval relookup type and mask (Herbert Xu) [RHEL-78993]
+Resolves: RHEL-78993
+
 * Mon Mar 17 2025 Jan Stancek <jstancek@redhat.com> [6.12.0-55.7.1.el10_0]
 - Enable Intel VPU driver for RHEL (Fabien Dupont) [RHEL-38582]
 - arm64: cacheinfo: Avoid out-of-bounds write to cacheinfo array (Radu Rendec) [RHEL-80226]