From nobody Mon Feb 9 10:41:54 2026 Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) (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 0026B56758; Tue, 5 Mar 2024 11:25:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709637935; cv=none; b=lBt6S1cs+FrTrsnZD8EFcTSTSRtNJvVoPXwR2PFdTktj6iVBXNJQNY8RQoPak0gR2ivN/myLz+PopxPTazow9UfK4T3zz31jkz5x/Bbq7NR99lxhqhcnRkmVked3NG86cx8Z55cuEiLsEf7Z/H8TKCgNj89Y7d+C8Iw7KFSqiiI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709637935; c=relaxed/simple; bh=WGIFWYFh3hQ9VXnIJFPQZwA2uJuy2dcs4lEb7YsAaFs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lWL5zXUIIw/RCP1oWOcA/0QUg32fgfWeTZTOQVCG+cTPTREJfB7KuYIWxHQGIYQTHD5WSivgvQzho9I9Nntq/Isjo/vgIrmNimpHlq+WLfAOhP+u3SAfNSjO8kqIxYT5lscgFeb7a78FBDowg2rhs1ofIuqlt8x6L7okrjvxXsw= 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=YTaQZ8h/; arc=none smtp.client-ip=209.85.210.182 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=marliere.net header.i=@marliere.net header.b="YTaQZ8h/" Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-6e5eb3dd2f8so2032203b3a.2; Tue, 05 Mar 2024 03:25:33 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709637933; x=1710242733; 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=DrnOmqUduKVY9054SARMGgmju4czNVg1PR7unBKC3kc=; b=Ob8gJ5jlMw0+vNnAgvfkAOngZ65ChFVajuyNM3MeugsRJj7xvhhTDXMVGBn8LbZ9D7 3+pkj5orhJ+XWSTqtw+wDpl5wsK9mdhJRAS4qWgQA6sz6/dMzeI3GyBGJMW0QfuIBNTw njNS7BdP0vq/bJAJkeDZIvRjMuZ2xjWVACuLRgZkY4VTB4tbJqf6RNtOoHUDQAl3WJXU 4b4NoCEoEDLA+3C/0OCqHlprGKICDK5zPWmb4a+aIvVwtnmneVHqXZQufUvHdmdF2w/1 nwhstYAyQJRKfb1tChckZjaUPACkWmJLAtvRGhavlXHJln9YFNknudLmjTilBMraU6Xo qG1g== X-Forwarded-Encrypted: i=1; AJvYcCUjas7whmzOqiw2x9Px5JXWZCuMkrTkGGOq6sEs9p+F0Yub/WiT155R5YoUQyVF41QNmELrV+JfFdckwAEPqXi9tl689IJP2GWSWFe0 X-Gm-Message-State: AOJu0YzEpskQQYHkdTrvXvGL7fBEfJSKwfYcvrju5DZyNEzE2wHVbftJ KstgLBqbqDNtUXXFoBn1BwS04d8XnWtA28KJ7VSWDAhYlRuhLnS9hM3QRo4cCLAO3Q== X-Google-Smtp-Source: AGHT+IFIJmVBoT+yA2CUePnH6wIFVqf0RfgtXJnODic5dsn7mvbhUl/zcLllowmj0IICA8AdqXJBOw== X-Received: by 2002:aa7:88c1:0:b0:6e5:5425:d914 with SMTP id k1-20020aa788c1000000b006e55425d914mr12434691pff.2.1709637933258; Tue, 05 Mar 2024 03:25:33 -0800 (PST) Received: from mail.marliere.net ([24.199.118.162]) by smtp.gmail.com with ESMTPSA id i37-20020a631325000000b005dc36761ad1sm8200256pgl.33.2024.03.05.03.25.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Mar 2024 03:25:32 -0800 (PST) From: "Ricardo B. Marliere" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marliere.net; s=2024; t=1709637931; 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=DrnOmqUduKVY9054SARMGgmju4czNVg1PR7unBKC3kc=; b=YTaQZ8h/Vb/fXGX8im75NlizIO9ffQMZtKZjnokc8kyip/LVx8veYTs1MaW89ALt8V8sEp zx0Xe2Y4fcT8QumoUa3FprwVeP87a+PQPjafBap+us+ZvsYosTaQbKdUJxC7N6Zm5AQZ77 Y8YiL25d1SmM4cBEUOSv7nHFAAJqB/ScDH/2rKcf3ad4otLBBYPr7FAYB+0YjyzHWxTNSr JctXmTCWEIYVs3icGC0H4sXYuWXPdeKtNiGPMbcGpmmO0/UNNTVjrWGTS4qSsfVrlu0e2d wdvaUuT82yjp+Vhl3h+KKd+XySb6Az90DMT/KTcRxe/3/NJY5A0GXErTwoPH2A== Authentication-Results: ORIGINATING; auth=pass smtp.auth=ricardo@marliere.net smtp.mailfrom=ricardo@marliere.net Date: Tue, 05 Mar 2024 08:25:19 -0300 Subject: [PATCH 1/6] s390: zcrypt: make zcrypt_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: quoted-printable Message-Id: <20240305-class_cleanup-s390-v1-1-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=4118; i=ricardo@marliere.net; h=from:subject:message-id; bh=WGIFWYFh3hQ9VXnIJFPQZwA2uJuy2dcs4lEb7YsAaFs=; b=owEBbQKS/ZANAwAKAckLinxjhlimAcsmYgBl5wEgURe+g1tpepus6BzVvP0vk980i/IPWroJI /59/F/MGSeJAjMEAAEKAB0WIQQDCo6eQk7jwGVXh+HJC4p8Y4ZYpgUCZecBIAAKCRDJC4p8Y4ZY pogPEACmO8SwFAnU9wgtOI41rvLzi7JyoS05P4lm/jj4lLxAXflnBrnaP8JNAxjMlk0RXAZfm5C vOP/xbV/3LPfLKsB3OKbToIBBtsGPHkpKJPUROzM0YnwZl0fGWjox+y2SqBg8VjKlnTMtEw6tsy A0/Gx6ZtWQgO9Q6v0dC2Jsx+Aq/dxhpXZ3oiACwCHZxAxDl8MwgL8RDIoUjEty+vkEDmteadAZR KflNPnXrhAWy4RobwDHBAqjOXRlzjUNCJi/Fnpt31FcO7N8ffoIR7NyU2/3S5OyaRnDnvjpePHH wZNTqZKe9/SW5pgRF/VRl0v3SZv/yZiOSmwxU65ZD9RUMEfGmuT1Q1LGYLzS26kwbMvkj3hcsqh 4ndSJIGFAceQewVfCd/X14p5lKmgXVqAwd6x+jh2qrrgFUrJ8EkmM74YrBNz2oIU975U47xs1Gx rWjLPcTf165B7R4tyxz6zllhGseEPStyo/egzD59BN8SVzQtdieAN2B7L24niXmWGYVt6nLZBO1 RHQooqtjYrVs83DQv5GNRAzMia6UcaCBkWtLBWARj0bN63esCldbtSQi1nTcMvYjZ4c4CjpXbZ6 Sydfhv8zFnoTW91a4Ab6c8DSIswcR1stpmwUAutB4EHPjPC5k6/OBcxHQ5YMV/K/zSRfTS90/Fc jSWA0BeBaz4/TUQ== 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 zcrypt_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 Acked-by: Harald Freudenberger --- drivers/s390/crypto/zcrypt_api.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/drivers/s390/crypto/zcrypt_api.c b/drivers/s390/crypto/zcrypt_= api.c index e8742757085b..d0358bb6ccf2 100644 --- a/drivers/s390/crypto/zcrypt_api.c +++ b/drivers/s390/crypto/zcrypt_api.c @@ -116,7 +116,11 @@ EXPORT_SYMBOL(zcrypt_msgtype); =20 struct zcdn_device; =20 -static struct class *zcrypt_class; +static void zcdn_device_release(struct device *dev); +static const struct class zcrypt_class =3D { + .name =3D ZCRYPT_NAME, + .dev_release =3D zcdn_device_release, +}; static dev_t zcrypt_devt; static struct cdev zcrypt_cdev; =20 @@ -139,7 +143,7 @@ static int zcdn_destroy(const char *name); */ static inline struct zcdn_device *find_zcdndev_by_name(const char *name) { - struct device *dev =3D class_find_device_by_name(zcrypt_class, name); + struct device *dev =3D class_find_device_by_name(&zcrypt_class, name); =20 return dev ? to_zcdn_dev(dev) : NULL; } @@ -151,7 +155,7 @@ static inline struct zcdn_device *find_zcdndev_by_name(= const char *name) */ static inline struct zcdn_device *find_zcdndev_by_devt(dev_t devt) { - struct device *dev =3D class_find_device_by_devt(zcrypt_class, devt); + struct device *dev =3D class_find_device_by_devt(&zcrypt_class, devt); =20 return dev ? to_zcdn_dev(dev) : NULL; } @@ -405,7 +409,7 @@ static int zcdn_create(const char *name) goto unlockout; } zcdndev->device.release =3D zcdn_device_release; - zcdndev->device.class =3D zcrypt_class; + zcdndev->device.class =3D &zcrypt_class; zcdndev->device.devt =3D devt; zcdndev->device.groups =3D zcdn_dev_attr_groups; if (name[0]) @@ -2067,12 +2071,9 @@ static int __init zcdn_init(void) int rc; =20 /* create a new class 'zcrypt' */ - zcrypt_class =3D class_create(ZCRYPT_NAME); - if (IS_ERR(zcrypt_class)) { - rc =3D PTR_ERR(zcrypt_class); + rc =3D class_register(&zcrypt_class); + if (rc) goto out_class_create_failed; - } - zcrypt_class->dev_release =3D zcdn_device_release; =20 /* alloc device minor range */ rc =3D alloc_chrdev_region(&zcrypt_devt, @@ -2088,35 +2089,35 @@ static int __init zcdn_init(void) goto out_cdev_add_failed; =20 /* need some class specific sysfs attributes */ - rc =3D class_create_file(zcrypt_class, &class_attr_zcdn_create); + rc =3D class_create_file(&zcrypt_class, &class_attr_zcdn_create); if (rc) goto out_class_create_file_1_failed; - rc =3D class_create_file(zcrypt_class, &class_attr_zcdn_destroy); + rc =3D class_create_file(&zcrypt_class, &class_attr_zcdn_destroy); if (rc) goto out_class_create_file_2_failed; =20 return 0; =20 out_class_create_file_2_failed: - class_remove_file(zcrypt_class, &class_attr_zcdn_create); + class_remove_file(&zcrypt_class, &class_attr_zcdn_create); out_class_create_file_1_failed: cdev_del(&zcrypt_cdev); out_cdev_add_failed: unregister_chrdev_region(zcrypt_devt, ZCRYPT_MAX_MINOR_NODES); out_alloc_chrdev_failed: - class_destroy(zcrypt_class); + class_unregister(&zcrypt_class); out_class_create_failed: return rc; } =20 static void zcdn_exit(void) { - class_remove_file(zcrypt_class, &class_attr_zcdn_create); - class_remove_file(zcrypt_class, &class_attr_zcdn_destroy); + class_remove_file(&zcrypt_class, &class_attr_zcdn_create); + class_remove_file(&zcrypt_class, &class_attr_zcdn_destroy); zcdn_destroy_all(); cdev_del(&zcrypt_cdev); unregister_chrdev_region(zcrypt_devt, ZCRYPT_MAX_MINOR_NODES); - class_destroy(zcrypt_class); + class_unregister(&zcrypt_class); } =20 /* --=20 2.43.0 From nobody Mon Feb 9 10:41:54 2026 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 952FB5B681; Tue, 5 Mar 2024 11:25:37 +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=1709637939; cv=none; b=WNw05FE8mPLo8BwU3gRW2oIcbZoTwiKR1rnOs/vZSpozcdB92XYDxuXLclfNfLB2ivdrgSflH6yUwBz/xcBtOsfUezs9y6PSgsdnpToYHaMpvtZguNnlvltjbtJvlKfVuXKNbMNkOiZ5rfwx/t75Gwi9/+2jnPEjftin3n/JKhg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709637939; c=relaxed/simple; bh=5jdxcdryUPQt50XcmDbhimc56nx8adUKkG1k2JFyqX0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GVBAg+bZuo9X1w/Pu0KuQqnJ5WsyHeoi7Lnr/mAJhYAxPVoEbKoJmZ2Y17jgwbnitYlrFtl7YSXCZxBPs9GMEOrXU/iHpWEaKSz7FHwasDyeVsYcMkyXPB4jBTI6Qehh1ZmFKVyxoNEx5nPPvgu9FmFe5z24UONheis+hLBGato= 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=JjfciFPR; 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=marliere.net header.i=@marliere.net header.b="JjfciFPR" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-1dd01ea35b5so15698485ad.0; Tue, 05 Mar 2024 03:25:37 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709637937; x=1710242737; 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=rmH0p0BoItGRwrFW9LqJ5pvEbDOip4sy5bdoMO6KgV8=; b=bXB+u61+8WVR8tC6eEmcA8ywYeJnwTIP10XIqY24205BdVVGYIMe8EG1GIkE+5A7fi X9HSkIm7kV3E4lKeb6JHkVzmwqhiYim6iZYNw79vcsk95Qna7cNJa+Dj9aGw296XohXX 3c2qDd65reT9VrjV7cg+K/z1CCkXZcRCY/Mmalnw3IneKwws0nWPzEwLy64ng45gDUwR 4rSULmnd86zOtsJitMsRpSx5Yl9V2/q+FCk+FgU7+AEtuupS4eTMReNF0/PTLRGeuT6P vRbVAly2cz0/JZdkZt3Uog2B71q+syN+WlOL+yx/ZHJySCbOfSHc40vTDLhXrneXWSYR ty1Q== X-Forwarded-Encrypted: i=1; AJvYcCWRPU3Npa5kA0K0TFsGtsXO7vm5c3T4r2aFGp1fxzyWs3rF0tFT2d/nU9X7tb/MoOQIILqVEKFMcQ3ux+VKy1Key0WOfVLnp/sJurNE X-Gm-Message-State: AOJu0Yxxn3fv0zHY9eB/FDn/cZDovPGcWXpaGu2K2fMIg3enUOypCEIg udDtvdve9jH02yxbjsOMgUl+ZqIylav34vwffugsMKaUzehykbyU/LjEa1I8NNr8Qg== X-Google-Smtp-Source: AGHT+IF2sYYr1hfNWL9HIGyRf+fqwHUBIuXhHwSjLYG+ifOjEx61TPyHKBOt8ZUL6DGDWQc5ZCrVpA== X-Received: by 2002:a17:902:778f:b0:1db:3618:fed5 with SMTP id o15-20020a170902778f00b001db3618fed5mr1161034pll.53.1709637936991; Tue, 05 Mar 2024 03:25:36 -0800 (PST) Received: from mail.marliere.net ([24.199.118.162]) by smtp.gmail.com with ESMTPSA id n18-20020a170902d2d200b001dca3951a39sm10289044plc.81.2024.03.05.03.25.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Mar 2024 03:25:36 -0800 (PST) From: "Ricardo B. Marliere" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marliere.net; s=2024; t=1709637934; 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=rmH0p0BoItGRwrFW9LqJ5pvEbDOip4sy5bdoMO6KgV8=; b=JjfciFPRYjm9xl6rUiLde6eaS+uxsTdCum7mWTAyJUKVoOx+5nsuD31VVH7enmpiWpdCLt zWmXhFhUov0FGG0zG9KoN2K1ig62Gj+ET6Z0K55PtD66eWeoB1igyldBVw1N5FhEXK+3AL 0MR6AHn72RqxlswLRhRVvtgVUggT+j5mmP+Y5EQ2+vNSIahCuS55G+PP1iU5z+UcT0vR3y fcdgK2gPfE1dN51qu9CN+WZOedJpJrwHc9ek0yWcJIHYLmzNSfL1alCUsp4ZTsKfD8Qbio 2ZBjMTV1akhwpBeJyP3bPEeOQ++7zSR11w8kkTqH6n8bfwyUcyOBa3WaRXK0vg== Authentication-Results: ORIGINATING; auth=pass smtp.auth=ricardo@marliere.net smtp.mailfrom=ricardo@marliere.net Date: Tue, 05 Mar 2024 08:25:20 -0300 Subject: [PATCH 2/6] s390: vmur: make vmur_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: quoted-printable Message-Id: <20240305-class_cleanup-s390-v1-2-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=2737; i=ricardo@marliere.net; h=from:subject:message-id; bh=5jdxcdryUPQt50XcmDbhimc56nx8adUKkG1k2JFyqX0=; b=owEBbQKS/ZANAwAKAckLinxjhlimAcsmYgBl5wEgWrJwe+gjxP9WvDL+0ojvNtDA64mICySo7 xSYP/EzlK6JAjMEAAEKAB0WIQQDCo6eQk7jwGVXh+HJC4p8Y4ZYpgUCZecBIAAKCRDJC4p8Y4ZY pg22EACyi6UUes77n6E4fr2mkom2tqDEec1RkKwNUURuzC4HBDC6Geb3LR9o0307UelSisCzwkv XPGY3Cn4jBPel+R925mDpqfDDBx0vj7rmxFVRr4GeirkLBHj9i3qngbRAzgE0y9s8YGE5nieBaa 7JoqhNk296IITWhGqL3OrIsWGizyjoF3hkS5cfyy6LneSAfn4T5COeViP8rlkSEuGDsQIKm7DTH sT5SGVSPlqjtCSGNEQ3BjOANmjNerBEsZNvD6SwcKl6CljkoYAonuktWsHVfvNnIBOl5foEKfU2 /5ITAFjXftwq6tbLVmFCK5tj+t0bzrhkkn1oDWbYL7FkphTO38gtIwUXPojXFS5NXKOW9xIMbYB 58xkCvBkIUL5MeA1NKPIbG1PpNyomTtjsviS7LfIe0zKP/3w4wcyqg7U0yhuSXAx29fRIrXTVzD h/gbrrJSE3RS4E2OydAGUq28zXZanaWvYRtKZZEz24veioYuUlhvGbm/eq2vFTHmiYULhFxMGfN FRTyQNH6nZnZNp/e2WUwbWM7UD+0fdN5m7rgpOrKEoT/cb4TcWKZyRjl444+4cEAdbuf9QGtiiw C5gKUGFpUKW5v5hwjtcotep/ik5RhMRKRa1qwIPZswysZhAl5hbPgtQxPohpVP86aeJdK2Y7Eio XBYLX2tKaCTIX5g== 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 vmur_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/vmur.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/s390/char/vmur.c b/drivers/s390/char/vmur.c index 1d17a83569ce..47bfb50f8eb1 100644 --- a/drivers/s390/char/vmur.c +++ b/drivers/s390/char/vmur.c @@ -48,7 +48,9 @@ MODULE_DESCRIPTION("s390 z/VM virtual unit record device = driver"); MODULE_LICENSE("GPL"); =20 static dev_t ur_first_dev_maj_min; -static struct class *vmur_class; +static const struct class vmur_class =3D { + .name =3D "vmur", +}; static struct debug_info *vmur_dbf; =20 /* We put the device's record length (for writes) in the driver_info field= */ @@ -912,7 +914,7 @@ static int ur_set_online(struct ccw_device *cdev) goto fail_free_cdev; } =20 - urd->device =3D device_create(vmur_class, &cdev->dev, + urd->device =3D device_create(&vmur_class, &cdev->dev, urd->char_device->dev, NULL, "%s", node_id); if (IS_ERR(urd->device)) { rc =3D PTR_ERR(urd->device); @@ -958,7 +960,7 @@ static int ur_set_offline_force(struct ccw_device *cdev= , int force) /* Work not run yet - need to release reference here */ urdev_put(urd); } - device_destroy(vmur_class, urd->char_device->dev); + device_destroy(&vmur_class, urd->char_device->dev); cdev_del(urd->char_device); urd->char_device =3D NULL; rc =3D 0; @@ -1022,11 +1024,9 @@ static int __init ur_init(void) =20 debug_set_level(vmur_dbf, 6); =20 - vmur_class =3D class_create("vmur"); - if (IS_ERR(vmur_class)) { - rc =3D PTR_ERR(vmur_class); + rc =3D class_register(&vmur_class); + if (rc) goto fail_free_dbf; - } =20 rc =3D ccw_driver_register(&ur_driver); if (rc) @@ -1046,7 +1046,7 @@ static int __init ur_init(void) fail_unregister_driver: ccw_driver_unregister(&ur_driver); fail_class_destroy: - class_destroy(vmur_class); + class_unregister(&vmur_class); fail_free_dbf: debug_unregister(vmur_dbf); return rc; @@ -1056,7 +1056,7 @@ static void __exit ur_exit(void) { unregister_chrdev_region(ur_first_dev_maj_min, NUM_MINORS); ccw_driver_unregister(&ur_driver); - class_destroy(vmur_class); + class_unregister(&vmur_class); debug_unregister(vmur_dbf); pr_info("%s unloaded.\n", ur_banner); } --=20 2.43.0 From nobody Mon Feb 9 10:41:54 2026 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (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 781F75BAE1; Tue, 5 Mar 2024 11:25:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709637942; cv=none; b=uZGW60l9taysni5r9c+uO5xeyOCXXYJmyu68wuxmF99Bvgg4tzD1U60RcIVrFH2TW2algAF46azA1mwpsNV/k1+YH2x1pFEP2bbBlYR9KWjdwUimcpiF9T9TrqVBnfTOnjfTmJOFaKrGgNzWvjFKQ7zEBAwGVHyIFO7Tb9ODTqg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709637942; c=relaxed/simple; bh=5q6fWGzJDF4Cr+t+Q4ZtDga0mNsyD0fKUCudKOgxwSg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oBu6DAyk4YyN29tSkb2KMxId/L6PfcocYJchHpZjmfNfiVCh6kKSb9xVRrVQcPRbhgLGk67jGRdTN14hpWRP0raJnE1WxINMO5NwPL/OJxHyxUg2xalkpIJkBFnLsLNE8XMBprqno9SZHrxQneObc0DiTkocTjxEtkr8C4GmW6s= 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=dk9g9bQl; arc=none smtp.client-ip=209.85.214.178 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=marliere.net header.i=@marliere.net header.b="dk9g9bQl" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-1dca160163dso53284525ad.3; Tue, 05 Mar 2024 03:25:40 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709637940; x=1710242740; 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=WOWeUV5eu7K7ADBYbYMGJ4edFmuHXtVaBUr5dj3jp4s=; b=NxiwUKhvqkatFH5KmljfWAnTtF2L+PlYf5q91Dq5SJCCL0Imx6HD0kn2jEcpHH2xE3 PRuAaTxYIVUzCGR4MhnrcI9tpQBVtEPY9LzetoqMfz3M+hkVqKEJigKYCpmbvxV4XGih mmc+/G1KUxlOokBLYRaIuj9kjzn3+E4Njc2ASQ6K7XxZeSfA/1xj/Bk8GjQBOXJ9Ywnc DI0N7mMvPKMCnF4fYD4mm58sRMFVVBMLYeBl6NC/gY6HHrndFojr2uh4qCWLC12gYX3q 1G3hqFru0xZiPFnkd74fzMUIw1DCINwv/K5OlhRSPbC+YffPHyBrYHsmirIavW0SIDqO p52A== X-Forwarded-Encrypted: i=1; AJvYcCW/Acg0/VBXYSxsA5XEH0TUpq1VFrm1YmEWMCf9DlacguT/cylfwLanwFiWnM0zFRg7c77bYbU7B+lytt/iQHW/aL221mhlOic5+Oxb X-Gm-Message-State: AOJu0YzCjaVh31uSBRkG1YQuqxOiocc7WgakrxGaDnjAu5+XnUKbCmeE Vz1PaHe+j8LJsSSk8f3QbcO8c1iTaQEAdV4sl20P/Hxsle6W6IUM X-Google-Smtp-Source: AGHT+IGUXpFr59sW4lncORlpbNGK+lRQRRG81LRGJDbmyPP/RxTAhbYFiNzqksv7c7m3B2/sPlUFog== X-Received: by 2002:a17:902:bb8a:b0:1dc:d515:79c8 with SMTP id m10-20020a170902bb8a00b001dcd51579c8mr1263539pls.23.1709637939866; Tue, 05 Mar 2024 03:25:39 -0800 (PST) Received: from mail.marliere.net ([24.199.118.162]) by smtp.gmail.com with ESMTPSA id ld4-20020a170902fac400b001db5b39635dsm10339272plb.277.2024.03.05.03.25.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Mar 2024 03:25:39 -0800 (PST) From: "Ricardo B. Marliere" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marliere.net; s=2024; t=1709637938; 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=WOWeUV5eu7K7ADBYbYMGJ4edFmuHXtVaBUr5dj3jp4s=; b=dk9g9bQlFxSqOkU79It4v/sOubmLOtz/PRhwBH3x9RKev0kHkvhGDVTq1NuUAUMhlDDGpt KRxNl+b81YXfPXpNOWs3NuyUiBUSUFmlQiJjMMxbCoB4KlWfBDxXgufsprzp6mNu55IBSN HRueo18gcK8gHB4IOjTtZj4WVVEaSqjG4WyJyt75D/ZfrS2ajIiL7PixzgVVahv03qNqK6 9qnY6iYi4faPe7iIDd14yzIRGi4IHYqclPaMJd25GV4Qy8XTYonJ9w4YV4vkurIw8qXlbN D8inmjE3tM88xt/V6qfpt0msqeiRsMl9bVNm1bBxZoTeo8Rf4EaYe9Z++hmm3Q== Authentication-Results: ORIGINATING; auth=pass smtp.auth=ricardo@marliere.net smtp.mailfrom=ricardo@marliere.net Date: Tue, 05 Mar 2024 08:25:21 -0300 Subject: [PATCH 3/6] s390: vmlogrdr: make vmlogrdr_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: quoted-printable Message-Id: <20240305-class_cleanup-s390-v1-3-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=2522; i=ricardo@marliere.net; h=from:subject:message-id; bh=5q6fWGzJDF4Cr+t+Q4ZtDga0mNsyD0fKUCudKOgxwSg=; b=owEBbQKS/ZANAwAKAckLinxjhlimAcsmYgBl5wEgkKSV6XKyqjkv7lQOi6TINRqNdWkXRt6xY KBRZVz9tU6JAjMEAAEKAB0WIQQDCo6eQk7jwGVXh+HJC4p8Y4ZYpgUCZecBIAAKCRDJC4p8Y4ZY pqiaD/4zbHEgwAVb8nVChiUJIYPSKp8ahQvpA1GNWHYfftzq+PQI6R0lS0v1i0T3GlEuiRXGkbw 1ewhimZ5uflRulGmJRe4znpwaDKL9S8siL04TUPnuHLsLxPxLRbaFKbNEDbD3KgoJb3QX6qdgpz 2xuRYJWIiygGlg1atZehftU2gudqDS4pAEb8JSQUT+Ydgz+e3TIcIBdy2U3O7h7Z92P2I6K5yeY TOr00+Ky2XZjQvqph6fiiWpvrCHJIPHr3IoVGPGJGoyMfVolN8pjvv5Bwv4MYz5pDHKgc+Y/bXw RIVHGG7KDxox/He8MhyzWNhq8+/fDiZ2l30xlFtEo1CRxU1ljS71/y0N45moNt9SpULhMnc4pQc Sx71nKJ0RDzhvouOlmZYkjh8OZwEj7N3xtl0w0knTdin7Hi+/lbWe7SsQ8fhAGAFt04oF+7s29h Clrjr271vQXdd2rVveNTBVYQuo9xoOpw8pYUdG4DJE0q5HUAcELyoQxwzkpAEF3EUWfDt2WWZWT Q9H4/OjMMdbjBluSS3GejgtS6ELzq4nMEm4iGzT5iewvDXdaNJ2ZWzqlC+bKoEnddmITSE6HTWJ adYchmfBk6hfNi9r+OmH5YG2EUKSf14OZZVv1H2iDLAlLnq5d+VKY0qTCFCDtC1VOcuunUS3jQo 5rWtFf//xy6aKiw== 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 vmlogrdr_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/vmlogrdr.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/drivers/s390/char/vmlogrdr.c b/drivers/s390/char/vmlogrdr.c index 6946ba9a9de2..063d8f3565c9 100644 --- a/drivers/s390/char/vmlogrdr.c +++ b/drivers/s390/char/vmlogrdr.c @@ -679,7 +679,9 @@ static const struct attribute_group *vmlogrdr_attr_grou= ps[] =3D { NULL, }; =20 -static struct class *vmlogrdr_class; +static const struct class vmlogrdr_class =3D { + .name =3D "vmlogrdr_class", +}; static struct device_driver vmlogrdr_driver =3D { .name =3D "vmlogrdr", .bus =3D &iucv_bus, @@ -699,12 +701,10 @@ static int vmlogrdr_register_driver(void) if (ret) goto out_iucv; =20 - vmlogrdr_class =3D class_create("vmlogrdr"); - if (IS_ERR(vmlogrdr_class)) { - ret =3D PTR_ERR(vmlogrdr_class); - vmlogrdr_class =3D NULL; + ret =3D class_register(&vmlogrdr_class); + if (ret) goto out_driver; - } + return 0; =20 out_driver: @@ -718,8 +718,7 @@ static int vmlogrdr_register_driver(void) =20 static void vmlogrdr_unregister_driver(void) { - class_destroy(vmlogrdr_class); - vmlogrdr_class =3D NULL; + class_unregister(&vmlogrdr_class); driver_unregister(&vmlogrdr_driver); iucv_unregister(&vmlogrdr_iucv_handler, 1); } @@ -754,7 +753,7 @@ static int vmlogrdr_register_device(struct vmlogrdr_pri= v_t *priv) return ret; } =20 - priv->class_device =3D device_create(vmlogrdr_class, dev, + priv->class_device =3D device_create(&vmlogrdr_class, dev, MKDEV(vmlogrdr_major, priv->minor_num), priv, "%s", dev_name(dev)); @@ -771,7 +770,7 @@ static int vmlogrdr_register_device(struct vmlogrdr_pri= v_t *priv) =20 static int vmlogrdr_unregister_device(struct vmlogrdr_priv_t *priv) { - device_destroy(vmlogrdr_class, MKDEV(vmlogrdr_major, priv->minor_num)); + device_destroy(&vmlogrdr_class, MKDEV(vmlogrdr_major, priv->minor_num)); if (priv->device !=3D NULL) { device_unregister(priv->device); priv->device=3DNULL; --=20 2.43.0 From nobody Mon Feb 9 10:41:54 2026 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=marliere.net header.i=@marliere.net header.b="LKMrYzZP" 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-Google-Smtp-Source: AGHT+IHzqm8sVuSg6jCxTmyUG2oJVBIjKYp2V1i94WEi9onBAmWc/EFCX3VXa8G8Q0fS/RkXv3NfXw== 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: quoted-printable 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"); =20 -static struct class *tape_class; +static const struct class tape_class =3D { + .name =3D "tape390", +}; =20 /* * 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; =20 - tcd->class_device =3D device_create(tape_class, device, + tcd->class_device =3D device_create(&tape_class, device, tcd->char_device->dev, NULL, "%s", tcd->device_name); rc =3D PTR_ERR_OR_ZERO(tcd->class_device); @@ -91,7 +93,7 @@ struct tape_class_device *register_tape_dev( return tcd; =20 fail_with_class_device: - device_destroy(tape_class, tcd->char_device->dev); + device_destroy(&tape_class, tcd->char_device->dev); =20 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 !=3D 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); =20 static int __init tape_init(void) { - tape_class =3D class_create("tape390"); - - return 0; + return class_register(&tape_class); } =20 static void __exit tape_exit(void) { - class_destroy(tape_class); - tape_class =3D NULL; + class_unregister(&tape_class); } =20 postcore_initcall(tape_init); --=20 2.43.0 From nobody Mon Feb 9 10:41:54 2026 Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.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 DB83C5C8EB; Tue, 5 Mar 2024 11:25:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709637948; cv=none; b=ovO4QbMLYMamO0vIzdumczBurgNYrjAnciquTsUky7dvs87GGZM9W3GfWRLfAvLyM/VIGqhhGPNQ4ftdit54DrZOqGj/QWJWNn1SwDLyYzR8b/SnbtHteSepCGPYmx84ughclPSQQUlKcjqa47BRxxBhH/z7GpF4cpD96hFpXHI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709637948; c=relaxed/simple; bh=8qQ0SeNJhXlABLurzglboJwjavq1YAoQO65VHoOV/Gg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=C3XxMJucbXUnEBRODNEHt9mSdzoiGn08lokoz7l6WNrwUZwOLfyk7IhUqyyZ46mYAUiByZXBFTo+4vhoBKxWhx7fgNeEdjQb8HSX0LK+TSvDiceKQP55/bcAfKk06BmDNAbrEA/NUWh8/410/QF3gNdPPvepQY821FQh0LpyjoA= 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=W6yejpJM; arc=none smtp.client-ip=209.85.215.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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=marliere.net header.i=@marliere.net header.b="W6yejpJM" Received: by mail-pg1-f180.google.com with SMTP id 41be03b00d2f7-5c6bd3100fcso3947357a12.3; Tue, 05 Mar 2024 03:25:46 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709637946; x=1710242746; 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=EEbIJfXwtU/2x/nSMLjhop89lagE2IVT+gG/0cVmfiI=; b=q7SfLX99/7RzHkMdPYiw6BnYAH+Nfc/r2ZeK3Y7HrXoSP2dMV5CgQxJZqYh0JMncou R4YBtibA8QYfcLqHvfam+lJ8nP7GtESRSghIqIwI+qjfdvL2R4rAF206iMSxlaZuR2+C jb94QTbX/mhBsNJfqSjARK5SYfv6sJcSFRlGiuS78QDeAQ0qAb79WnHAEKsH7vmKIfRD wpqEv09wmuW/RiJV+ZzU8uWinRtRxjYRKLYSl4dm+TYiuqSKQJ6pWsqVVCKHf6UepODk hT4sTl8v40SHxeTFeCPJOTVanEdppt5SMI+wqpDnfET4WunwmU8vpeFzHKugm8ii0LeY Ck6A== X-Forwarded-Encrypted: i=1; AJvYcCVWmqhAvFTzlkbYDsLPSScHMIZAXOLl6J+NXmN10lfNOMLbzHdm7rTv9laA72X0w4YE2SDv4AwfhKDPN3NIv5jJY7flaf0AeIQj0Gtp X-Gm-Message-State: AOJu0YxmT8TDbemSL7jThqkSgSTZ7u+Wm1rPQfb5ihZv651dLgpigiVp q/5PTkuSIIXCfz7NDd6B/Y2jT/zprQTypjgqNkt31paVMElAIZmYHSVqnrPoKRHqRQ== X-Google-Smtp-Source: AGHT+IH7Kbem7StIsdbFa6w191ZdCQkGrB2O3Z1xiGxhezXqMz24LE3U+JQU0MAihxPMQVhX7qRAqw== X-Received: by 2002:a05:6a20:8c1d:b0:1a1:4de9:f2db with SMTP id j29-20020a056a208c1d00b001a14de9f2dbmr999195pzh.58.1709637946073; Tue, 05 Mar 2024 03:25:46 -0800 (PST) Received: from mail.marliere.net ([24.199.118.162]) by smtp.gmail.com with ESMTPSA id cp6-20020a170902e78600b001dd1d7bc0f7sm3075933plb.154.2024.03.05.03.25.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Mar 2024 03:25:45 -0800 (PST) From: "Ricardo B. Marliere" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marliere.net; s=2024; t=1709637944; 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=EEbIJfXwtU/2x/nSMLjhop89lagE2IVT+gG/0cVmfiI=; b=W6yejpJMra0JsezaYgBcENuFaZecTOZu+ks3h6FcXg8dJvpwm6peXURJ8YAat+N9fPTahx 6n7JMuTRzqrQ9e1RO8YTKCvzfHy+NkRWwQyEaxc4bTjwaJTo+mKeaHXp+K9L+9qhW77DFh TW6UlodstNf84GuLOKI/0r9cJkq9qYBN3To2uOwkgc85GMq+OXq83VDWJ81kCkuR7nkToG ZGSpi8CbbBFdKQ/9G1tP8zSlQtCEfkVeZdT8Fydwpysu21/Z2T1sKQXNZtHsCIlnxpOWgL R+i0W/uHj62wwRXy6MjV5Wh8ZKBCjPQfVL9lUjtSQL1HTJMJnJt+oXmKbd+THg== Authentication-Results: ORIGINATING; auth=pass smtp.auth=ricardo@marliere.net smtp.mailfrom=ricardo@marliere.net Date: Tue, 05 Mar 2024 08:25:23 -0300 Subject: [PATCH 5/6] s390: raw3270: improve raw3270_init() readability 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: quoted-printable Message-Id: <20240305-class_cleanup-s390-v1-5-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=1512; i=ricardo@marliere.net; h=from:subject:message-id; bh=8qQ0SeNJhXlABLurzglboJwjavq1YAoQO65VHoOV/Gg=; b=owEBbQKS/ZANAwAKAckLinxjhlimAcsmYgBl5wEh2NOz7pWOq7WbNJsrESRcWBsMLx16YgEnm H+lz/QHfyaJAjMEAAEKAB0WIQQDCo6eQk7jwGVXh+HJC4p8Y4ZYpgUCZecBIQAKCRDJC4p8Y4ZY pukHD/4h9dGin5s00Y2J8kR47uWNw/EvFTQc5yykanYBdx8WGAQMPDyu/baEFb7UAw7+jXalU1p tTkoakyCGBkXs0UZ/87R7GDkf2aJ+Ba5BStZiR1E/b92MX/FtUMi5rcTYMcxfgTKH7Z46DBPDvE MpK2NaJCvoIbXDiE4g0ibFjcqbhmciDp2OCYqx1E/VzdYbfcAEbw2ceAMSbZsm2kgD2sDGjvLLt 4Px33O2VL/kiuYCZIAGzTZEafgpAqFoApFoIFmwNdiLrkMF0t5OlPAm3VDO5yEss3CQwaMkvU0r USnkmCoqNRNk5CmL0qaf8NjrQ7KFfh/e5d/jMA6RZD/BCFL32Ur0lpoGHMPLvhXgv54Y25iKB3N kfCDE3BR+5i/GRINscLG2xcXVnTgK2Jhk51/aUieYglNQCA1uHGWxo/VGCCD+mYR6aQYEd+KBnP Rs1ZGWRQz/7edpgDvWOVW44MXHBY8vRgyaxZTj5z26LIidQjAf6IUfsShWitLQ0v+6UJbw/W/1R CQbeMLur4xjZsZ+XDyeHAKkNMaFdnKZz2ShdhfKGQgn/oME3nIMz+K/LPBnub0DTJZsUVJt5CZh kCxL5ezQvwAoF7MVQIdQctEcBtr3olT6gSHLPzhLLqki3Y4TvJt3H4xJRrJZiYPE3TknxxOO3jn kpNpScjFCETJr3w== X-Developer-Key: i=ricardo@marliere.net; a=openpgp; fpr=030A8E9E424EE3C0655787E1C90B8A7C638658A6 Instead of checking if rc is 0, check whether it is non-zero and return early if so. The call to class_create() can fail, so add a check to it and move it out of the mutex region. Cc: Greg Kroah-Hartman Signed-off-by: Ricardo B. Marliere --- drivers/s390/char/raw3270.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/drivers/s390/char/raw3270.c b/drivers/s390/char/raw3270.c index 7115c0f85650..acc4cb37a9d8 100644 --- a/drivers/s390/char/raw3270.c +++ b/drivers/s390/char/raw3270.c @@ -1316,17 +1316,22 @@ static int raw3270_init(void) return 0; raw3270_registered =3D 1; rc =3D ccw_driver_register(&raw3270_ccw_driver); - if (rc =3D=3D 0) { - /* Create attributes for early (=3D console) device. */ - mutex_lock(&raw3270_mutex); - class3270 =3D class_create("3270"); - list_for_each_entry(rp, &raw3270_devices, list) { - get_device(&rp->cdev->dev); - raw3270_create_attributes(rp); - } - mutex_unlock(&raw3270_mutex); + if (rc) + return rc; + + class3270 =3D class_create("3270"); + if (IS_ERR(class3270)) + return PTR_ERR(class3270); + + /* Create attributes for early (=3D console) device. */ + mutex_lock(&raw3270_mutex); + list_for_each_entry(rp, &raw3270_devices, list) { + get_device(&rp->cdev->dev); + raw3270_create_attributes(rp); } - return rc; + mutex_unlock(&raw3270_mutex); + + return 0; } =20 static void raw3270_exit(void) --=20 2.43.0 From nobody Mon Feb 9 10:41:54 2026 Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) (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 1383E5CDC4; Tue, 5 Mar 2024 11:25:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709637951; cv=none; b=mqugLtr0DjHMBGr4RAe2P8Iy3qK5snScClIDAvED5jikfemZJM2TtzxGeervNyfwBbAoXnFs5BP3JTgEbhKnFe24V/wYW9h4WnPLO2tCU6xOdKczpDf2cRiAfEF3kvAu3oVPmM2OqYua77R1Tz/B9BG45e2lxzTQspD/hrzJk/Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709637951; c=relaxed/simple; bh=fccvHDlP2wGkwZu2PUac398IZ8tFoVKsOKr4Pv++MoI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VDJC+W29WQrt6rVvWtptKJN8VtspJgOMukvdLRs0sz2vROrQRll71VVzL5XdIV7S+yfPDffyHEFRyd4feRGId+X8KawLxtvPGgPU0rFsiHOt3LRXTZqoH4djHoWh+J/gxPniQJVcuf3xxXxtm13WEIp4eFcCPuUtSKwdHoU6lko= 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=D4MduaE/; arc=none smtp.client-ip=209.85.210.178 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=marliere.net header.i=@marliere.net header.b="D4MduaE/" Received: by mail-pf1-f178.google.com with SMTP id d2e1a72fcca58-6e56787e691so4499182b3a.0; Tue, 05 Mar 2024 03:25:49 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709637949; x=1710242749; 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=48ofsqw6uAaMpuoCiWg7AyYGybcH87o6g1a3Dbc0CJY=; b=M0gjPJh8t6a9t5Uo7aEQWpU1oQGcXv9rtQUodCaP1fyZoj4UB9TNun0y+9x/2KnDxl eiNh5BvjZrs6gX5j/K9c0UaUL2kPmJTtc/XTlRzN0LXhACv2KXekzcTLfBXBCGj1AHBt GMU7hsI+F5/1bF36fb7XPOo2ytMbAcQnX4+BS8qBk0qONoVy3rb9EpGEru8K6QpNPAGj C4ggLxh5fG7HzZe3Tj/xveGSCeWulG/08MnlbDjbCRYgtVRcHGacBdhvySfaQS9Dw7fR 5qphlU1RhLdy/hKegKDHY+VG25V+Ot4oGZXv6mCtXv35UCjn4cLoLStkw7fCt795t9XO 3l6g== X-Forwarded-Encrypted: i=1; AJvYcCXsRDIIYiWLZUrz0lKYvj/BvFZ3I+lHnWfDpsF2yODpzNYGcEPGPxL7TVFHL60zv3o8+CVp/cs9YgvqBz1SyOlrTSiuGfzACa5ixVB2 X-Gm-Message-State: AOJu0YyX8PAe13swBJoiUV2TEIaJE9lD5bSuYsNwqrdC7/1yPxDqoxtr waWSBA+2WIW0Cm1//kfTQBH0WjhbRs3E9R0MW+mtOXe/B5oEP5ef X-Google-Smtp-Source: AGHT+IGf03T5X1314IqmwZvRjWw4z3cLwUPQZU3un2nNv2kbDfpL1iZLCpIpwfOKR4nuV6rnfD7mvQ== X-Received: by 2002:a05:6a20:158b:b0:1a1:e41:3edb with SMTP id h11-20020a056a20158b00b001a10e413edbmr2105606pzj.11.1709637949238; Tue, 05 Mar 2024 03:25:49 -0800 (PST) Received: from mail.marliere.net ([24.199.118.162]) by smtp.gmail.com with ESMTPSA id w17-20020a056a0014d100b006e58da8bb6asm8093787pfu.132.2024.03.05.03.25.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Mar 2024 03:25:48 -0800 (PST) From: "Ricardo B. Marliere" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marliere.net; s=2024; t=1709637947; 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=48ofsqw6uAaMpuoCiWg7AyYGybcH87o6g1a3Dbc0CJY=; b=D4MduaE/LUyvc9Zqaz8eGkUi8N/vH6Ugwt7wUZITQJWkPeD7ulb3utI8e1I9Ui9EeB4W38 1Z7kgbANTbTKbwreHnOCYeruvcCur6ggav8PnJP78z7xyQaezBGOrmvk4UudnmhcvL81nC YV46CZJCwQL5vzHVxpTZD9nDp3ZD8StJoRA4uzPdJM9+/ofMBamFir8OZWc/9h+Llfi3kI CzlVe/GvAU325INn0zhc5MKoviSI4EhxkNvR/O8R7Nro57joX/T7IB0YppHd5NUf9bJ0rb FSNUcHU2PDrXzqHJBrkV4Dug9b9e9/PDSZF5tNX8Pm2XXs5K11yAwm8wcB+byg== Authentication-Results: ORIGINATING; auth=pass smtp.auth=ricardo@marliere.net smtp.mailfrom=ricardo@marliere.net Date: Tue, 05 Mar 2024 08:25:24 -0300 Subject: [PATCH 6/6] s390: raw3270: make class3270 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: quoted-printable Message-Id: <20240305-class_cleanup-s390-v1-6-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=3662; i=ricardo@marliere.net; h=from:subject:message-id; bh=fccvHDlP2wGkwZu2PUac398IZ8tFoVKsOKr4Pv++MoI=; b=owEBbQKS/ZANAwAKAckLinxjhlimAcsmYgBl5wEhFlxuWtMsVrh4RgujSRXzUXXQuBbvxzFXC /mNEDVhuOGJAjMEAAEKAB0WIQQDCo6eQk7jwGVXh+HJC4p8Y4ZYpgUCZecBIQAKCRDJC4p8Y4ZY pig+D/9YdkQCwCoWzIvQ2HiHdeg4Yd6ZmJAwSEKE5sEzEhAWxFolNU1wf5IHnhoHJkZnLgKiT16 40CVxEKPYy9rmSwbkShM+g7ME8cZsNFli3biyBQtnMKRgeBpE/2NE5QrkL87z4aSa2ySrYgF3y+ FdkDaT38Fdbk9LE/6liOOz+nO6GRpOgIrYERTnw157VtYIdFVwaJ4DmvjSCP+XtQ5Aa8obXcqI/ cOA1wlW7k+ecNtws1Ae9LQiLkITq2yzEn9w8Kvhqae+AOzkBNdksz3mCiWBkdrDmHz2I9D9m1rC IZXLrpqRZiZk4S3c0FiPDEhLLwWHVdU1Iz+ZRu6On7xKWsM1tVzI+J6arcXGb8iWBMfjGZsLCGr kgrfm89LlEiwBpfERE/d46qHzYIqQM2/RAB5h3mv5t+MBACkWrdChQoiig7OXROUOsWb46Zp1kB ULK0VgcjcalD5hOUwNuJraypMCDJJIi5/P0K2opPB8Gaq752kXMQ3g0xZ8av7Gs1Z2+UkVQfImJ Gg5/1hR/XgTVDeNJ5VaSdO0dqvQIP8t7PyQeccBEISarlK74A8jH1mY7aD5urQP1OmPJCxhrYxs LlNv8QXOxDRYc8ajnjJp+PB3w51CYf8v8ISsBRD1WJkOLo/KG1iwD7UyNiWpuIWlmbQqqRU4Kpt eR4aJAkHsWOvoEA== 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 class3270 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/fs3270.c | 8 ++++---- drivers/s390/char/raw3270.c | 13 ++++++++----- drivers/s390/char/raw3270.h | 2 +- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/drivers/s390/char/fs3270.c b/drivers/s390/char/fs3270.c index 4f26b0a55620..f83ec248e68e 100644 --- a/drivers/s390/char/fs3270.c +++ b/drivers/s390/char/fs3270.c @@ -521,13 +521,13 @@ static const struct file_operations fs3270_fops =3D { static void fs3270_create_cb(int minor) { __register_chrdev(IBM_FS3270_MAJOR, minor, 1, "tub", &fs3270_fops); - device_create(class3270, NULL, MKDEV(IBM_FS3270_MAJOR, minor), + device_create(&class3270, NULL, MKDEV(IBM_FS3270_MAJOR, minor), NULL, "3270/tub%d", minor); } =20 static void fs3270_destroy_cb(int minor) { - device_destroy(class3270, MKDEV(IBM_FS3270_MAJOR, minor)); + device_destroy(&class3270, MKDEV(IBM_FS3270_MAJOR, minor)); __unregister_chrdev(IBM_FS3270_MAJOR, minor, 1, "tub"); } =20 @@ -546,7 +546,7 @@ static int __init fs3270_init(void) rc =3D __register_chrdev(IBM_FS3270_MAJOR, 0, 1, "fs3270", &fs3270_fops); if (rc) return rc; - device_create(class3270, NULL, MKDEV(IBM_FS3270_MAJOR, 0), + device_create(&class3270, NULL, MKDEV(IBM_FS3270_MAJOR, 0), NULL, "3270/tub"); raw3270_register_notifier(&fs3270_notifier); return 0; @@ -555,7 +555,7 @@ static int __init fs3270_init(void) static void __exit fs3270_exit(void) { raw3270_unregister_notifier(&fs3270_notifier); - device_destroy(class3270, MKDEV(IBM_FS3270_MAJOR, 0)); + device_destroy(&class3270, MKDEV(IBM_FS3270_MAJOR, 0)); __unregister_chrdev(IBM_FS3270_MAJOR, 0, 1, "fs3270"); } =20 diff --git a/drivers/s390/char/raw3270.c b/drivers/s390/char/raw3270.c index acc4cb37a9d8..8e9868581e0a 100644 --- a/drivers/s390/char/raw3270.c +++ b/drivers/s390/char/raw3270.c @@ -29,7 +29,9 @@ #include #include =20 -struct class *class3270; +const struct class class3270 =3D { + .name =3D "3270", +}; EXPORT_SYMBOL(class3270); =20 /* The main 3270 data structure. */ @@ -1315,13 +1317,14 @@ static int raw3270_init(void) if (raw3270_registered) return 0; raw3270_registered =3D 1; + rc =3D ccw_driver_register(&raw3270_ccw_driver); if (rc) return rc; =20 - class3270 =3D class_create("3270"); - if (IS_ERR(class3270)) - return PTR_ERR(class3270); + rc =3D class_register(&class3270); + if (rc) + return rc; =20 /* Create attributes for early (=3D console) device. */ mutex_lock(&raw3270_mutex); @@ -1337,7 +1340,7 @@ static int raw3270_init(void) static void raw3270_exit(void) { ccw_driver_unregister(&raw3270_ccw_driver); - class_destroy(class3270); + class_unregister(&class3270); } =20 MODULE_LICENSE("GPL"); diff --git a/drivers/s390/char/raw3270.h b/drivers/s390/char/raw3270.h index b1beecc7a0a9..5040c7e0e051 100644 --- a/drivers/s390/char/raw3270.h +++ b/drivers/s390/char/raw3270.h @@ -14,7 +14,7 @@ =20 struct raw3270; struct raw3270_view; -extern struct class *class3270; +extern const struct class class3270; =20 /* 3270 CCW request */ struct raw3270_request { --=20 2.43.0