Received: by 2002:ab2:788f:0:b0:1ee:8f2e:70ae with SMTP id b15csp493744lqi; Thu, 7 Mar 2024 03:31:48 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXIaRKsEB/GVK3orOEL5aWb3/X9QJ1RDcDYgSyyZ3Ak420Wxl74sWgRCnilnabtHVKUbHtGVg0PgrsxfxGpIa48tHaeGw8zxE35Fh6YpA== X-Google-Smtp-Source: AGHT+IEOH6jaOIdkmdoTYlOEnwm2BD2mctsZyWZj5diJCQWQyQNPQNLtQxjRbj0ngMO8cGLUdTYy X-Received: by 2002:a05:6102:c93:b0:472:8dbc:b26b with SMTP id f19-20020a0561020c9300b004728dbcb26bmr9365723vst.8.1709811108001; Thu, 07 Mar 2024 03:31:48 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709811107; cv=pass; d=google.com; s=arc-20160816; b=la5y2ie6FzIWUoATJF6QCC6hht0wtKcbhGQOZiPlGB47j79pStT0cr+3wwI9pfpOev BKyVStdOjpqJX7eAH47hqZ0oGjOTL0+xZJEkeOLavzqSVGuGPUovpDAlSAvGEcDk6v28 E5oYpF76ibyo6hcN5WnJNAdLveAYgH6JQDVZIcCHu+a0NpM7eXz35X9YFdhylDuet/5R xHfM43KYTM2LY1Ycu0ndharw2HCPJIPWDLvliu/kZBRsFvxiD3V3eOQqoQJXFIXF9qyK 55zWqV5F0h0Ym6s0soSg15eBlfDsM8Gte8XNY/0Y0UHubB3v1gp+mzeb++n3tepk5/1n j5zw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :subject:date:dkim-signature:from; bh=gadEZlo5HX6ZvCpKvvvFLxpx/LQrgu8T3YbMhZTBo7E=; fh=PytCrAAQgIOPbtFvXYjEua6RlW7pBq2/EsFyEwcWBZY=; b=TKStHJnawHDbGg9aRiNxPbdiBaDVwQcbFcttG7axAOUEz8XSA/GxziyJBPQIibiPnQ RcluTrkM1oX0dGVVQKudDojEnmX/oZewg7HDkKLK33npTFddP3Y8942Abfbpke7QBl5t wwi3cDpCUUeiF41VRglqKvsm6ZDw1Jow1vSokX6MoQaA6wxNsbDboOylCS2k2VczZ7uV 7yBd7fIaMmjatuxZVxBBgr8vq6c4zqR2mGRwWs4skh2b+nZIrB1g51At+/DArPFfMau7 wO0J5SuC7uUHPICR8naCuO+F3jlNnC6QMrCSt//tXbx48RiUIGe+5va0H/TUTxCKn94h oWgA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@marliere.net header.s=2024 header.b=qwGPOhIu; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=marliere.net dmarc=pass fromdomain=marliere.net); spf=pass (google.com: domain of linux-kernel+bounces-92415-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-92415-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=marliere.net Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id a6-20020ad45c46000000b0068f01e212dcsi17992128qva.324.2024.03.07.03.31.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Mar 2024 03:31:47 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-92415-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@marliere.net header.s=2024 header.b=qwGPOhIu; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=marliere.net dmarc=pass fromdomain=marliere.net); spf=pass (google.com: domain of linux-kernel+bounces-92415-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-92415-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=marliere.net Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id E55171C22A8B for ; Tue, 5 Mar 2024 13:16:47 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 473E08615A; Tue, 5 Mar 2024 13:16:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=marliere.net header.i=@marliere.net header.b="qwGPOhIu" Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (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 BEF6E85954 for ; Tue, 5 Mar 2024 13:16:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709644576; cv=none; b=RmyhFSAhKpfM/bjAwGOy/J3iRy+ca0TnzOluVjvBMVKyigRfpsS3H7mFJoIrGXQyz0sV/iOFubHhBZ11t1tiBzzCmCmOERwZtH2M5HOZU31LdLUGoCmtsA+mK4twRvDQJ5nxwmBno3o2vUz1ywH87syVDXoSTF35eje4aVjS85s= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709644576; c=relaxed/simple; bh=+dZdFqYSeTBhHCI/BvnkTnL3SyFJABSSpjeS4o55OME=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bbDks8RCf9B7Xsbv3Gg2dbTVQkJeH6lnX5HQ8M4QKMTLkGXbN5Fay3mjWHjpWO78smjwX41hwxKpV8QgEcMcWs5GQYmDTzOnJ+k7HOQ7ZJJWrw0Kx4593W9+n8O5g3uwsknV6hF/l68Tr0pam7pK6j10EfKvQ9+WvUWcCDzSphc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=marliere.net; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=marliere.net header.i=@marliere.net header.b=qwGPOhIu; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=marliere.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-1dcab44747bso46247515ad.1 for ; Tue, 05 Mar 2024 05:16:14 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709644574; x=1710249374; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:dkim-signature:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=gadEZlo5HX6ZvCpKvvvFLxpx/LQrgu8T3YbMhZTBo7E=; b=VMHN2nKWqXVLwFFqSrqgP1iCeE9J5aKLK9Hfiz+A2o42351fNOMm0h/9FOYF4NrUZS eQBTI+k9RWCoaoN0MQNgnF35QyPcwhhonNB8rWnDnYZ9bfH5qMCNeK0gh41zOXWJBhF3 5gnXsS4VtJID0YeRWNAZfy9cn6oAJ096z8K7lVO+EUzZ8w+fTDkLtKlE0FOUFTKn5MqD MhL4Oroa094cmoxhcdLEKCjudKphznAaaBexcY9ZiPpMHP9R+VUILSdkvpJEwZgkpzA9 IgsufUU8+fsv11SOTj3Zv7pet7Jmg4v9LhNHFgbHwoAOqOxMzLfaDenOfSzgc4sbrB30 M60g== X-Forwarded-Encrypted: i=1; AJvYcCUqCkJ3VI6vpb1iSMQ/yOxd9O1c0sJEo+7boOxPHR9tZpMafWRv293ANrm4TeIEOA8A0oMyYfXxCv13vNWmhLVfZt6qtCfSCNZcX7e8 X-Gm-Message-State: AOJu0Yw44O4A0du+WvIgQNnLFUp/K+P5xapDBj6gfSC2hvZ3afiYvk2u 827n41T5tJYYTCA9vpYJkkGstvLDuL/JWPnOn4gZP/8qCGemnsOf X-Received: by 2002:a17:902:e74b:b0:1da:22d9:e7fd with SMTP id p11-20020a170902e74b00b001da22d9e7fdmr1972561plf.20.1709644574032; Tue, 05 Mar 2024 05:16:14 -0800 (PST) Received: from mail.marliere.net ([24.199.118.162]) by smtp.gmail.com with ESMTPSA id l15-20020a170902f68f00b001dc96b19616sm10493335plg.66.2024.03.05.05.16.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Mar 2024 05:16:13 -0800 (PST) From: "Ricardo B. Marliere" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marliere.net; s=2024; t=1709644572; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gadEZlo5HX6ZvCpKvvvFLxpx/LQrgu8T3YbMhZTBo7E=; b=qwGPOhIu1JrBU+Ku4MfcnysPIzAdIiHZA4ojvs5dgJoNaxxRzWfO0isA4s23FJ2AvErtvL uMhE6ciJtGgSJaUpjJmegQIqKOMWpsa3Ig4dthh+kNATuAPUly6Pf0xMssF83j4w95mHk2 hdpNwolcz+WnZW3dnZwP8AQxczG8LM00nspFDceybthbEd6XloCup/DnGYhglIB85oIJMN AlX2O54usTDfubIpGeSVQB51ZY8yMIxwEO1/bKdCD+6TfjHKJSXHy/i17GPLBQJbClMv6/ mpsR89ucZhVRjY6+F0xvC9CDjfnnTmh2OcjncrKSYpzBnYo3UowfWvMXyVdfHg== Authentication-Results: ORIGINATING; auth=pass smtp.auth=ricardo@marliere.net smtp.mailfrom=ricardo@marliere.net Date: Tue, 05 Mar 2024 10:15:57 -0300 Subject: [PATCH 2/3] nvme: fabrics: make nvmf_class constant Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20240305-class_cleanup-nvme-v1-2-c707fc997774@marliere.net> References: <20240305-class_cleanup-nvme-v1-0-c707fc997774@marliere.net> In-Reply-To: <20240305-class_cleanup-nvme-v1-0-c707fc997774@marliere.net> To: Keith Busch , Jens Axboe , Christoph Hellwig , Sagi Grimberg , James Smart , Chaitanya Kulkarni Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , "Ricardo B. Marliere" X-Developer-Signature: v=1; a=openpgp-sha256; l=2439; i=ricardo@marliere.net; h=from:subject:message-id; bh=+dZdFqYSeTBhHCI/BvnkTnL3SyFJABSSpjeS4o55OME=; b=owEBbQKS/ZANAwAKAckLinxjhlimAcsmYgBl5xsRk7shI3nEmZOyWDcbHBkqIDALjOp8rSwRS PW9luUHba6JAjMEAAEKAB0WIQQDCo6eQk7jwGVXh+HJC4p8Y4ZYpgUCZecbEQAKCRDJC4p8Y4ZY pokLEAChkBvAmbdjHqdx0mLrG/G/zqnAQyWG16mp9+F/bfOltpDc+KHT6w8q9AlAcWuDi+A0quH Aqb8pXZ1LLW2ljEQ79Uyc2GUZ1RBY+POjejYCmNW5B2yqFb07gbpV4hTbAwIiCIe1CvhiV4BdUt hyZDu0RypQUJKvMmF3yq6KpWnJkHzxJja2OEYWtLg0w+ekav60KkFSiC2AT/hg71jd+LWnYlXAc MUxDRpSjUSwsnUSG8yg/CVdHpxTg4ICOEb2oqEH7vFLUGLK3VkaAUWrxs1pmFVqnCqnJswhWjXT u78DPjsdkeJY2INFFkYoJVsxYgKZjgY2S0ja7YBY/j7ynwpMJE95fU91qgFgtFRpble9PmOtNqH +veGO4HF8hR8Hz+IpCiNQshdJEpb0jCuih1Adnwu3n/3VPDUsUHMfGULc961qqkhGcEws92j9OT B0K5wiox5D5bvBtKGYhUMOFnftMYvB6D0gC/4rYtzlZYb2eKhm6Z2jB4rK5dzL0FfGPAh2R1n6Q Nof4Oyx5x2CNKa0TppQ7zY4GYed6Ltf9tDnNrbgAwT1ZLekAAocUIYQL2UgzYXr3hCmTnlP/xHt d0jhQaiSufymo8Xf7iQJODbUl6YuyeHRQS+Vy48BC2xPqwOhU3JRn8RRwjrmlNZClBpErCZvF8o 8Ad9eeLbDqms8Eg== X-Developer-Key: i=ricardo@marliere.net; a=openpgp; fpr=030A8E9E424EE3C0655787E1C90B8A7C638658A6 Since commit 43a7206b0963 ("driver core: class: make class_register() take a const *"), the driver core allows for struct class to be in read-only memory, so move the nvmf_class structure to be declared at build time placing it into read-only memory, instead of having to be dynamically allocated at boot time. Cc: Greg Kroah-Hartman Suggested-by: Greg Kroah-Hartman Signed-off-by: Ricardo B. Marliere --- drivers/nvme/host/fabrics.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/drivers/nvme/host/fabrics.c b/drivers/nvme/host/fabrics.c index 3499acbf6a82..94e0911c43bc 100644 --- a/drivers/nvme/host/fabrics.c +++ b/drivers/nvme/host/fabrics.c @@ -1318,7 +1318,10 @@ nvmf_create_ctrl(struct device *dev, const char *buf) return ERR_PTR(ret); } -static struct class *nvmf_class; +static const struct class nvmf_class = { + .name = "nvme-fabrics", +}; + static struct device *nvmf_device; static DEFINE_MUTEX(nvmf_dev_mutex); @@ -1438,15 +1441,14 @@ static int __init nvmf_init(void) if (!nvmf_default_host) return -ENOMEM; - nvmf_class = class_create("nvme-fabrics"); - if (IS_ERR(nvmf_class)) { + ret = class_register(&nvmf_class); + if (ret) { pr_err("couldn't register class nvme-fabrics\n"); - ret = PTR_ERR(nvmf_class); goto out_free_host; } nvmf_device = - device_create(nvmf_class, NULL, MKDEV(0, 0), NULL, "ctl"); + device_create(&nvmf_class, NULL, MKDEV(0, 0), NULL, "ctl"); if (IS_ERR(nvmf_device)) { pr_err("couldn't create nvme-fabrics device!\n"); ret = PTR_ERR(nvmf_device); @@ -1462,9 +1464,9 @@ static int __init nvmf_init(void) return 0; out_destroy_device: - device_destroy(nvmf_class, MKDEV(0, 0)); + device_destroy(&nvmf_class, MKDEV(0, 0)); out_destroy_class: - class_destroy(nvmf_class); + class_unregister(&nvmf_class); out_free_host: nvmf_host_put(nvmf_default_host); return ret; @@ -1473,8 +1475,8 @@ static int __init nvmf_init(void) static void __exit nvmf_exit(void) { misc_deregister(&nvmf_misc); - device_destroy(nvmf_class, MKDEV(0, 0)); - class_destroy(nvmf_class); + device_destroy(&nvmf_class, MKDEV(0, 0)); + class_unregister(&nvmf_class); nvmf_host_put(nvmf_default_host); BUILD_BUG_ON(sizeof(struct nvmf_common_command) != 64); -- 2.43.0