Received: by 2002:a89:2c3:0:b0:1ed:23cc:44d1 with SMTP id d3csp334925lqs; Tue, 5 Mar 2024 03:38:51 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCVV3w19huFiANPXcJYzIdu2o7RFRs8F8MdB3pTqRmazWzr+yr8B3wARPYW4SQtyHfQI4BkjO9HPT1ZX7N+uZBmhbAi6YQqOA9r1Qkdgaw== X-Google-Smtp-Source: AGHT+IHGdO3QP/uXQIGXWc8ydLEKTbuW16upEr/fbWnYelBjv6pC8X08uGWRibWGJpkgoSy6lw44 X-Received: by 2002:a05:6808:1286:b0:3c1:f400:7afe with SMTP id a6-20020a056808128600b003c1f4007afemr1715981oiw.13.1709638731097; Tue, 05 Mar 2024 03:38:51 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709638731; cv=pass; d=google.com; s=arc-20160816; b=vFgKlwbJsC7yvxNLeqXfrMwE0BL5DvDfAXM/3vZhiWXRIznu29xl4xiWvafEsxpsc1 J/PgIDGseZkNBy6Iy7/EiL4dPlgd/QNApY/VCP+KkUy5UgNLjpZEGdw56rDdgjouxGcz +9rEcJGLcLZQBLxX4P+JAkAstBh4qYHnq221uqy+ReVb2Y78wl/34rvUcVvibQ23yyio 9i8R4KypjYF6CNiZps8K9NVs6BajUTtIp9mkTOYjxQMMmteDwPbWdyc7jZHDo3lJtKVL hEQ6Ow2s4ITOGbloDNws9SCqf3lUGgk3qqfmjNhdjnt0yTlgVk2JGP6lhPOCeEdFkTU0 2D8A== 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=lpu9eKZ9JGfXXjUBcqDRJO7/y2rbC5c+FnBAtWGE+HA=; fh=J0RFxS3zstakZnzTTxhlgn06k+yJuajZzE821FlRdu8=; b=OoefhXYm1UHgR7O6Qt1tcF1TVCkCVw3FxQTJSocQzo7UDOUysFJpe26pGAG21HW008 MPC21Pdqdo5qiCZndoO+24qgHG0M2ZL3Ru6dzGuFX16pcNuuCLlNk5GRdTfUaSZM0yNi qqu9QwzWM05KPTWNKh9yPx3gL10tUW6bu7hICCeTsxoIOS+OSnlC9eUPCjw1ueXawzIC qIb6W3Zj3g1LHsOaPYMZmSmPtqSAylkatxRFznBlljFRgvT9MhB5TNFcOxoInH6NZXMA EFjqUrpzRd5PxTEP8mt7aK5mHpX/LwbnYYhe43a/1CSnggU+UXL/quM9I/YOOn9LoPMK 0L0Q==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@marliere.net header.s=2024 header.b=LKMrYzZP; 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-92265-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-92265-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=marliere.net Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id m9-20020a634c49000000b005dc9daed2d2si9570364pgl.429.2024.03.05.03.38.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Mar 2024 03:38:51 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-92265-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@marliere.net header.s=2024 header.b=LKMrYzZP; 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-92265-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-92265-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 sv.mirrors.kernel.org (Postfix) with ESMTPS id EEF0D2896DD for ; Tue, 5 Mar 2024 11:29:06 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1FC995C60C; Tue, 5 Mar 2024 11:25:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=marliere.net header.i=@marliere.net header.b="LKMrYzZP" Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (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 BD24A5BAF2; Tue, 5 Mar 2024 11:25:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709637945; cv=none; b=QDRBofV0Y6sqXtvPLvwg1wB20fe/LfljFT4fsB30yCuPp3dXH5k0OrFe/iypWxkKUHzEehCZJfgkqsymTvrbHLbnDRMIk85EslTrysiM5BLJMiG5KLzGgMiQYbi8EAPp161WDVng1k1dyWLuRsTNkt4zK1rU0h4b9Taf/CprKSU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709637945; c=relaxed/simple; bh=6uzJm/imGg803v5QIcaycnL2wxC40fsPWSQzaCQLZxI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=e2ZAMTnTO9g37cF5wQt6MeKuopn4INiAOlc/UNEaLQ7mjBo1vMVxydqYL/s2s2OR8xXfxyQgIHmdePx1EtXJxA/p1l1+Zmj50QRwJkQ5JEs1undmJD2/Kv3W0kGqDEcth0O7jftioeDs1jSFYTFHqXu7ISo2TivcDwLs5mqqeDA= 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=LKMrYzZP; arc=none smtp.client-ip=209.85.214.180 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-f180.google.com with SMTP id d9443c01a7336-1dc0e5b223eso47419515ad.1; Tue, 05 Mar 2024 03:25:43 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709637943; x=1710242743; 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=lpu9eKZ9JGfXXjUBcqDRJO7/y2rbC5c+FnBAtWGE+HA=; b=r5Sss2vj60cngdZOcomhmTHTqhkXsSj2mpVxpi7lc0tEyLbgvWcpt9v/5j8LlN5AWT S8gcXWO+ahuCJoKs0X02UFUKM6L+KYTbvZYiCaUE1iILPFetaNi9TrD42M0RIdv4qhqi WcTIDHBMBDRCwDXUQ14cKDDzgk5YryqVgxI6bbQ7FoshTTDfJPlduyeOCdAj8926ixVe jLiRpaLgGkojcVdv2IWofPkw/rULW+jvmP/hCtqu1dZWxMBJbp9887elxCqUAzqSF8+h +DH4JSAAfTZqHyOX5BNMQXtO0Kr2TwKvNDbdy1jTDyomKMxJNDcRRt9+ji95t0n11dht YOyQ== X-Forwarded-Encrypted: i=1; AJvYcCWaet1ErOC2GYQCGQauTwUWTjEsvz3GeQYPLPRodLXbH1p2JHM88rHUNj0fKAJ5AiV1faICoeVR9El0iqXjHHivgZzw76Y5NCV3WEgU X-Gm-Message-State: AOJu0YxdReGsi6tNrVpERbgXfazViUzxbO7LBekivWFZDBKTL5OPqQhA Wre/KzxMIgi1hdqr7h73Zpk+dl59z+QKiE/jEK/awS+TiEm65maNB/8y/8cZ32mvKw== X-Received: by 2002:a17:902:680f:b0:1dc:ea85:91d3 with SMTP id h15-20020a170902680f00b001dcea8591d3mr1524528plk.69.1709637942895; Tue, 05 Mar 2024 03:25:42 -0800 (PST) Received: from mail.marliere.net ([24.199.118.162]) by smtp.gmail.com with ESMTPSA id f4-20020a170902684400b001dbbe6f1dc5sm10419499pln.40.2024.03.05.03.25.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Mar 2024 03:25:42 -0800 (PST) From: "Ricardo B. Marliere" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marliere.net; s=2024; t=1709637941; 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=lpu9eKZ9JGfXXjUBcqDRJO7/y2rbC5c+FnBAtWGE+HA=; b=LKMrYzZPKI7QifP1FEG5KXjdlh5hHKxoKGH52wdWQIp/QEVwRNLifi0CvqLC9A7UuWvj3t cXbkYrvxDXuBi7sz3gq/O5JqLpepYsrmdLpN39akFAMI+WUtoVz/FniDdbkd4ZYItb/N/e 9JafbgwLrJO5ATXHWevuTHfmiYOcX51fGijHDhSfVYZPNrmMCVMbitZdeURBrKcu8TAPui AqA0Srq9/RrgiUcYDvXs4Wwt6fJDUIKgSASefz2sCi+5J+vbxqbJB1Zi/8FaDbVqB75BU2 vm8Thc9ZpE128SLfKyDXH5R4FoGbHO1xCZ1MUBx0mny9PsFbhKjUgPM2yzxWIw== Authentication-Results: ORIGINATING; auth=pass smtp.auth=ricardo@marliere.net smtp.mailfrom=ricardo@marliere.net Date: Tue, 05 Mar 2024 08:25:22 -0300 Subject: [PATCH 4/6] s390: tape: make tape_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-s390-v1-4-c4ff1ec49ffd@marliere.net> References: <20240305-class_cleanup-s390-v1-0-c4ff1ec49ffd@marliere.net> In-Reply-To: <20240305-class_cleanup-s390-v1-0-c4ff1ec49ffd@marliere.net> To: Harald Freudenberger , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle Cc: linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, "Ricardo B. Marliere" , Greg Kroah-Hartman X-Developer-Signature: v=1; a=openpgp-sha256; l=2407; i=ricardo@marliere.net; h=from:subject:message-id; bh=6uzJm/imGg803v5QIcaycnL2wxC40fsPWSQzaCQLZxI=; b=owEBbQKS/ZANAwAKAckLinxjhlimAcsmYgBl5wEhJ7eCqSFl2hmoQHNCEzs8Mnm6IP4sEcw5/ tJb/CoBiTmJAjMEAAEKAB0WIQQDCo6eQk7jwGVXh+HJC4p8Y4ZYpgUCZecBIQAKCRDJC4p8Y4ZY ppcYD/9GQSO1a6ryaAgMfQT8scaDhaUjqIjLZgSIvZOF5Zmudryc66QOehHiWGovmqSXBT2Zdic FpHrLMDbhkacghCfqcVbRhdFbVMzB9ydLdUQADo2kcU0AvtrKxfEdZD6rcSxJE4zIlOBk0VBMAu H2rJvjFHmskJVhzfX03S+3slH0xY/w8jZhnik7O1MydF1SBsVGI54pYnEAs9gNeaGNKGSDkj5So HQD6wj7qHycfLUxj5cnkCIBV7+l2D30a6wcfcsZXVjrYdDrXXc0smybnExMiLF5Bc8tnnSEDO7E grIyg2fHoEHVcCvzDYFdEX4WoCZTql0SenhxRtxArtIjldASoOpYLTAH7H0JHf8ZBqKVZssp7QR qegFKi5TP2pjRh0Nd1o+4FZXQGRaHjIVLM5tuYFdUyOvtVm69iu3FLPv7YewitOaHF5NCoohotv ESi97kCM+EOJECZeukRU5YJa/39lhTFbZlYpijYduxS+mWVldxIg4nqFWCnOnW7tYXIbB2ATsli aA5mQhoTbmJbtN+Ga3qO9W6sKxmjaLBzr8++CKdnCeXCYCcD1XYsxKhwZWB6kQ9UfztaALgatJ7 7PDWmzsvzkWZOdIfgCq2DtcMy3ylzYblLFuXmCGglyi8IqgUQQtWSsugpY1YFUezGuXHH4A0iez IT/+6JsSeIdIB3A== 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 tape_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/s390/char/tape_class.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/s390/char/tape_class.c b/drivers/s390/char/tape_class.c index 277a0f903d11..eae362bbfbb5 100644 --- a/drivers/s390/char/tape_class.c +++ b/drivers/s390/char/tape_class.c @@ -22,7 +22,9 @@ MODULE_DESCRIPTION( ); MODULE_LICENSE("GPL"); -static struct class *tape_class; +static const struct class tape_class = { + .name = "tape390", +}; /* * Register a tape device and return a pointer to the cdev structure. @@ -74,7 +76,7 @@ struct tape_class_device *register_tape_dev( if (rc) goto fail_with_cdev; - tcd->class_device = device_create(tape_class, device, + tcd->class_device = device_create(&tape_class, device, tcd->char_device->dev, NULL, "%s", tcd->device_name); rc = PTR_ERR_OR_ZERO(tcd->class_device); @@ -91,7 +93,7 @@ struct tape_class_device *register_tape_dev( return tcd; fail_with_class_device: - device_destroy(tape_class, tcd->char_device->dev); + device_destroy(&tape_class, tcd->char_device->dev); fail_with_cdev: cdev_del(tcd->char_device); @@ -107,7 +109,7 @@ void unregister_tape_dev(struct device *device, struct tape_class_device *tcd) { if (tcd != NULL && !IS_ERR(tcd)) { sysfs_remove_link(&device->kobj, tcd->mode_name); - device_destroy(tape_class, tcd->char_device->dev); + device_destroy(&tape_class, tcd->char_device->dev); cdev_del(tcd->char_device); kfree(tcd); } @@ -117,15 +119,12 @@ EXPORT_SYMBOL(unregister_tape_dev); static int __init tape_init(void) { - tape_class = class_create("tape390"); - - return 0; + return class_register(&tape_class); } static void __exit tape_exit(void) { - class_destroy(tape_class); - tape_class = NULL; + class_unregister(&tape_class); } postcore_initcall(tape_init); -- 2.43.0