From abd5ee4e5191231e4c3be8f5dfbb07568ecbedd8 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 11 Apr 2025 08:32:24 +0000 Subject: [PATCH] ANDROID: GKI: Update .stg file based on io_ring_ctx internal change In commit 9aeb68337af7 ("io_uring: get rid of remap_pfn_range() for mapping rings/sqes") struct io_ring_ctx had some new fields added to fix some security issues. This is an internal-to-the-io_uring-core structure, but happens to have a pointer to this structure in other structures that we track for ABI compliance. Because this is not an "anonymous" pointer, it breaks the ABI checking. But as this is an internal structure it is safe to change as no external module ever accesses this structure at all. The .stg update is: type 'struct io_ring_ctx' changed byte size changed from 1344 to 1408 member 'unsigned short n_ring_pages' was added member 'unsigned short n_sqe_pages' was added member 'struct page** ring_pages' was added member 'struct page** sqe_pages' was added Change-Id: I8029a8028271d85a19770702c024a4bac0746851 Fixes: 9aeb68337af7 ("io_uring: get rid of remap_pfn_range() for mapping rings/sqes") Signed-off-by: Greg Kroah-Hartman --- android/abi_gki_aarch64.stg | 30 +++++++++++++++++++++- android/abi_gki_aarch64.stg.allowed_breaks | 7 +++++ include/linux/io_uring_types.h | 2 ++ 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/android/abi_gki_aarch64.stg b/android/abi_gki_aarch64.stg index 2a333ca339c1..c9d2d04124b3 100644 --- a/android/abi_gki_aarch64.stg +++ b/android/abi_gki_aarch64.stg @@ -133583,6 +133583,12 @@ member { type_id: 0x6720d32f offset: 128 } +member { + id: 0xffaa3920 + name: "n_ring_pages" + type_id: 0xc93e017b + offset: 10624 +} member { id: 0xeebfc981 name: "n_rules" @@ -133606,6 +133612,12 @@ member { type_id: 0x295c7202 offset: 304 } +member { + id: 0x3543ba34 + name: "n_sqe_pages" + type_id: 0xc93e017b + offset: 10640 +} member { id: 0x998218ab name: "n_ssids" @@ -170562,6 +170574,12 @@ member { name: "ring_mask" type_id: 0xc9082b19 } +member { + id: 0x44db695c + name: "ring_pages" + type_id: 0x0b30ee00 + offset: 10688 +} member { id: 0x44db6fdd name: "ring_pages" @@ -185142,6 +185160,12 @@ member { type_id: 0xb914bfab offset: 64 } +member { + id: 0xce17811e + name: "sqe_pages" + type_id: 0x0b30ee00 + offset: 10752 +} member { id: 0xe005d64f name: "sqo_sq_wait" @@ -241492,7 +241516,7 @@ struct_union { kind: STRUCT name: "io_ring_ctx" definition { - bytesize: 1344 + bytesize: 1408 member_id: 0x2c717118 member_id: 0x246f2632 member_id: 0x7adfc058 @@ -241534,6 +241558,10 @@ struct_union { member_id: 0x31444ba6 member_id: 0x1d068fc6 member_id: 0xd2c00a64 + member_id: 0xffaa3920 + member_id: 0x3543ba34 + member_id: 0x44db695c + member_id: 0xce17811e } } struct_union { diff --git a/android/abi_gki_aarch64.stg.allowed_breaks b/android/abi_gki_aarch64.stg.allowed_breaks index 2079519f0a0f..a19ef71f77ad 100644 --- a/android/abi_gki_aarch64.stg.allowed_breaks +++ b/android/abi_gki_aarch64.stg.allowed_breaks @@ -137,3 +137,10 @@ type 'struct geni_wrapper' changed member 'struct clk_bulk_data clks[2]' was added member 'unsigned int num_clks' was added +type 'struct io_ring_ctx' changed + byte size changed from 1344 to 1408 + member 'unsigned short n_ring_pages' was added + member 'unsigned short n_sqe_pages' was added + member 'struct page** ring_pages' was added + member 'struct page** sqe_pages' was added + diff --git a/include/linux/io_uring_types.h b/include/linux/io_uring_types.h index e39a9c6ec4e7..9f43ef722f3c 100644 --- a/include/linux/io_uring_types.h +++ b/include/linux/io_uring_types.h @@ -361,10 +361,12 @@ struct io_ring_ctx { /* protected by ->completion_lock */ unsigned evfd_last_cq_tail; +#ifndef __GENKSYMS__ unsigned short n_ring_pages; unsigned short n_sqe_pages; struct page **ring_pages; struct page **sqe_pages; +#endif }; enum {