From nobody Thu Apr 2 18:53:27 2026 Received: from mail-ej1-f74.google.com (mail-ej1-f74.google.com [209.85.218.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A524239F182 for ; Thu, 26 Mar 2026 21:21:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774560097; cv=none; b=peSji95UyiF28hqXU1UZKQCIb5gpeaM6cGtA2Y+cvzdobel66W5EKudx/LKdMwRsX8qKXgx0GmsJnVpvv5EJNisddRXGyjoSm6nV7MaUGuyYIGFRCwbB2ptAEVVQZoCRdnRLhY9t0QDT4tb7joCPD9E0bsURr4O6zHZzli9Umzo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774560097; c=relaxed/simple; bh=yxWFKfFkKHmuOpsxGuTO4vPY99a8JR43U1hClfLdqBk=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=frb25ManR+Pih0QkRtMTvYzxE0jfxzpfpM1Y4Xgc3A0oZnbrsZpyXn/53i5rfAC2mFjQLd2De6sG4SUxZdrCIoHWP54it06HjODEYewRkasnyo7ue2fuCYWtptU3C1QUrLgMScbD2Guup2OEaV9Oh31NmFHF3YlSZgJbmgyFin4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--sidnayyar.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=AZgEaMAL; arc=none smtp.client-ip=209.85.218.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--sidnayyar.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="AZgEaMAL" Received: by mail-ej1-f74.google.com with SMTP id a640c23a62f3a-b934e96af9dso232803066b.3 for ; Thu, 26 Mar 2026 14:21:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1774560094; x=1775164894; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=KWI54gUN+/1z0II7jAJ2ytcdqsD5FtTzHZqzZAkbnP4=; b=AZgEaMALaVhgtjYEYzEr4p+GPO+hdQGklRorUAej8OyW1QByEiuxNiIzQjNmSBSCH5 KBNvcJS86tX0zAKxocwgyzZ9H7I/cTgrmgS5QiLLCooq9H+N4pgURNw88nWozqIBbCAH VKsaSBESVQeJ+MegD8aJbnFrAxYGwRriCohKUEX4WxgtnF05p3rN968wYD51AzeyqFCQ d7/IcFyQYYlnHDpl0F5jnVWhmoFy21kJpw8YUGxJUXS4J770beaB+iZXNlHL1PKc+oaf az1la2pLdGkjEatIoXHOfcVnmEAzyiMJEfI2UvYACTVQGQtD5TGWvIcADsugE56Ul3E1 Q3Pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774560094; x=1775164894; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=KWI54gUN+/1z0II7jAJ2ytcdqsD5FtTzHZqzZAkbnP4=; b=KtMfh2yya1kVujhXew7vPY9Absm/j9kVSwIb8VZfOgi2TnczcQa45bXP0Tcu8zYpDV s1gy8jtxX6Btoswj0JEX7rsPUKSvjVRq9X5TAaOqEyLDRhzVc4JeBOg7ttuV8Y/wrozE dttT3VBsqP/UOpTH+TXqnxnDlg/6XCbe5rz0CITYF4VGhY7HAfaaY4KsIIu8n0Jz9BrS Mvi36jHB5bQ5xubUmm30eKLMzXzRXYGXi+FWXm3U0v0eUtN9kSqBSDsNntE8ckIw7RjV 9mOwUAVZhIDNKS/s3QNzcyT9W0e98TYIQM7UUpK+Akji4PvWPn85QV1DqLZngjB4Hl4/ 1FlA== X-Forwarded-Encrypted: i=1; AJvYcCUwZTMxPq6g4x2QCz+dHS1WEZzDHYsWSqxJrYPvoVHANILg6x0x1EhjqgHE4yS3Cgc9pWt5use7wU8sNQY=@vger.kernel.org X-Gm-Message-State: AOJu0YzawfnBbhxzk6lClJG1jT6nsAT3u220ujq42VjCJ1/0wd9PSSyp k5fPH6u8FTSubLM3yVzKuSgXugisa2RKbJnbTD7Tb5JM2zADbOjlJkpdCdKZZge7gZax/F34R9n pr7DjgoVoM3SLFg1Vpw== X-Received: from ejcdp19.prod.google.com ([2002:a17:906:c153:b0:b94:96:8ae4]) (user=sidnayyar job=prod-delivery.src-stubby-dispatcher) by 2002:a17:906:598e:b0:b98:7e20:b25 with SMTP id a640c23a62f3a-b9b502ed0a8mr954766b.20.1774560093907; Thu, 26 Mar 2026 14:21:33 -0700 (PDT) Date: Thu, 26 Mar 2026 21:21:29 +0000 In-Reply-To: <20260326-kflagstab-v5-0-455cd723dddf@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260326-kflagstab-v5-0-455cd723dddf@google.com> X-Mailer: b4 0.14.3 Message-ID: <20260326-kflagstab-v5-1-455cd723dddf@google.com> Subject: [PATCH v5 1/7] module: define ksym_flags enumeration to represent kernel symbol flags From: Siddharth Nayyar To: Luis Chamberlain , Petr Pavlu , Daniel Gomez , Sami Tolvanen , Aaron Tomlin , Arnd Bergmann , Nathan Chancellor , Nicolas Schier , Jonathan Corbet , Shuah Khan Cc: linux-modules@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-doc@vger.kernel.org, Siddharth Nayyar , gprocida@google.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Symbol flags is an enumeration used to represent flags as a bitset, for example a flag to tell if a symbol is GPL only. The said bitset is introduced in subsequent patches and will contain values of kernel symbol flags. These bitset will then be used to infer flag values rather than fragmenting ksymtab for separating symbols with different flag values, thereby eliminating the need to fragment the ksymtab. Signed-off-by: Siddharth Nayyar Reviewed-by: Petr Pavlu --- include/linux/module_symbol.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/linux/module_symbol.h b/include/linux/module_symbol.h index 77c9895b9ddb..574609aced99 100644 --- a/include/linux/module_symbol.h +++ b/include/linux/module_symbol.h @@ -2,6 +2,11 @@ #ifndef _LINUX_MODULE_SYMBOL_H #define _LINUX_MODULE_SYMBOL_H =20 +/* Kernel symbol flags bitset. */ +enum ksym_flags { + KSYM_FLAG_GPL_ONLY =3D 1 << 0, +}; + /* This ignores the intensely annoying "mapping symbols" found in ELF file= s. */ static inline bool is_mapping_symbol(const char *str) { --=20 2.53.0.1018.g2bb0e51243-goog From nobody Thu Apr 2 18:53:27 2026 Received: from mail-wm1-f74.google.com (mail-wm1-f74.google.com [209.85.128.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BCEA63A6F15 for ; Thu, 26 Mar 2026 21:21:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774560098; cv=none; b=n3s+u597wWC1z69FDFWFyUToc8m6vr8G9upYQfvUe9mylsADXy+8MsVNuwMJmoeK54WkLPW/QRlWR35y8UpXtfpomzYmt18ya2fAmU+nc3LCoR/DCLWOCTqxRYuK8RlLMfanMF1fIFy2Tt1XfJYauNd9VP3LjKs1zamGoC/3Kws= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774560098; c=relaxed/simple; bh=o/kOrCCo+fMsG/zyKbK9sMlBZ4cdbWSoTsj4GMMdO14=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=OHcC/rc9cpJmmN8C65GPbRwRLmh2QaQF1GyEIEXFdPPcMCAorIUAqTuSas6ghvJf8IqgUdn9gxcOE59RdfGq510poKaepg5bBHk6ydqK1O7t0t+Z7Hz85sAmhS8YN9tP0SMiwUzydrPf8xuKjyenLh8ussRu53PNYi4QNhaJBVQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--sidnayyar.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=g9Az6fUD; arc=none smtp.client-ip=209.85.128.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--sidnayyar.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="g9Az6fUD" Received: by mail-wm1-f74.google.com with SMTP id 5b1f17b1804b1-48535f4d5e1so18684405e9.0 for ; Thu, 26 Mar 2026 14:21:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1774560095; x=1775164895; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=Q64ZpAFewOF3l9iLTHkbHOl134UR/SzN3vMtwvmgNnI=; b=g9Az6fUD/tX91QXDXr23H+svxrUB4bL4ew0s7PmzM6z/LttWAG6npjOpOSv4HQNo5J n8ofyLK0tfJVOi/LEX0UUEgS52VQNd83VxmK7p3Edlmf21yF4RjCw4LgDPBr/19+hJV8 weZXye5CXCZthRv29dp5bI541X8KW19KLpaN1r7UjeE7P7oExOKn7KAPE7B6XX8QjWRo UXr2rDucNvAWYj8cwWxc+yM+yfZitdLPQu2WrCecahl2RXweNBq826x04YqG+oEww25+ R3AOBoXqL4Edz+VJ7Jasy6D15NsVDrm2pCuBcr44/Vc4MFMtS937M+8/xZGC8c4kfukU 1jaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774560095; x=1775164895; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Q64ZpAFewOF3l9iLTHkbHOl134UR/SzN3vMtwvmgNnI=; b=AiQbgcrzydh/F8v/Cf4sGaL2CeVi35+p+9pI0NYzAuBE0WWebjwMA978Kq+Y6fhOrd vnZErwsu9vcTZr+z6ow5hWF9QygDH/nsseYTj0o7tabJG48Gg2AXxFENoqz/gZH6P8rp XxBdoa1Xgi0Vx2jOJjG7OzBEN8K+z+4D7NDiEZPvoJNj+S/V3LAQW1V24QD5UkfkrWXJ rfZhRMW42EvTSrqvSAaMWKsq/9m8CY7Hk3Uw3p1eUgkpJnsMaFp/yxFXUScI5EYnfe55 1Vl3VFe/uSaVR7jIfrG5pIsfdC7Je+OeGj1CKWeaRwK/zEdeCS5jZ38Hnrt+j2+PBMA4 gpmQ== X-Forwarded-Encrypted: i=1; AJvYcCUXdDrFXSBK4sqMBPIgkiJJpvedxKLXh322FIIP/ilUHNeSTvowB9mfVxZ/X3Dky69pv/6N7D+/RCHBJNE=@vger.kernel.org X-Gm-Message-State: AOJu0Yw+RonMMjflzqilWj2DNlSgQ9j1ApnvbYT7ctMQSIfhZdVGz+PN hNnvh8LWLwzz1G7d6kHwkrw5R9MqG1Nectr9kPXpex1kXYajPPc2cxCXRa44i852sot6LXduofP rlr1PamCo3oImn2QPkw== X-Received: from wmi4.prod.google.com ([2002:a05:600c:204:b0:486:fb09:30b1]) (user=sidnayyar job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:a00a:b0:486:fcc7:d6a with SMTP id 5b1f17b1804b1-48727ea275emr2896295e9.13.1774560094966; Thu, 26 Mar 2026 14:21:34 -0700 (PDT) Date: Thu, 26 Mar 2026 21:21:30 +0000 In-Reply-To: <20260326-kflagstab-v5-0-455cd723dddf@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260326-kflagstab-v5-0-455cd723dddf@google.com> X-Mailer: b4 0.14.3 Message-ID: <20260326-kflagstab-v5-2-455cd723dddf@google.com> Subject: [PATCH v5 2/7] module: add kflagstab section to vmlinux and modules From: Siddharth Nayyar To: Luis Chamberlain , Petr Pavlu , Daniel Gomez , Sami Tolvanen , Aaron Tomlin , Arnd Bergmann , Nathan Chancellor , Nicolas Schier , Jonathan Corbet , Shuah Khan Cc: linux-modules@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-doc@vger.kernel.org, Siddharth Nayyar , gprocida@google.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable This section will contain read-only data for values of kernel symbol flags in the form of an 8-bit bitsets for each kernel symbol. Each bit in the bitset represents a flag value defined by ksym_flags enumeration. The kflagstab section introduces a 1-byte overhead for each symbol exported in the ksymtab. Given that typical kernel builds contain roughly a few thousand exported symbols, the resulting memory increase is negligible. Signed-off-by: Siddharth Nayyar Reviewed-by: Petr Pavlu --- include/asm-generic/vmlinux.lds.h | 7 +++++++ scripts/module.lds.S | 1 + 2 files changed, 8 insertions(+) diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinu= x.lds.h index 1e1580febe4b..d64a475c468a 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -536,6 +536,13 @@ __stop___kcrctab_gpl =3D .; \ } \ \ + /* Kernel symbol flags table */ \ + __kflagstab : AT(ADDR(__kflagstab) - LOAD_OFFSET) { \ + __start___kflagstab =3D .; \ + KEEP(*(SORT(___kflagstab+*))) \ + __stop___kflagstab =3D .; \ + } \ + \ /* Kernel symbol table: strings */ \ __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \ *(__ksymtab_strings) \ diff --git a/scripts/module.lds.S b/scripts/module.lds.S index 054ef99e8288..d7a8ba278dfc 100644 --- a/scripts/module.lds.S +++ b/scripts/module.lds.S @@ -23,6 +23,7 @@ SECTIONS { __ksymtab_gpl 0 : ALIGN(8) { *(SORT(___ksymtab_gpl+*)) } __kcrctab 0 : ALIGN(4) { *(SORT(___kcrctab+*)) } __kcrctab_gpl 0 : ALIGN(4) { *(SORT(___kcrctab_gpl+*)) } + __kflagstab 0 : ALIGN(1) { *(SORT(___kflagstab+*)) } =20 .ctors 0 : ALIGN(8) { *(SORT(.ctors.*)) *(.ctors) } .init_array 0 : ALIGN(8) { *(SORT(.init_array.*)) *(.init_array) } --=20 2.53.0.1018.g2bb0e51243-goog From nobody Thu Apr 2 18:53:27 2026 Received: from mail-wr1-f74.google.com (mail-wr1-f74.google.com [209.85.221.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C4D5A3A7827 for ; Thu, 26 Mar 2026 21:21:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774560099; cv=none; b=rGJ4jTnEYOjiAUG08e6BuruOFUKql0J8bp7KORfgP385I1SdJ9kpuqRMns5G96qYPZQZGOVnkdNN8exAqbx5SUIFPaKukC94MnyGF+5k2tirqzVTyCAHJ+F1rqhzyNK1eHd5YgtB0Gv+CeTq9tyw8fMTByPsqnS5VEIU0XMCSOE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774560099; c=relaxed/simple; bh=IMqZKd1uN1FnLrufR1Vtu+d5jfNCK7QjuAG3cXhKCg8=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=P4gLLQRgHUi8hfl6Lqoy1HN9Avtzg6fY7CQKS4NxFxupVP9k+cQl2XtOG0n/+eZdBge7eWoIudxIxsEYJZ09r4xeUbxiyMitu9D+eGRLFUK1dyZyc7xcYouhmQIJxt9FWhL9f0EyxnwuyN41YaocAJoVaeo1qbh4fdnBQOAC5oU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--sidnayyar.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=YWEcxSo/; arc=none smtp.client-ip=209.85.221.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--sidnayyar.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="YWEcxSo/" Received: by mail-wr1-f74.google.com with SMTP id ffacd0b85a97d-439f5c57c52so130313f8f.1 for ; Thu, 26 Mar 2026 14:21:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1774560096; x=1775164896; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=woqFHYkUrW1f2z9oyqhnpwQO2sR6jhXkFvm21NeDZng=; b=YWEcxSo/tPc9oj+YnbOhlWr1z0FwJQyLh02QsQ0r3w7o6I1/YTeC+L/0xHPPKh6D7T PWef0TPxfGOeBf0TKgRx0fWbM8GXXgAxuWF7MHuoZIcdRHALuVeJVU/jjRRa1NS0i82F oFuV7kFXQqRYkDBcQewLoDfEORopc3wY8cH7W5c+WnRW33TZCsNmWwO43OzyROx1P8oV /weYJSoMMEcjiTiMv5eVwN6z7BHzOGNFUW1Zjy3Sfy4I9ET8Zymib4v1RJG6+Vb1/umg 8WUihadGguTBACOa4B85Eg+Vh+/la/5B2GxXiKYOJt8iCQbOJai7efSM/CqEkk0HuGUD 7UXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774560096; x=1775164896; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=woqFHYkUrW1f2z9oyqhnpwQO2sR6jhXkFvm21NeDZng=; b=Q/cBKedKK2HGWWJTeuzfdtS5F5Bzdgr+NKWpF/Gt7Cb68hjXhzUCf56BGttelPdCk3 +dZQ97qxZP54I59ohG/PorCT6SisQDE4HSR44HZPwByrUYwVQpXM7atEt2+KLrSsriPL BbLJmyEJJLk6GozutIWG6e5JxOsBcDVK20/+WKNS72JY76JgMAqtAtPTdpt5WMYrjWST anCMol6eJzrFMc21dLEMNf1ql6IW1sTCngHkKnwElvTn2sn5u5PVIw9Jta9utPlPiLeb Zb9OxzuoiAIpbVRVzKq3psl8tJYjgiVAvfnA0CN5l5o+U/cknDykC8F63dbJiV1SCnHB 9jiw== X-Forwarded-Encrypted: i=1; AJvYcCWWwgmRxfCtjRUHcbkIRSL/Yio1EJbBolBqM3HJzbVT17+StLdQYzGyDtXg7Jos1GG2ifGbPciXpgfOPPM=@vger.kernel.org X-Gm-Message-State: AOJu0Ywin6o3XH0S85jQK9bTN+if2vbfl9wPB/DDyM1LuNI7j7Schl+G DcpTPUaTynCYtjh7wAfMRSRb4lm5ySmLD/4BqZc52tMcVYgQ+lW3BHfSqzaStL/f30iscvQMu3p 8DHVD/2D72OqOJXRItA== X-Received: from wmog14.prod.google.com ([2002:a05:600c:310e:b0:485:318b:96c6]) (user=sidnayyar job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:4f53:b0:486:de04:5906 with SMTP id 5b1f17b1804b1-48727eda749mr2852285e9.19.1774560096155; Thu, 26 Mar 2026 14:21:36 -0700 (PDT) Date: Thu, 26 Mar 2026 21:21:31 +0000 In-Reply-To: <20260326-kflagstab-v5-0-455cd723dddf@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260326-kflagstab-v5-0-455cd723dddf@google.com> X-Mailer: b4 0.14.3 Message-ID: <20260326-kflagstab-v5-3-455cd723dddf@google.com> Subject: [PATCH v5 3/7] module: populate kflagstab in modpost From: Siddharth Nayyar To: Luis Chamberlain , Petr Pavlu , Daniel Gomez , Sami Tolvanen , Aaron Tomlin , Arnd Bergmann , Nathan Chancellor , Nicolas Schier , Jonathan Corbet , Shuah Khan Cc: linux-modules@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-doc@vger.kernel.org, Siddharth Nayyar , gprocida@google.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable This patch adds the ability to create entries for kernel symbol flag bitsets in kflagstab. Modpost populates only the GPL-only flag for now. Signed-off-by: Siddharth Nayyar Reviewed-by: Petr Pavlu --- include/linux/export-internal.h | 7 +++++++ scripts/mod/modpost.c | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/include/linux/export-internal.h b/include/linux/export-interna= l.h index d445705ac13c..4123c7592404 100644 --- a/include/linux/export-internal.h +++ b/include/linux/export-internal.h @@ -69,4 +69,11 @@ ".long " #crc "\n" \ ".previous" "\n") =20 +#define SYMBOL_FLAGS(sym, flags) \ + asm(" .section \"___kflagstab+" #sym "\",\"a\"" "\n" \ + "__flags_" #sym ":" "\n" \ + " .byte " #flags "\n" \ + " .previous" "\n" \ + ) + #endif /* __LINUX_EXPORT_INTERNAL_H__ */ diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 0c25b5ad497b..1d721fe67caf 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -244,6 +244,11 @@ static struct symbol *alloc_symbol(const char *name) return s; } =20 +static uint8_t get_symbol_flags(const struct symbol *sym) +{ + return sym->is_gpl_only ? KSYM_FLAG_GPL_ONLY : 0; +} + /* For the hash of exported symbols */ static void hash_add_symbol(struct symbol *sym) { @@ -1874,6 +1879,9 @@ static void add_exported_symbols(struct buffer *buf, = struct module *mod) buf_printf(buf, "KSYMTAB_%s(%s, \"%s\", \"%s\");\n", sym->is_func ? "FUNC" : "DATA", sym->name, sym->is_gpl_only ? "_gpl" : "", sym->namespace); + + buf_printf(buf, "SYMBOL_FLAGS(%s, 0x%02x);\n", + sym->name, get_symbol_flags(sym)); } =20 if (!modversions) --=20 2.53.0.1018.g2bb0e51243-goog From nobody Thu Apr 2 18:53:27 2026 Received: from mail-wm1-f73.google.com (mail-wm1-f73.google.com [209.85.128.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4906D3A7F49 for ; Thu, 26 Mar 2026 21:21:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774560101; cv=none; b=bZfPNOVtPTqjzXo46qN16EfV5Y8Qqq5fjHB9yDtFiXhqFsvRyNjqqqujpD3LmYcIfEoHiFRliemXldPaF8s0OnP15zIR2nH/sjMoxQr4KMpe2fcGQQACSdf8GlB26aZok7yTBTHEKW7Lxd3YGggC9FcsmgMZOcR+ogUZRm+sV8g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774560101; c=relaxed/simple; bh=siB77Fn1mr2A8ag+YsCmtEedmZaaEXq5RbfZxU90iRg=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=QnJpe03up6qX88Ar3yv7gffL1k3EKjtE+DNiikiibL/LP2Bl39B5eZ0tAtusKGaKuTi5K34Z6IluirZVN1JmYWDKPclQVRZgJDZ/3GZBs+mx4FHI9zDv5/UF6tr+PBuyQNL/MrP/+15uFdfGtWIFQWDiBO5TELpqeRuX8hUZ/+o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--sidnayyar.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=i3cv8mzm; arc=none smtp.client-ip=209.85.128.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--sidnayyar.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="i3cv8mzm" Received: by mail-wm1-f73.google.com with SMTP id 5b1f17b1804b1-486fc42c83aso11601805e9.0 for ; Thu, 26 Mar 2026 14:21:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1774560097; x=1775164897; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=66LkDoxiIORn8ltcTUmDR4YaWJ5RIn42FKIzW6ohdiA=; b=i3cv8mzmpzMqlGu0BdoigL+8b1gTnQyLpMhM5OTPvsvQ1DhI0Rj83iEaZ44bGHrxAg JVcBXh70XdgvmXGQGA3KEBn+Xq9w5jUp1aE8s4ziRusboBvbA7NLoPrtyq3c3IfeEAvd ci8rguZBmGW2G+2T38ag2w3enE5p83xLZG0upeEff7zRjaJQ4APfeFbbnFEqu894zyte gmKeZGF6D3XFSIYB82oFYRHtL+fpgOFbq9LAjyrH+F8n5kzzVdkoWaHFLT9JSbg0Ah63 K3dnQ6eqBH1z2M2QNKAjjupZLXnNYN5pFWw/B4W9PB/eaUvucelXSlsgZOhMRZ5fpcVP 4PnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774560097; x=1775164897; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=66LkDoxiIORn8ltcTUmDR4YaWJ5RIn42FKIzW6ohdiA=; b=lvyL60tXzzpsvXwEIoEl4tw0M1rqCVa8bW+/tyeO/zwk2fCfYXV7Wzw4iwctEANSMd 0rAD5a/4Jw2Pb220o0uQMqYMD0AtqW3Ya4tQIaEIrtuAmJZervJ3oDlSjQGmwtloEVy4 Cvo9V2R7JaIwliDGlVRVomSTRL8YBeC1+tIgn4Lhf/Jmqy33uk3E1068q35M9ng6WCq4 xPmYKUniZ/SlGffhTq4aaauRsOnJeBWYX6GUAUAXHx4iJ3O4V3IR9jKzApYuEskRCAYC HJ4NTA7jHn7d3zbUHaFP2ZX2O/9iloowe2nJ6zTtxceJ1zDcUpzmCsd0evLdjL8/f1w4 /3Xw== X-Forwarded-Encrypted: i=1; AJvYcCV4/UDD7QMQm76j/T/B69/aDuXFXwvymVhvS00TcI3ZZZ/9ROGukZyI/cI+YNaXz9B6rbywX0MCaZIE7mQ=@vger.kernel.org X-Gm-Message-State: AOJu0YxaV7lFivFHc5bh+JLOcbAeE+jYwOJMBlbI9stVes2sOLF0flOq pWANcH/cv9JqjjYHk3NdXAlTCRoqwo9RJwX6I9/52k+kJZsUdm45wEI7SFazy/df/HM82yun3v/ cSDCLGH0bqCumeUgURQ== X-Received: from wruo7.prod.google.com ([2002:a5d:6707:0:b0:43b:88ab:dd35]) (user=sidnayyar job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:a06:b0:487:1108:48af with SMTP id 5b1f17b1804b1-48727d59ce3mr4100605e9.4.1774560097408; Thu, 26 Mar 2026 14:21:37 -0700 (PDT) Date: Thu, 26 Mar 2026 21:21:32 +0000 In-Reply-To: <20260326-kflagstab-v5-0-455cd723dddf@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260326-kflagstab-v5-0-455cd723dddf@google.com> X-Mailer: b4 0.14.3 Message-ID: <20260326-kflagstab-v5-4-455cd723dddf@google.com> Subject: [PATCH v5 4/7] module: use kflagstab instead of *_gpl sections From: Siddharth Nayyar To: Luis Chamberlain , Petr Pavlu , Daniel Gomez , Sami Tolvanen , Aaron Tomlin , Arnd Bergmann , Nathan Chancellor , Nicolas Schier , Jonathan Corbet , Shuah Khan Cc: linux-modules@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-doc@vger.kernel.org, Siddharth Nayyar , gprocida@google.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Read kflagstab section for vmlinux and modules to determine whether kernel symbols are GPL only. This patch eliminates the need for fragmenting the ksymtab for infering the value of GPL-only symbol flag, henceforth stop using the *_gpl versions of the ksymtab and kcrctab in modpost. Signed-off-by: Siddharth Nayyar Reviewed-by: Petr Pavlu --- include/linux/export-internal.h | 21 ++++++++-------- include/linux/module.h | 1 + kernel/module/internal.h | 1 + kernel/module/main.c | 55 ++++++++++++++++++++++---------------= ---- scripts/mod/modpost.c | 8 +++--- 5 files changed, 46 insertions(+), 40 deletions(-) diff --git a/include/linux/export-internal.h b/include/linux/export-interna= l.h index 4123c7592404..726054614752 100644 --- a/include/linux/export-internal.h +++ b/include/linux/export-internal.h @@ -37,14 +37,14 @@ * section flag requires it. Use '%progbits' instead of '@progbits' since = the * former apparently works on all arches according to the binutils source. */ -#define __KSYMTAB(name, sym, sec, ns) \ +#define __KSYMTAB(name, sym, ns) \ asm(" .section \"__ksymtab_strings\",\"aMS\",%progbits,1" "\n" \ "__kstrtab_" #name ":" "\n" \ " .asciz \"" #name "\"" "\n" \ "__kstrtabns_" #name ":" "\n" \ " .asciz \"" ns "\"" "\n" \ " .previous" "\n" \ - " .section \"___ksymtab" sec "+" #name "\", \"a\"" "\n" \ + " .section \"___ksymtab+" #name "\", \"a\"" "\n" \ __KSYM_ALIGN "\n" \ "__ksymtab_" #name ":" "\n" \ __KSYM_REF(sym) "\n" \ @@ -59,15 +59,16 @@ #define KSYM_FUNC(name) name #endif =20 -#define KSYMTAB_FUNC(name, sec, ns) __KSYMTAB(name, KSYM_FUNC(name), sec, = ns) -#define KSYMTAB_DATA(name, sec, ns) __KSYMTAB(name, name, sec, ns) +#define KSYMTAB_FUNC(name, ns) __KSYMTAB(name, KSYM_FUNC(name), ns) +#define KSYMTAB_DATA(name, ns) __KSYMTAB(name, name, ns) =20 -#define SYMBOL_CRC(sym, crc, sec) \ - asm(".section \"___kcrctab" sec "+" #sym "\",\"a\"" "\n" \ - ".balign 4" "\n" \ - "__crc_" #sym ":" "\n" \ - ".long " #crc "\n" \ - ".previous" "\n") +#define SYMBOL_CRC(sym, crc) \ + asm(" .section \"___kcrctab+" #sym "\",\"a\"" "\n" \ + " .balign 4" "\n" \ + "__crc_" #sym ":" "\n" \ + " .long " #crc "\n" \ + " .previous" "\n" \ + ) =20 #define SYMBOL_FLAGS(sym, flags) \ asm(" .section \"___kflagstab+" #sym "\",\"a\"" "\n" \ diff --git a/include/linux/module.h b/include/linux/module.h index 14f391b186c6..aee3accba73c 100644 --- a/include/linux/module.h +++ b/include/linux/module.h @@ -418,6 +418,7 @@ struct module { /* Exported symbols */ const struct kernel_symbol *syms; const u32 *crcs; + const u8 *flagstab; unsigned int num_syms; =20 #ifdef CONFIG_ARCH_USES_CFI_TRAPS diff --git a/kernel/module/internal.h b/kernel/module/internal.h index 618202578b42..69b84510e097 100644 --- a/kernel/module/internal.h +++ b/kernel/module/internal.h @@ -57,6 +57,7 @@ extern const struct kernel_symbol __start___ksymtab_gpl[]; extern const struct kernel_symbol __stop___ksymtab_gpl[]; extern const u32 __start___kcrctab[]; extern const u32 __start___kcrctab_gpl[]; +extern const u8 __start___kflagstab[]; =20 #define KMOD_PATH_LEN 256 extern char modprobe_path[]; diff --git a/kernel/module/main.c b/kernel/module/main.c index c3ce106c70af..d237fa4e0737 100644 --- a/kernel/module/main.c +++ b/kernel/module/main.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -87,7 +88,7 @@ struct mod_tree_root mod_tree __cacheline_aligned =3D { struct symsearch { const struct kernel_symbol *start, *stop; const u32 *crcs; - enum mod_license license; + const u8 *flagstab; }; =20 /* @@ -364,19 +365,21 @@ static bool find_exported_symbol_in_section(const str= uct symsearch *syms, struct find_symbol_arg *fsa) { struct kernel_symbol *sym; - - if (!fsa->gplok && syms->license =3D=3D GPL_ONLY) - return false; + u8 sym_flags; =20 sym =3D bsearch(fsa->name, syms->start, syms->stop - syms->start, sizeof(struct kernel_symbol), cmp_name); if (!sym) return false; =20 + sym_flags =3D *(syms->flagstab + (sym - syms->start)); + if (!fsa->gplok && (sym_flags & KSYM_FLAG_GPL_ONLY)) + return false; + fsa->owner =3D owner; fsa->crc =3D symversion(syms->crcs, sym - syms->start); fsa->sym =3D sym; - fsa->license =3D syms->license; + fsa->license =3D (sym_flags & KSYM_FLAG_GPL_ONLY) ? GPL_ONLY : NOT_GPL_ON= LY; =20 return true; } @@ -387,36 +390,31 @@ static bool find_exported_symbol_in_section(const str= uct symsearch *syms, */ bool find_symbol(struct find_symbol_arg *fsa) { - static const struct symsearch arr[] =3D { - { __start___ksymtab, __stop___ksymtab, __start___kcrctab, - NOT_GPL_ONLY }, - { __start___ksymtab_gpl, __stop___ksymtab_gpl, - __start___kcrctab_gpl, - GPL_ONLY }, + const struct symsearch syms =3D { + .start =3D __start___ksymtab, + .stop =3D __stop___ksymtab, + .crcs =3D __start___kcrctab, + .flagstab =3D __start___kflagstab, }; struct module *mod; - unsigned int i; =20 - for (i =3D 0; i < ARRAY_SIZE(arr); i++) - if (find_exported_symbol_in_section(&arr[i], NULL, fsa)) - return true; + if (find_exported_symbol_in_section(&syms, NULL, fsa)) + return true; =20 list_for_each_entry_rcu(mod, &modules, list, lockdep_is_held(&module_mutex)) { - struct symsearch arr[] =3D { - { mod->syms, mod->syms + mod->num_syms, mod->crcs, - NOT_GPL_ONLY }, - { mod->gpl_syms, mod->gpl_syms + mod->num_gpl_syms, - mod->gpl_crcs, - GPL_ONLY }, + const struct symsearch syms =3D { + .start =3D mod->syms, + .stop =3D mod->syms + mod->num_syms, + .crcs =3D mod->crcs, + .flagstab =3D mod->flagstab, }; =20 if (mod->state =3D=3D MODULE_STATE_UNFORMED) continue; =20 - for (i =3D 0; i < ARRAY_SIZE(arr); i++) - if (find_exported_symbol_in_section(&arr[i], mod, fsa)) - return true; + if (find_exported_symbol_in_section(&syms, mod, fsa)) + return true; } =20 pr_debug("Failed to find symbol %s\n", fsa->name); @@ -2614,6 +2612,7 @@ static int find_module_sections(struct module *mod, s= truct load_info *info) sizeof(*mod->gpl_syms), &mod->num_gpl_syms); mod->gpl_crcs =3D section_addr(info, "__kcrctab_gpl"); + mod->flagstab =3D section_addr(info, "__kflagstab"); =20 #ifdef CONFIG_CONSTRUCTORS mod->ctors =3D section_objs(info, ".ctors", @@ -2817,8 +2816,12 @@ static int move_module(struct module *mod, struct lo= ad_info *info) return ret; } =20 -static int check_export_symbol_versions(struct module *mod) +static int check_export_symbol_sections(struct module *mod) { + if (mod->num_syms && !mod->flagstab) { + pr_err("%s: no flags for exported symbols\n", mod->name); + return -ENOEXEC; + } #ifdef CONFIG_MODVERSIONS if ((mod->num_syms && !mod->crcs) || (mod->num_gpl_syms && !mod->gpl_crcs)) { @@ -3434,7 +3437,7 @@ static int load_module(struct load_info *info, const = char __user *uargs, if (err) goto free_unload; =20 - err =3D check_export_symbol_versions(mod); + err =3D check_export_symbol_sections(mod); if (err) goto free_unload; =20 diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 1d721fe67caf..9d96acce60a8 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -1876,9 +1876,9 @@ static void add_exported_symbols(struct buffer *buf, = struct module *mod) if (trim_unused_exports && !sym->used) continue; =20 - buf_printf(buf, "KSYMTAB_%s(%s, \"%s\", \"%s\");\n", + buf_printf(buf, "KSYMTAB_%s(%s, \"%s\");\n", sym->is_func ? "FUNC" : "DATA", sym->name, - sym->is_gpl_only ? "_gpl" : "", sym->namespace); + sym->namespace); =20 buf_printf(buf, "SYMBOL_FLAGS(%s, 0x%02x);\n", sym->name, get_symbol_flags(sym)); @@ -1899,8 +1899,8 @@ static void add_exported_symbols(struct buffer *buf, = struct module *mod) sym->name, mod->name, mod->is_vmlinux ? "" : ".ko", sym->name); =20 - buf_printf(buf, "SYMBOL_CRC(%s, 0x%08x, \"%s\");\n", - sym->name, sym->crc, sym->is_gpl_only ? "_gpl" : ""); + buf_printf(buf, "SYMBOL_CRC(%s, 0x%08x);\n", + sym->name, sym->crc); } } =20 --=20 2.53.0.1018.g2bb0e51243-goog From nobody Thu Apr 2 18:53:27 2026 Received: from mail-ej1-f73.google.com (mail-ej1-f73.google.com [209.85.218.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 841A93A872B for ; Thu, 26 Mar 2026 21:21:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774560102; cv=none; b=F66/sj9Htyh+45e/CjdpWYIte7rP6fwCrfQwuGm9DyP4snOnPJPVWz/4ksTMhIW/2RDBaTCyoK6T6m7r740dt+vfI1gt6rsIfD4JtiUI5EXlhiuSSH+jIIm9LCzWJp64lR5rr/XCif+gdlSpPWYPskmIZ6B+IOK8r+c1o86n/hw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774560102; c=relaxed/simple; bh=dhaz9oRBN2LrlO9PSGOfI7otVV2KGMDVKhDfQTLvm0g=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=UaVznhwzN3dPKv5cv92TV5alSp3jnTzDzTjU8qd7vByHDsf4B8ZpXGu/kWUAeH+gBQ+cvIBYo3mDZV/fNl+mvT8Gdr0ldfP/yvMxrRql8asFGitUtWEvLkH7bkYpP4camhhuafv9YT0QPNHA9KgOA9Za+Ff2itQd5PYr6+3DaLQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--sidnayyar.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=CNYgqHo+; arc=none smtp.client-ip=209.85.218.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--sidnayyar.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="CNYgqHo+" Received: by mail-ej1-f73.google.com with SMTP id a640c23a62f3a-b97a381912eso91144866b.0 for ; Thu, 26 Mar 2026 14:21:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1774560099; x=1775164899; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=ZE42C9hekLpveGyF6RMfwZOJjelI4nIxMgNfnUlAiOM=; b=CNYgqHo+nsn6+52h3Vz5Dy2vrKxUl4vVbYIm+G8/CPASSSepVNkkCZPZhs4OW5CLJK JQX2nLjlXgeUi4qysCCZ0O8YkKyDPiDzaEEykBEsbPdGeK6q7hBoVcTmPTnOgKCbPyVx LCMEvP+pb99HwI0KsWVC647uLtBJWkx+T2T3kn7CquQbYud3JoKW+w/Wu2OncK/0hyx2 DpI1JG4S/rdGpxkyPhZWgCEO1xvvrnwz6z8unSJjfJ7fBWt/7/pptbxVCJaIb+4r7GRO fzgVb35fC355FOgTxuN5w3HY6penk2cySDbedjNGqtQ6czxBdUaN5fmhXZ/Eiz5G9jlL qQhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774560099; x=1775164899; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ZE42C9hekLpveGyF6RMfwZOJjelI4nIxMgNfnUlAiOM=; b=hK0y9q0eCSNTu7V0WwYrjF6MTnLIbYLQzZUXzbp0MYUhObe3Ag+qVhNWzCJuUZiJ6K igjpr4X2Sj84Ds2ljeZAVxuub4mL4G44ue/JFGEuaT9E73zGe9hM8WvpoO5xXB8i1Mg0 Tsyt1XpynUy7rQC7GyYFDM5v5OLlUekvnlQgz0vGWLY1kJc2m1MK9rCyceINCL7PEmoz Rkemj5C1WvQpGkkPMMRIQmHExmrRb/J9WEnML/Ltp15dq/m7MSpCDvXxgTZnSfeeZMgP HHFKb10rNLinl+EQ8Ykcmz6+az7xEJTgYoZFcIG9dT40+xhcQqqueQABsRDSqbgbbPNC /3hg== X-Forwarded-Encrypted: i=1; AJvYcCVhdmHB1qCqKC4AYv7udDNCspzuVF+yK7+8nMaC+/eOo32jKhTprhOc4BQ/Vh5qYGAnowFDgCIRX7+VUOw=@vger.kernel.org X-Gm-Message-State: AOJu0YxvDXpuPO1lhz6JEisht2YzM6d+HfOAHfb+QQxN0HDDJaPEx8fN LmZvMjm20IwKBgBvLF082FnJWlEB95MjSx7R/wrJ9b6RnosT3QZ+ebiPCW/UASLkgk4qaktKSj2 7g4MYOw+X1SemrAcnWQ== X-Received: from ejccw7.prod.google.com ([2002:a17:906:4787:b0:b98:2423:3942]) (user=sidnayyar job=prod-delivery.src-stubby-dispatcher) by 2002:a17:907:e0d8:b0:b97:c968:d9ba with SMTP id a640c23a62f3a-b9b502c08b3mr856766b.5.1774560098750; Thu, 26 Mar 2026 14:21:38 -0700 (PDT) Date: Thu, 26 Mar 2026 21:21:33 +0000 In-Reply-To: <20260326-kflagstab-v5-0-455cd723dddf@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260326-kflagstab-v5-0-455cd723dddf@google.com> X-Mailer: b4 0.14.3 Message-ID: <20260326-kflagstab-v5-5-455cd723dddf@google.com> Subject: [PATCH v5 5/7] module: deprecate usage of *_gpl sections in module loader From: Siddharth Nayyar To: Luis Chamberlain , Petr Pavlu , Daniel Gomez , Sami Tolvanen , Aaron Tomlin , Arnd Bergmann , Nathan Chancellor , Nicolas Schier , Jonathan Corbet , Shuah Khan Cc: linux-modules@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-doc@vger.kernel.org, Siddharth Nayyar , gprocida@google.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable The *_gpl section are not being used populated by modpost anymore. Hence the module loader doesn't need to find and process these sections in modules. This patch also simplifies symbol finding logic in module loader since *_gpl sections don't have to be searched anymore. Signed-off-by: Siddharth Nayyar Reviewed-by: Petr Pavlu --- include/linux/module.h | 3 --- kernel/module/internal.h | 3 --- kernel/module/main.c | 46 ++++++++++++++++++--------------------------= -- 3 files changed, 18 insertions(+), 34 deletions(-) diff --git a/include/linux/module.h b/include/linux/module.h index aee3accba73c..a0ec1a9f97b4 100644 --- a/include/linux/module.h +++ b/include/linux/module.h @@ -434,9 +434,6 @@ struct module { unsigned int num_kp; =20 /* GPL-only exported symbols. */ - unsigned int num_gpl_syms; - const struct kernel_symbol *gpl_syms; - const u32 *gpl_crcs; bool using_gplonly_symbols; =20 #ifdef CONFIG_MODULE_SIG diff --git a/kernel/module/internal.h b/kernel/module/internal.h index 69b84510e097..061161cc79d9 100644 --- a/kernel/module/internal.h +++ b/kernel/module/internal.h @@ -53,10 +53,7 @@ extern const size_t modinfo_attrs_count; /* Provided by the linker */ extern const struct kernel_symbol __start___ksymtab[]; extern const struct kernel_symbol __stop___ksymtab[]; -extern const struct kernel_symbol __start___ksymtab_gpl[]; -extern const struct kernel_symbol __stop___ksymtab_gpl[]; extern const u32 __start___kcrctab[]; -extern const u32 __start___kcrctab_gpl[]; extern const u8 __start___kflagstab[]; =20 #define KMOD_PATH_LEN 256 diff --git a/kernel/module/main.c b/kernel/module/main.c index d237fa4e0737..189e18b8103d 100644 --- a/kernel/module/main.c +++ b/kernel/module/main.c @@ -1464,29 +1464,17 @@ EXPORT_SYMBOL_GPL(__symbol_get); */ static int verify_exported_symbols(struct module *mod) { - unsigned int i; const struct kernel_symbol *s; - struct { - const struct kernel_symbol *sym; - unsigned int num; - } arr[] =3D { - { mod->syms, mod->num_syms }, - { mod->gpl_syms, mod->num_gpl_syms }, - }; - - for (i =3D 0; i < ARRAY_SIZE(arr); i++) { - for (s =3D arr[i].sym; s < arr[i].sym + arr[i].num; s++) { - struct find_symbol_arg fsa =3D { - .name =3D kernel_symbol_name(s), - .gplok =3D true, - }; - if (find_symbol(&fsa)) { - pr_err("%s: exports duplicate symbol %s" - " (owned by %s)\n", - mod->name, kernel_symbol_name(s), - module_name(fsa.owner)); - return -ENOEXEC; - } + for (s =3D mod->syms; s < mod->syms + mod->num_syms; s++) { + struct find_symbol_arg fsa =3D { + .name =3D kernel_symbol_name(s), + .gplok =3D true, + }; + if (find_symbol(&fsa)) { + pr_err("%s: exports duplicate symbol %s (owned by %s)\n", + mod->name, kernel_symbol_name(s), + module_name(fsa.owner)); + return -ENOEXEC; } } return 0; @@ -2608,12 +2596,15 @@ static int find_module_sections(struct module *mod,= struct load_info *info) mod->syms =3D section_objs(info, "__ksymtab", sizeof(*mod->syms), &mod->num_syms); mod->crcs =3D section_addr(info, "__kcrctab"); - mod->gpl_syms =3D section_objs(info, "__ksymtab_gpl", - sizeof(*mod->gpl_syms), - &mod->num_gpl_syms); - mod->gpl_crcs =3D section_addr(info, "__kcrctab_gpl"); mod->flagstab =3D section_addr(info, "__kflagstab"); =20 + if (section_addr(info, "__ksymtab_gpl")) + pr_warn("%s: ignoring obsolete section __ksymtab_gpl\n", + mod->name); + if (section_addr(info, "__kcrctab_gpl")) + pr_warn("%s: ignoring obsolete section __kcrctab_gpl\n", + mod->name); + #ifdef CONFIG_CONSTRUCTORS mod->ctors =3D section_objs(info, ".ctors", sizeof(*mod->ctors), &mod->num_ctors); @@ -2823,8 +2814,7 @@ static int check_export_symbol_sections(struct module= *mod) return -ENOEXEC; } #ifdef CONFIG_MODVERSIONS - if ((mod->num_syms && !mod->crcs) || - (mod->num_gpl_syms && !mod->gpl_crcs)) { + if (mod->num_syms && !mod->crcs) { return try_to_force_load(mod, "no versions for exported symbols"); } --=20 2.53.0.1018.g2bb0e51243-goog From nobody Thu Apr 2 18:53:27 2026 Received: from mail-ej1-f74.google.com (mail-ej1-f74.google.com [209.85.218.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 05AD93A7825 for ; Thu, 26 Mar 2026 21:21:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774560109; cv=none; b=h0ebPWlWK4CUpMqW83Y4RsVm1JlbRsx0CEcYZ2ThRNTWIaVDkxqoKiwnO52sDmGzv5zYJePfdKlegLn88xDMMpARsimlmkA1j9hxP4CZeom8CyWmKIJpzVn8El+RJHzZHIIHs2pGICWmjB3sBqVD63u9EKOI4SE9l6EIHnI23So= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774560109; c=relaxed/simple; bh=YJ12M66JVdOPpUyl/ZnRqsezMQxQSFmDChR9hjNAYhg=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=P4CT575mrhtggvwUX8dT8sC3JGNtcxRBsQvlH9+76iTR2oaQZFCKgcxCrYwr3AHrWqRasQ9XWL6HQDFjdLfvyiJph5VbLDVMdNIpH/swltx0ot4hefA9VVpEELABNa4CqVJWj6/I9uDCqjjAsVvUZNcOppO0urR9YNfkIbpYf4U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--sidnayyar.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=A66LlWSn; arc=none smtp.client-ip=209.85.218.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--sidnayyar.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="A66LlWSn" Received: by mail-ej1-f74.google.com with SMTP id a640c23a62f3a-b9399d68111so175553166b.0 for ; Thu, 26 Mar 2026 14:21:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1774560100; x=1775164900; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=aGYiW8Rqw4kRzbw632ADCfNRFJHG+c2ihwrVrUq2DSI=; b=A66LlWSnTmXuhiNodjP1e0XL9V+0cM3AjT/FGZ1x6y1rc7R2YdvFKisvEF6seR+Qhh 8gn7ZGeYWattf87yAWHl7vBPdJP8w7dcmzDrPU7F7BQWAaO++QNMtAz1z3TWBe7WZsUO n18KBfH1Pbf6rYj9iKRFfR653P2D0nPoa/Nqr3OCabhUQDtjMvb8dQPUB7Et0WWFDYZb BDs9HGxUiClz7kTC+JS7CcrOdYzk+YIIkzwFgM5pSO8tDO31uu5H3p3Ify6ppNwTUSjc wxy5MBGUTwQotH4vDU6NBjXpDNo1TEHAMuKgE279zdN4zzXU/STqmm7Cs63N5mt0GZFV Phlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774560100; x=1775164900; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=aGYiW8Rqw4kRzbw632ADCfNRFJHG+c2ihwrVrUq2DSI=; b=E0/A657/0d5gBY5OqHKN7fFZYV1L1TkAUeQBImKR4GYaKWfK0W0dntlfh3cnVx6HLb Ms9AbdSuJIjfugHejBt5RWOC06rZBGy6NaCosr20DfFYolVE36uxVOJuJtXn/D4YRGd+ XYr30modMkVrBuMfBoYoss4M9ZNDhPnFfcLEbe70NZ0LXDrWzCCmEVZl45670cvvUVqW VTjcTbTlZAndAULgEhTDIg03/MnAJn8oznQoz9uDAwaZlCpD8kA/+pZsVgwz05G7gTMi VUvCGcGIOMcjkHWFuK0aqlmA7UHj5rOGhLTgzj7i/22waqTKrhXO0Lj2xaFDInHU6ZrP 8RIA== X-Forwarded-Encrypted: i=1; AJvYcCW7ybwN7XJc5LMGhL4evZBvG6BRFcCwyi0uD+29iTRy0uhjbkOd79903b5nEhArXcrlVZVnsfDYQJlH61M=@vger.kernel.org X-Gm-Message-State: AOJu0Yyv3syyd7+dsllW4YQXKcxUe+2lGAm3h04wwto3SvU0LGl+/ylk frBfNBXaLzSeSUklpStbI+ctCew1JXIKiwaUjW36nj4NC2Mk/v3CFhZQKxoapmATvD1THvjtEPu oyLJaVwDl3snYmty8AA== X-Received: from ejdao21.prod.google.com ([2002:a17:907:f495:b0:b94:2007:4d01]) (user=sidnayyar job=prod-delivery.src-stubby-dispatcher) by 2002:a17:907:1c1e:b0:b9b:38d4:2cea with SMTP id a640c23a62f3a-b9b5036d57dmr1187466b.23.1774560099877; Thu, 26 Mar 2026 14:21:39 -0700 (PDT) Date: Thu, 26 Mar 2026 21:21:34 +0000 In-Reply-To: <20260326-kflagstab-v5-0-455cd723dddf@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260326-kflagstab-v5-0-455cd723dddf@google.com> X-Mailer: b4 0.14.3 Message-ID: <20260326-kflagstab-v5-6-455cd723dddf@google.com> Subject: [PATCH v5 6/7] module: remove *_gpl sections from vmlinux and modules From: Siddharth Nayyar To: Luis Chamberlain , Petr Pavlu , Daniel Gomez , Sami Tolvanen , Aaron Tomlin , Arnd Bergmann , Nathan Chancellor , Nicolas Schier , Jonathan Corbet , Shuah Khan Cc: linux-modules@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-doc@vger.kernel.org, Siddharth Nayyar , gprocida@google.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable These sections are not used anymore and can be removed from vmlinux and modules during linking. Signed-off-by: Siddharth Nayyar Reviewed-by: Petr Pavlu --- include/asm-generic/vmlinux.lds.h | 18 ++---------------- scripts/module.lds.S | 2 -- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinu= x.lds.h index d64a475c468a..6f47c4c56574 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -508,34 +508,20 @@ \ PRINTK_INDEX \ \ - /* Kernel symbol table: Normal symbols */ \ + /* Kernel symbol table */ \ __ksymtab : AT(ADDR(__ksymtab) - LOAD_OFFSET) { \ __start___ksymtab =3D .; \ KEEP(*(SORT(___ksymtab+*))) \ __stop___ksymtab =3D .; \ } \ \ - /* Kernel symbol table: GPL-only symbols */ \ - __ksymtab_gpl : AT(ADDR(__ksymtab_gpl) - LOAD_OFFSET) { \ - __start___ksymtab_gpl =3D .; \ - KEEP(*(SORT(___ksymtab_gpl+*))) \ - __stop___ksymtab_gpl =3D .; \ - } \ - \ - /* Kernel symbol table: Normal symbols */ \ + /* Kernel symbol CRC table */ \ __kcrctab : AT(ADDR(__kcrctab) - LOAD_OFFSET) { \ __start___kcrctab =3D .; \ KEEP(*(SORT(___kcrctab+*))) \ __stop___kcrctab =3D .; \ } \ \ - /* Kernel symbol table: GPL-only symbols */ \ - __kcrctab_gpl : AT(ADDR(__kcrctab_gpl) - LOAD_OFFSET) { \ - __start___kcrctab_gpl =3D .; \ - KEEP(*(SORT(___kcrctab_gpl+*))) \ - __stop___kcrctab_gpl =3D .; \ - } \ - \ /* Kernel symbol flags table */ \ __kflagstab : AT(ADDR(__kflagstab) - LOAD_OFFSET) { \ __start___kflagstab =3D .; \ diff --git a/scripts/module.lds.S b/scripts/module.lds.S index d7a8ba278dfc..23fa452eb16d 100644 --- a/scripts/module.lds.S +++ b/scripts/module.lds.S @@ -20,9 +20,7 @@ SECTIONS { } =20 __ksymtab 0 : ALIGN(8) { *(SORT(___ksymtab+*)) } - __ksymtab_gpl 0 : ALIGN(8) { *(SORT(___ksymtab_gpl+*)) } __kcrctab 0 : ALIGN(4) { *(SORT(___kcrctab+*)) } - __kcrctab_gpl 0 : ALIGN(4) { *(SORT(___kcrctab_gpl+*)) } __kflagstab 0 : ALIGN(1) { *(SORT(___kflagstab+*)) } =20 .ctors 0 : ALIGN(8) { *(SORT(.ctors.*)) *(.ctors) } --=20 2.53.0.1018.g2bb0e51243-goog From nobody Thu Apr 2 18:53:27 2026 Received: from mail-ed1-f74.google.com (mail-ed1-f74.google.com [209.85.208.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 632803A7F5E for ; Thu, 26 Mar 2026 21:21:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774560106; cv=none; b=ocU5x1KsEiuZzkIrmZtj+O1SssPDA1XL4/pXufwVJPePk5HqFmDSzVF/Bbg03kpzmYJQEzFVHQ4uig1fH1aktmPVjCK2IpeMdSRJe5tYF+8qK4qF+GPbCvewPxN9rrYqczA+6JZAu6xMyPhkatHkFpikNYgetxpCPD6gNzGBR0c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774560106; c=relaxed/simple; bh=lUQ7U8VJ/rlQHorgZU+GXUXjuVr+UBXICgrCGqgyAoo=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=k4NrcKdE3JgbWZstw0/Q5tD68JIlFL19MdcTaQiZzn218dNaXqTBQhZ5+1xw69wIKlQ6YWq26SpIV/0Szs7+kdYhbnqTCiaMOAUkY31zn1Bt338oO8RIcrFrfYwALYcREgvVITGZd7kSztDNTELmDtmDyIxYapVnjB7jkSohnGY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--sidnayyar.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=BcWPV3pK; arc=none smtp.client-ip=209.85.208.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--sidnayyar.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="BcWPV3pK" Received: by mail-ed1-f74.google.com with SMTP id 4fb4d7f45d1cf-66794cee91cso1219344a12.2 for ; Thu, 26 Mar 2026 14:21:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1774560102; x=1775164902; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=Ug/Aikg8oXAqlbbl6AzYUeKxZkIdPz7Q+TVSZpI0rDA=; b=BcWPV3pKHrJbLeaD1QDi7UMU/yvSXfqpWsAu7yZn64atRtCF1tVLOmrrrA2I9E69B/ b8YFSAqN4P15VWaUnnEtQ3vGOzWRvyETAllv6Ev1Tn/SD0nuA+CR5aDpmDkJBz1rjIx8 wIUXPmZBrv0cv2uE9s2GAg1zy75XJQClMN157YuGbPOafWVwQbU/9dB84oOIL7QJJ0a/ EvSQeZncQBHhzHH2MNiAXh8OakhA3ZIy1/8RF4hDNt3RFkgLNwn1IQ1GE2d6l+yu2M4w ZNolgTFiEW7txEUjp6XJjZiefJ/5c0nt63eciR1nRKgpvPoLoBjzAbEweHIlpjdH4UWQ zpNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774560102; x=1775164902; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Ug/Aikg8oXAqlbbl6AzYUeKxZkIdPz7Q+TVSZpI0rDA=; b=KCCTqEGQIb1LgqXnImefimF8Wj+T+M7kbfK1D4iuv53tqcpPvHI8Ee4en8IT6CN5up LfPHiRq11AkjY3YTdJkZCaEnY89nt0uLi4n2TwCcIPjSvzdTCYegiawLbhiiT43Qr4CP 4S8igWTXZVSUBmG8+S8ypEEqD2oFA2pOHSAP3Bdnfmb4hiQOG+FeXVk5ufTPDoEsSq8I tFxSmsjNuaX17+JIfR+Uc4XkdMTd6SwXcUe3vXdv+63JG6bKi3s/EE9DcWNCVE4YXFps ZThUjLURqR4Nh6yHQh3o2IDfLDy+VeW2ztkPCa81VKVzmqewQjJ6OVGU+U0bqXaQICIK fIlw== X-Forwarded-Encrypted: i=1; AJvYcCVuvGjEGMD9eVDPCUtu4dycne3lCTut95vcQfViI9id8Umz1+BEm63zKT9eLDzkVnzBGsmQd7YTa5pqwhM=@vger.kernel.org X-Gm-Message-State: AOJu0YxiEGX3MfjdRt8FRTIDgCsl/ADoFCamQnbYA4QzrG+5S9HRhYj9 kcSu1YYYRCW8jrXsAUMIzE3kgRydEkpXgiYnQE7uLagUK1bFEnhHZfmptmu3WgreOZTNaeHf/mt Tkbmg5OlO7xanFWTd3A== X-Received: from edr23.prod.google.com ([2002:a05:6402:44d7:b0:665:108f:6bfb]) (user=sidnayyar job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6402:27cb:b0:668:502d:80b6 with SMTP id 4fb4d7f45d1cf-66a826e1ceemr5762559a12.26.1774560101441; Thu, 26 Mar 2026 14:21:41 -0700 (PDT) Date: Thu, 26 Mar 2026 21:21:35 +0000 In-Reply-To: <20260326-kflagstab-v5-0-455cd723dddf@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260326-kflagstab-v5-0-455cd723dddf@google.com> X-Mailer: b4 0.14.3 Message-ID: <20260326-kflagstab-v5-7-455cd723dddf@google.com> Subject: [PATCH v5 7/7] documentation: remove references to *_gpl sections From: Siddharth Nayyar To: Luis Chamberlain , Petr Pavlu , Daniel Gomez , Sami Tolvanen , Aaron Tomlin , Arnd Bergmann , Nathan Chancellor , Nicolas Schier , Jonathan Corbet , Shuah Khan Cc: linux-modules@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-doc@vger.kernel.org, Siddharth Nayyar , gprocida@google.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable *_gpl sections are no longer present in the kernel binary. Signed-off-by: Siddharth Nayyar Reviewed-by: Petr Pavlu --- Documentation/kbuild/modules.rst | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Documentation/kbuild/modules.rst b/Documentation/kbuild/module= s.rst index d0703605bfa4..b3a26a36ee17 100644 --- a/Documentation/kbuild/modules.rst +++ b/Documentation/kbuild/modules.rst @@ -426,11 +426,12 @@ Symbols From the Kernel (vmlinux + modules) Version Information Formats --------------------------- =20 - Exported symbols have information stored in __ksymtab or __ksymtab_gpl - sections. Symbol names and namespaces are stored in __ksymtab_strings, - using a format similar to the string table used for ELF. If - CONFIG_MODVERSIONS is enabled, the CRCs corresponding to exported - symbols will be added to the __kcrctab or __kcrctab_gpl. + Exported symbols have information stored in the __ksymtab and + __kflagstab sections. Symbol names and namespaces are stored in + __ksymtab_strings section, using a format similar to the string + table used for ELF. If CONFIG_MODVERSIONS is enabled, the CRCs + corresponding to exported symbols will be added to the + __kcrctab section. =20 If CONFIG_BASIC_MODVERSIONS is enabled (default with CONFIG_MODVERSIONS), imported symbols will have their symbol name and --=20 2.53.0.1018.g2bb0e51243-goog