From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D6621CD610E for ; Mon, 9 Oct 2023 16:58:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4633A8002E; Mon, 9 Oct 2023 12:58:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4130080027; Mon, 9 Oct 2023 12:58:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2DB5B8002E; Mon, 9 Oct 2023 12:58:11 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 1B80280027 for ; Mon, 9 Oct 2023 12:58:11 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id D9D721CA93D for ; Mon, 9 Oct 2023 16:58:10 +0000 (UTC) X-FDA: 81326530740.26.D59A3F9 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) by imf09.hostedemail.com (Postfix) with ESMTP id B786C14000D for ; Mon, 9 Oct 2023 16:58:08 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=ionos.com header.s=google header.b=b2Jzn17E; dmarc=pass (policy=quarantine) header.from=ionos.com; spf=pass (imf09.hostedemail.com: domain of max.kellermann@ionos.com designates 209.85.128.47 as permitted sender) smtp.mailfrom=max.kellermann@ionos.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1696870689; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=22Ou7Kmf9cNKCIWXUI7bhNPHKqi+qktoDIUHvbRcMX8=; b=4ASqupeICDBQYBVhtp1lgRWqWlVrk/8PPtzd+HboUxEMupjXcOx1J2vzn0zHkqDWhK0xwQ dLTF7QRkk0Ay+TD6MgimnNcNwFEdRjRWb7a3bLt+xunRz3EDQPWf/v2dPVOkrC9uY3q3Gu rg6KcDyugB56gbjSaiIL1Tsp9p/2nUY= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=ionos.com header.s=google header.b=b2Jzn17E; dmarc=pass (policy=quarantine) header.from=ionos.com; spf=pass (imf09.hostedemail.com: domain of max.kellermann@ionos.com designates 209.85.128.47 as permitted sender) smtp.mailfrom=max.kellermann@ionos.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1696870689; a=rsa-sha256; cv=none; b=JSiU6+AoGibvQAqkyk4xVCyJLL0VCnUYpWCYuzQz0K9ZpIdG0zV2u+KdE6QsOJTUDU6Reh 7SdNUIot0VtiqyVyR93kLG+jR/ztv9P8JC+n9CAzz0ceoSGFXGpRk4Xc/cJBtkgh9JPOvj o33BVxXLR9IpOjVRml56z4zjcxNHeJs= Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-406618d0991so44398015e9.2 for ; Mon, 09 Oct 2023 09:58:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1696870687; x=1697475487; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=22Ou7Kmf9cNKCIWXUI7bhNPHKqi+qktoDIUHvbRcMX8=; b=b2Jzn17EDrdyKj7wW4C58ZsmAUJeibtTKPTQVB+5y6PxvV2/SpsAbktEKyYxmJea0M rE9PauGXDv1X7Q79qN7BMKgE+bYBYPMfD3TWbQkdoQG7+/1WpFwZL+6F+euSSqF1fXxO cq5LtZQSMoHdhLlOxdO+iRVowz8MheT60YYPonHv46nteLslj0WIywHNK9lOvj+gYNul hI77FFVY6kCRDaE1/yzH/rrcFU3z1Z+xccJgh8zCUvwBgkei8jC4iKGxhENIgP5LFF1h VgsRCC88emoPseDWZgWTmrjcDCOG+uG25CrPiI1QxwnhHSDNDH1bkM4VwXqrnT2OC8TS Eg+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696870687; x=1697475487; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=22Ou7Kmf9cNKCIWXUI7bhNPHKqi+qktoDIUHvbRcMX8=; b=uNBgZzrI5lJVNU9dp6q+qQWBeif/+Zq5GqAADdfCxJS/k1arbZoTbWRAJHd6+pnrwk lZGL50HN8cvzQN1YVyBJs/o9ChfWPhNVJDVhOLI6cUE248iwrzZUoxsNo9CcwplFV1sB bvaIXmrG+j8d/qIRRXeVQkdwXK3/wiF2Vu9Vjr4fbSrXHazTmbwDeVSLmgaKMsRDyJh3 mKZKzREUSu9xyr++JwuicNdECy76V+D/dIT8dxGcytYecLoTPomaBEBL9XpcRVlRTayN OBokG3fqziszp03ksgrqjw46vt975nJYYbb5Jst11+IKQAFFlGHq/6+Pc3909x3Q/Ym4 dVXA== X-Gm-Message-State: AOJu0Yyqgbk8vwytbqcO+qEE+uESabGiWSqSHjlGAK/UG5ldb9Xj/+9H D4iUXkH8NlCdKdUnyZSJ51sKPQ== X-Google-Smtp-Source: AGHT+IEkjxwlJNx9CSlyUJB/bsQpGGVGcu+zwoPXh95ENE4OC6neorbO4PotZkVoYUc9gbZn3wbqCw== X-Received: by 2002:a7b:c8d7:0:b0:405:3b92:2fed with SMTP id f23-20020a7bc8d7000000b004053b922fedmr13656996wml.26.1696870687296; Mon, 09 Oct 2023 09:58:07 -0700 (PDT) Received: from heron.intern.cm-ag (p200300dc6f49a600529a4cfffe3dd983.dip0.t-ipconnect.de. [2003:dc:6f49:a600:529a:4cff:fe3d:d983]) by smtp.gmail.com with ESMTPSA id d9-20020adff2c9000000b00324887a13f7sm10199828wrp.0.2023.10.09.09.58.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Oct 2023 09:58:06 -0700 (PDT) From: Max Kellermann To: Jens Axboe , Greg Kroah-Hartman , "Rafael J. Wysocki" , Ilya Dryomov , Dongsheng Yang , Dmitry Torokhov , Bjorn Helgaas , Rodolfo Giometti , Alessandro Zummo , Alexandre Belloni , Jiri Slaby , Mark Fasheh , Joel Becker , Joseph Qi , Andrew Morton Cc: Max Kellermann , linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, ceph-devel@vger.kernel.org, linux-input@vger.kernel.org, linux-pci@vger.kernel.org, linux-rtc@vger.kernel.org, linux-serial@vger.kernel.org, ocfs2-devel@lists.linux.dev, linux-mm@kvack.org Subject: [PATCH 7/7] block, drivers: make lots of attribute_group globals const Date: Mon, 9 Oct 2023 18:57:40 +0200 Message-Id: <20231009165741.746184-7-max.kellermann@ionos.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231009165741.746184-1-max.kellermann@ionos.com> References: <20231009165741.746184-1-max.kellermann@ionos.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: B786C14000D X-Stat-Signature: dxw8gxkcy7j6t156bqzx6cbt39nqk8zi X-Rspam-User: X-HE-Tag: 1696870688-731341 X-HE-Meta: U2FsdGVkX1809+XR8KoEAW1rgaPl77bpJyYQ78HxH4p7fEwb2UtWJWLmKvSzxFa4/muz9k9JELME10fhqb50zCcpFjUlwzDc0ycSbkvbgJZNfdj/Stue+JsioOjs8iF8XG7TX5SFN9rJTV2/8DL+ivlTY+6WucjDsHhjYeNCHxA7S/lsbPA27biVWPjxkPSpvQZuMwDU+FIAZLjDJfBpmBo8aHtGL3q1JpxtR6TBMdbk9Zy4Y2xKXiKncyrjXnLrSsbC/tEaS8Z/PGU6ra+5pI5cs611BP2mCZ/bn1vY+K6/pfwDUBzUxNBjLVGMLLJcTOCVOeW4pQZRmJaWEjDIFILyvr+OcL3kBWqPRaoTHlMIovvMSsfx/yF03kUoPuonwCTDrhxPEUok9UdjGfrOB+knsW56wJ2mfWqW0xQxTF20W7xfycgW+USWvEZPBxBJ3Ln/7sZmycQbYZ35SsXiriPp49wIohMW8aOCJmD1rGHYg+0AXm8blu+ltQwKwtkf8a4BSfgWofoRzXYLzhx/5tvFHL1NS6bfR0xaoy1L7ZO5lgVKFo7LY0kZSOLr3fmxRhE26G1lkzgd9s6w8e1xjXT/wcrz6FcbYfaDTxs7o4VA70dBQp33Q+bvpq/oE4qY4qmL4ahWidnu7JhPnPij8w+bnYd37o478rkuQaYkJalHWdcpaXDyaFZJTBNGKLbb+R6yYlnK0YXwuVGt6gqWAhuY7r+jPQBLYcF1g3REvDFuuu1RlLMJp9JAaiX4JBre50LHwUeeSEMq8EmIGtleqkntYO1+Wseu/CtYLSg+7Knp5Rhu82ClK9yU8bMxTS6s0g3OXEBJ5rulDVIonC0d9pKmHy0PLXmvZ7Dv2u96EpDubvgB+6WF0RTjV4HewlhrOUrsxfAnNW3SFX/xfRGPi+FLOfB4IyIx4pex627cyAhpjmsZRSxIIxHoXSSIuzktmxX1HMGR0/KZ1+GGGO3 ObWOPYYW w1/Ogm03/lk5/ze0aSDPeFikiPHFXbvT+HsQ/s0Kfw/sVixqrMvzTV4kkB/haed4nH+m/i/KOrM6VmD9svPKZ1hjACs/tFB8G0kGI2nSdxSd9r9y6guf5VxlR0HlmNxsTs9Hfu4r1rogZs3O1AlxS1hCW6OFNG2fm7//6QXqU3cKsdQ2d4sNStBXVyD/hHvcgX88Lk/lU5ldGPr4aGfmkAq4zmt0mEOIZHhZIbsr/r4B3woZjKY6zPy1bpODSMCXDv3ly69WYcHJno0V//jlLnyuLqNSDL2U19XgjnEvEy8b0Nzb77gQOiZGHtTHXhSxBKywKqI4zBb+O2gA4JIzCp8GRyGOIg5rh9OayNehRmKmOirrRgbxbticbg9/6s/ylPgUiWsYXr9BperqxLCyQAeOaIccbl/j+EXbARduiVV775HKSs3pAaSeK70FhVqUsH8pj+xbGmXLfxZoBIsxK49HApCNtrusMjDY8++76koCq0Y0OTPrxzRaU0Q== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: This moves those variables to the ".rodata" section which reduces the kernel size a bit and protects the variables by putting them on read-only pages at runtime. Signed-off-by: Max Kellermann --- block/blk-sysfs.c | 6 +++--- block/genhd.c | 4 ++-- block/partitions/core.c | 2 +- drivers/base/cacheinfo.c | 2 +- drivers/block/loop.c | 2 +- drivers/block/rbd.c | 4 ++-- drivers/input/input.c | 2 +- drivers/input/serio/serio.c | 2 +- drivers/pci/pci-sysfs.c | 8 ++++---- drivers/pci/pci.h | 6 +++--- drivers/pps/sysfs.c | 2 +- drivers/rtc/sysfs.c | 2 +- drivers/tty/serial/8250/8250_port.c | 2 +- fs/ocfs2/cluster/sys.c | 2 +- include/linux/khugepaged.h | 2 +- include/linux/pps_kernel.h | 2 +- mm/khugepaged.c | 2 +- 17 files changed, 26 insertions(+), 26 deletions(-) diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c index 63e481262336..feea5d68b5a1 100644 --- a/block/blk-sysfs.c +++ b/block/blk-sysfs.c @@ -699,12 +699,12 @@ static umode_t blk_mq_queue_attr_visible(struct kobject *kobj, return attr->mode; } -static struct attribute_group queue_attr_group = { +static const struct attribute_group queue_attr_group = { .attrs = queue_attrs, .is_visible = queue_attr_visible, }; -static struct attribute_group blk_mq_queue_attr_group = { +static const struct attribute_group blk_mq_queue_attr_group = { .attrs = blk_mq_queue_attrs, .is_visible = blk_mq_queue_attr_visible, }; @@ -750,7 +750,7 @@ static const struct sysfs_ops queue_sysfs_ops = { .store = queue_attr_store, }; -static const struct attribute_group *blk_queue_attr_groups[] = { +static const struct attribute_group *const blk_queue_attr_groups[] = { &queue_attr_group, &blk_mq_queue_attr_group, NULL diff --git a/block/genhd.c b/block/genhd.c index d82560a79b04..9fa16e5de6d2 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -1115,12 +1115,12 @@ static umode_t disk_visible(struct kobject *kobj, struct attribute *a, int n) return a->mode; } -static struct attribute_group disk_attr_group = { +static const struct attribute_group disk_attr_group = { .attrs = disk_attrs, .is_visible = disk_visible, }; -static const struct attribute_group *disk_attr_groups[] = { +static const struct attribute_group *const disk_attr_groups[] = { &disk_attr_group, #ifdef CONFIG_BLK_DEV_IO_TRACE &blk_trace_attr_group, diff --git a/block/partitions/core.c b/block/partitions/core.c index e137a87f4db0..463298e26757 100644 --- a/block/partitions/core.c +++ b/block/partitions/core.c @@ -232,7 +232,7 @@ static const struct attribute_group part_attr_group = { .attrs = part_attrs, }; -static const struct attribute_group *part_attr_groups[] = { +static const struct attribute_group *const part_attr_groups[] = { &part_attr_group, #ifdef CONFIG_BLK_DEV_IO_TRACE &blk_trace_attr_group, diff --git a/drivers/base/cacheinfo.c b/drivers/base/cacheinfo.c index b91c31c2a393..3642eed8ef74 100644 --- a/drivers/base/cacheinfo.c +++ b/drivers/base/cacheinfo.c @@ -786,7 +786,7 @@ static const struct attribute_group cache_default_group = { .is_visible = cache_default_attrs_is_visible, }; -static const struct attribute_group *cache_default_groups[] = { +static const struct attribute_group *const cache_default_groups[] = { &cache_default_group, NULL, }; diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 9f2d412fc560..c1718b17b5ef 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -736,7 +736,7 @@ static struct attribute *loop_attrs[] = { NULL, }; -static struct attribute_group loop_attribute_group = { +static const struct attribute_group loop_attribute_group = { .name = "loop", .attrs= loop_attrs, }; diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index a999b698b131..73e616453c34 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c @@ -5246,11 +5246,11 @@ static struct attribute *rbd_attrs[] = { NULL }; -static struct attribute_group rbd_attr_group = { +static const struct attribute_group rbd_attr_group = { .attrs = rbd_attrs, }; -static const struct attribute_group *rbd_attr_groups[] = { +static const struct attribute_group *const rbd_attr_groups[] = { &rbd_attr_group, NULL }; diff --git a/drivers/input/input.c b/drivers/input/input.c index 8c5fdb0f858a..d97126d54947 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c @@ -1597,7 +1597,7 @@ static const struct attribute_group input_dev_caps_attr_group = { .attrs = input_dev_caps_attrs, }; -static const struct attribute_group *input_dev_attr_groups[] = { +static const struct attribute_group *const input_dev_attr_groups[] = { &input_dev_attr_group, &input_dev_id_attr_group, &input_dev_caps_attr_group, diff --git a/drivers/input/serio/serio.c b/drivers/input/serio/serio.c index 767fc9efb4a8..ef82d20572b0 100644 --- a/drivers/input/serio/serio.c +++ b/drivers/input/serio/serio.c @@ -474,7 +474,7 @@ static const struct attribute_group serio_device_attr_group = { .attrs = serio_device_attrs, }; -static const struct attribute_group *serio_device_attr_groups[] = { +static const struct attribute_group *const serio_device_attr_groups[] = { &serio_id_attr_group, &serio_device_attr_group, NULL diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c index d9eede2dbc0e..f2147da6e4a5 100644 --- a/drivers/pci/pci-sysfs.c +++ b/drivers/pci/pci-sysfs.c @@ -455,7 +455,7 @@ static const struct attribute_group pci_bus_group = { .attrs = pci_bus_attrs, }; -const struct attribute_group *pci_bus_groups[] = { +const struct attribute_group *const pci_bus_groups[] = { &pci_bus_group, NULL, }; @@ -647,7 +647,7 @@ static const struct attribute_group pcibus_group = { .attrs = pcibus_attrs, }; -const struct attribute_group *pcibus_groups[] = { +const struct attribute_group *const pcibus_groups[] = { &pcibus_group, NULL, }; @@ -1604,7 +1604,7 @@ static const struct attribute_group pci_dev_group = { .attrs = pci_dev_attrs, }; -const struct attribute_group *pci_dev_groups[] = { +const struct attribute_group *const pci_dev_groups[] = { &pci_dev_group, &pci_dev_config_attr_group, &pci_dev_rom_attr_group, @@ -1641,7 +1641,7 @@ static const struct attribute_group pcie_dev_attr_group = { .is_visible = pcie_dev_attrs_are_visible, }; -static const struct attribute_group *pci_dev_attr_groups[] = { +static const struct attribute_group *const pci_dev_attr_groups[] = { &pci_dev_attr_group, &pci_dev_hp_attr_group, #ifdef CONFIG_PCI_IOV diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index 39a8932dc340..046d6c9944cd 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -182,10 +182,10 @@ static inline int pci_no_d1d2(struct pci_dev *dev) return (dev->no_d1d2 || parent_dstates); } -extern const struct attribute_group *pci_dev_groups[]; -extern const struct attribute_group *pcibus_groups[]; +extern const struct attribute_group *const pci_dev_groups[]; +extern const struct attribute_group *const pcibus_groups[]; extern const struct device_type pci_dev_type; -extern const struct attribute_group *pci_bus_groups[]; +extern const struct attribute_group *const pci_bus_groups[]; extern unsigned long pci_hotplug_io_size; extern unsigned long pci_hotplug_mmio_size; diff --git a/drivers/pps/sysfs.c b/drivers/pps/sysfs.c index 134bc33f6ad0..355ce20b6e53 100644 --- a/drivers/pps/sysfs.c +++ b/drivers/pps/sysfs.c @@ -93,7 +93,7 @@ static const struct attribute_group pps_group = { .attrs = pps_attrs, }; -const struct attribute_group *pps_groups[] = { +const struct attribute_group *const pps_groups[] = { &pps_group, NULL, }; diff --git a/drivers/rtc/sysfs.c b/drivers/rtc/sysfs.c index 9c45c2557e28..c126cb706b27 100644 --- a/drivers/rtc/sysfs.c +++ b/drivers/rtc/sysfs.c @@ -303,7 +303,7 @@ static struct attribute_group rtc_attr_group = { .attrs = rtc_attrs, }; -static const struct attribute_group *rtc_attr_groups[] = { +static const struct attribute_group *const rtc_attr_groups[] = { &rtc_attr_group, NULL }; diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index 141627370aab..7af8f196e00f 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -3187,7 +3187,7 @@ static struct attribute *serial8250_dev_attrs[] = { NULL }; -static struct attribute_group serial8250_dev_attr_group = { +static const struct attribute_group serial8250_dev_attr_group = { .attrs = serial8250_dev_attrs, }; diff --git a/fs/ocfs2/cluster/sys.c b/fs/ocfs2/cluster/sys.c index 022f716c74ff..63e14ef53610 100644 --- a/fs/ocfs2/cluster/sys.c +++ b/fs/ocfs2/cluster/sys.c @@ -31,7 +31,7 @@ static struct attribute *o2cb_attrs[] = { NULL, }; -static struct attribute_group o2cb_attr_group = { +static const struct attribute_group o2cb_attr_group = { .attrs = o2cb_attrs, }; diff --git a/include/linux/khugepaged.h b/include/linux/khugepaged.h index f68865e19b0b..85b442e9e638 100644 --- a/include/linux/khugepaged.h +++ b/include/linux/khugepaged.h @@ -5,7 +5,7 @@ #include /* MMF_VM_HUGEPAGE */ #ifdef CONFIG_TRANSPARENT_HUGEPAGE -extern struct attribute_group khugepaged_attr_group; +extern const struct attribute_group khugepaged_attr_group; extern int khugepaged_init(void); extern void khugepaged_destroy(void); diff --git a/include/linux/pps_kernel.h b/include/linux/pps_kernel.h index 78c8ac4951b5..996db99f983f 100644 --- a/include/linux/pps_kernel.h +++ b/include/linux/pps_kernel.h @@ -66,7 +66,7 @@ struct pps_device { * Global variables */ -extern const struct attribute_group *pps_groups[]; +extern const struct attribute_group *const pps_groups[]; /* * Internal functions. diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 88433cc25d8a..cd1b26075d1b 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -339,7 +339,7 @@ static struct attribute *khugepaged_attr[] = { NULL, }; -struct attribute_group khugepaged_attr_group = { +const struct attribute_group khugepaged_attr_group = { .attrs = khugepaged_attr, .name = "khugepaged", }; -- 2.39.2