Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp9115484rwd; Wed, 21 Jun 2023 03:17:30 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6gSb2DUorDYf6xCX5EJ6Dmm3dtQVb8WNC56OZ0sIeBj1zQirGT1r1g+4JptZsaviq8JeUw X-Received: by 2002:a05:6a20:4391:b0:117:c3f8:2f39 with SMTP id i17-20020a056a20439100b00117c3f82f39mr10444230pzl.19.1687342650645; Wed, 21 Jun 2023 03:17:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687342650; cv=none; d=google.com; s=arc-20160816; b=AFKElalBSB/doS8QT7pi/G6Ty36j/ogExGPiHEotYhF1f+tPfjSeWdvBP1cEVGU08+ kR9CUjEtv/oz2TKnXbnoJhZQplr8tfcz8OVMW4fYqde6+IpEkAO9x5/dYiawFJ4ajSjj HGSdya4omFgYuV5hnzYgqEeI5vskRAF1bQqEQpgINf7dEQt8U57HTCWaM0DeX1UQ1EUS BzVyES99AzMd3Yh8f1Bv3YBXmeIdfhiL8V451/vqOm9pRuMUpvb9jUyvE9qZ00YnkD7l 9ZpZra89zfapvhr080KuY4/5j4B1KtG3WCgIOajvW2BkZNE71yr76W6CQ3TK3koE/XyV 9w1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=a+gXJsHBZudacT2OdDw1EMT2gr0zO7PzQir6flBd7a4=; b=Wnd7avjSGa7z+Vjim7lnccIqDcn6n52kXS0y1cGN/1m9YWSBWhH60PWKauoTqwBvtw NqYwuxdk/WgDfrNloxJk2AYxj2wU3VFS4PC2qlTyHyoNxccJzRUmo7IoVpIfqJqhOGLS QMxt8OAku9JGWWZPCqcqvpp4X4qRvVJcGtzKd2LcQTjnBwtN219/aSFqpSb33owpV5HW VMPI6c/0by7sSj0iWTffzvr0AgKBhpuF/B5XxuFoUoByct9EDp7Z8SWZRAH5+vgd14rW dIVKyWWroXvvNhJcxwdoYX1uwKKhWGLnXKEAErrmRPnXGChK2JCDacTW5sQiFhTtivEC 3+NQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ionos.com header.s=google header.b=SZ4IOF7g; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=ionos.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x5-20020a1709027c0500b001b3f66b71a8si3894057pll.322.2023.06.21.03.17.18; Wed, 21 Jun 2023 03:17:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@ionos.com header.s=google header.b=SZ4IOF7g; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=ionos.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232323AbjFUKL5 (ORCPT + 99 others); Wed, 21 Jun 2023 06:11:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57736 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232238AbjFUKLl (ORCPT ); Wed, 21 Jun 2023 06:11:41 -0400 Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 02B491BE5 for ; Wed, 21 Jun 2023 03:10:51 -0700 (PDT) Received: by mail-ed1-x52d.google.com with SMTP id 4fb4d7f45d1cf-519c0ad1223so7091747a12.0 for ; Wed, 21 Jun 2023 03:10:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1687342249; x=1689934249; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=a+gXJsHBZudacT2OdDw1EMT2gr0zO7PzQir6flBd7a4=; b=SZ4IOF7guQNWDFS+/+I2pSiHxbetwx7cuBVSLOEsFQ/IvnzHEui5wb4kHwPhH9JJVv zfXP1wiQEWcBKH8qyKz4x1Da1UpA/L3KPTFdDVzb7SavQy+r4h5rmZK3fmDiTM0AiOEI QtOZSWcTvdLMgqWVk/mRzZC6V9AD6PRdZCRMVu2/8gVd/XzUmr+/WHt2rSGpIa/yQKw8 mA1gKulD66bM/vDDvRhghKELNyvMSAjI/vCoMQgu//jQKHR+gJcMQBtmIeeetFh92Zg5 DeftUjFWzGD35+4n7iGH7fGiYkfB9Xjl5Z/REyAj1fir3EVmd/JGU5Xw2AIZtqJVyV2r tm5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687342249; x=1689934249; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=a+gXJsHBZudacT2OdDw1EMT2gr0zO7PzQir6flBd7a4=; b=e20KKLncWfpFCROf65o8Au1zkPcYx40raZwDjuDxBDggdjVIYdsyv75iCXLxLdnAyr jsRTLbdEbNCcXzfeoRqDHqJ7QAoCnow02n6JYGFGqcMZ4fnDDwpIc7i2QBhrqavRwGca go2ovjhrglQ301KhHuz5AzGlmnFIgP++E7IqUJQEoBmFgBmuJX0Z6MJBoVAHaDA5ROTh rlEipJBFBw9fssRXifVo7kpfoDXvecbJyB8RhDpeR2a2W2AtUaW26a4zlCBmcN5J6zJW K07N3JVaYfKMvYSezTean5sPoUs1tcu6duOfmHzIxF9hqpN3Zl5aP81ddsHNzACFKopU eWRQ== X-Gm-Message-State: AC+VfDw9pD27VDAjwsYni/XowzGzluawSKemQsMHvcUT6IKvgOxv62ki i6biClQ57l19v6KFb0UgpDp/IsmXpmESNMY/0cA4fw== X-Received: by 2002:aa7:de06:0:b0:51b:d4f4:4805 with SMTP id h6-20020aa7de06000000b0051bd4f44805mr2115205edv.27.1687342249458; Wed, 21 Jun 2023 03:10:49 -0700 (PDT) MIME-Version: 1.0 References: <20230620180129.645646-5-gregkh@linuxfoundation.org> In-Reply-To: <20230620180129.645646-5-gregkh@linuxfoundation.org> From: Jinpu Wang Date: Wed, 21 Jun 2023 12:10:38 +0200 Message-ID: Subject: Re: [PATCH 1/4] block/rnbd: make all 'class' structures const To: Greg Kroah-Hartman Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Ivan Orlov , "Md. Haris Iqbal" , Jens Axboe Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jun 20, 2023 at 8:01=E2=80=AFPM Greg Kroah-Hartman wrote: > > From: Ivan Orlov > > Now that the driver core allows for struct class to be in read-only > memory, making all 'class' structures to be declared at build time > placing them into read-only memory, instead of having to be dynamically > allocated at load time. > > Cc: "Md. Haris Iqbal" > Cc: Jack Wang > Cc: Jens Axboe > Cc: linux-block@vger.kernel.org > Suggested-by: Greg Kroah-Hartman > Signed-off-by: Ivan Orlov > Signed-off-by: Greg Kroah-Hartman lgtm. Acked-by: Jack Wang > --- > drivers/block/rnbd/rnbd-clt-sysfs.c | 20 +++++++++++--------- > drivers/block/rnbd/rnbd-srv-sysfs.c | 22 ++++++++++++---------- > 2 files changed, 23 insertions(+), 19 deletions(-) > > diff --git a/drivers/block/rnbd/rnbd-clt-sysfs.c b/drivers/block/rnbd/rnb= d-clt-sysfs.c > index 8c6087949794..e84abac04f4f 100644 > --- a/drivers/block/rnbd/rnbd-clt-sysfs.c > +++ b/drivers/block/rnbd/rnbd-clt-sysfs.c > @@ -24,7 +24,9 @@ > #include "rnbd-clt.h" > > static struct device *rnbd_dev; > -static struct class *rnbd_dev_class; > +static const struct class rnbd_dev_class =3D { > + .name =3D "rnbd_client", > +}; > static struct kobject *rnbd_devs_kobj; > > enum { > @@ -646,11 +648,11 @@ int rnbd_clt_create_sysfs_files(void) > { > int err; > > - rnbd_dev_class =3D class_create("rnbd-client"); > - if (IS_ERR(rnbd_dev_class)) > - return PTR_ERR(rnbd_dev_class); > + err =3D class_register(&rnbd_dev_class); > + if (err) > + return err; > > - rnbd_dev =3D device_create_with_groups(rnbd_dev_class, NULL, > + rnbd_dev =3D device_create_with_groups(&rnbd_dev_class, NULL, > MKDEV(0, 0), NULL, > default_attr_groups, "ctl")= ; > if (IS_ERR(rnbd_dev)) { > @@ -666,9 +668,9 @@ int rnbd_clt_create_sysfs_files(void) > return 0; > > dev_destroy: > - device_destroy(rnbd_dev_class, MKDEV(0, 0)); > + device_destroy(&rnbd_dev_class, MKDEV(0, 0)); > cls_destroy: > - class_destroy(rnbd_dev_class); > + class_unregister(&rnbd_dev_class); > > return err; > } > @@ -678,6 +680,6 @@ void rnbd_clt_destroy_sysfs_files(void) > sysfs_remove_group(&rnbd_dev->kobj, &default_attr_group); > kobject_del(rnbd_devs_kobj); > kobject_put(rnbd_devs_kobj); > - device_destroy(rnbd_dev_class, MKDEV(0, 0)); > - class_destroy(rnbd_dev_class); > + device_destroy(&rnbd_dev_class, MKDEV(0, 0)); > + class_unregister(&rnbd_dev_class); > } > diff --git a/drivers/block/rnbd/rnbd-srv-sysfs.c b/drivers/block/rnbd/rnb= d-srv-sysfs.c > index d5d9267e1fa5..5e69c0112e23 100644 > --- a/drivers/block/rnbd/rnbd-srv-sysfs.c > +++ b/drivers/block/rnbd/rnbd-srv-sysfs.c > @@ -20,7 +20,9 @@ > #include "rnbd-srv.h" > > static struct device *rnbd_dev; > -static struct class *rnbd_dev_class; > +static const struct class rnbd_dev_class =3D { > + .name =3D "rnbd-server", > +}; > static struct kobject *rnbd_devs_kobj; > > static void rnbd_srv_dev_release(struct kobject *kobj) > @@ -215,12 +217,12 @@ int rnbd_srv_create_sysfs_files(void) > { > int err; > > - rnbd_dev_class =3D class_create("rnbd-server"); > - if (IS_ERR(rnbd_dev_class)) > - return PTR_ERR(rnbd_dev_class); > + err =3D class_register(&rnbd_dev_class); > + if (err) > + return err; > > - rnbd_dev =3D device_create(rnbd_dev_class, NULL, > - MKDEV(0, 0), NULL, "ctl"); > + rnbd_dev =3D device_create(&rnbd_dev_class, NULL, > + MKDEV(0, 0), NULL, "ctl"); > if (IS_ERR(rnbd_dev)) { > err =3D PTR_ERR(rnbd_dev); > goto cls_destroy; > @@ -234,9 +236,9 @@ int rnbd_srv_create_sysfs_files(void) > return 0; > > dev_destroy: > - device_destroy(rnbd_dev_class, MKDEV(0, 0)); > + device_destroy(&rnbd_dev_class, MKDEV(0, 0)); > cls_destroy: > - class_destroy(rnbd_dev_class); > + class_unregister(&rnbd_dev_class); > > return err; > } > @@ -245,6 +247,6 @@ void rnbd_srv_destroy_sysfs_files(void) > { > kobject_del(rnbd_devs_kobj); > kobject_put(rnbd_devs_kobj); > - device_destroy(rnbd_dev_class, MKDEV(0, 0)); > - class_destroy(rnbd_dev_class); > + device_destroy(&rnbd_dev_class, MKDEV(0, 0)); > + class_unregister(&rnbd_dev_class); > } > -- > 2.41.0 >