From patchwork Mon Mar 13 18:18:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg KH X-Patchwork-Id: 69002 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1336265wrd; Mon, 13 Mar 2023 11:20:34 -0700 (PDT) X-Google-Smtp-Source: AK7set/FYCACjNNNvoK5Z9li7C3F7X0FjEJ01BsxnsoTmnFwIpZmcxhboZzmXfyUpuWPnIQFLf2C X-Received: by 2002:a17:90a:138a:b0:23d:816:faa9 with SMTP id i10-20020a17090a138a00b0023d0816faa9mr4037959pja.12.1678731633940; Mon, 13 Mar 2023 11:20:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678731633; cv=none; d=google.com; s=arc-20160816; b=Ed0rFwTfWDxHWDZCqZFQl1ZEWei9I19qryjuVLlTuK9f3l9y+8y6ijFzT3+nmdSiK7 xGA5+qdRaVFE7RHUWThs/N+p3LEtqE9VfCwxqdjid7vj/TVRWf8JYmEUSbwEvTkPSzjV gWYGqm+xjyGOABOsTRMu6UUS0qmJRj6UQlRGXZd9btp+6/T2F7jYRGAkRwMESIOEnMI/ jWMcXnWmOq6tz1pNL06i3J5lnD0MOtU2oBsyTTnPEdWs1hn+78TrCd81jJTBgds+6nui e2Jra6gLFy5Ic1Mn4PA75PDHXFVVfAsvkFP+/kB3aQl2GigZ2X2WlVm/xyNxBmYKRbGC FP0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=jXmWT6OpiDrjrYkAG0UZrqt5xyGocN74b9PVwCEcwKM=; b=IsU70pcnGPIUmH5P3+YK7/Lr/x1S0tT3l520QCcK0eHYK5hKo8adYn5mBgSYjvmyAG QuiTeeHfTdhw5rkbF3e5rmQnrowDiG7rjmK7D0vuasZvA+0dKyMnJLWlGRiz35F7BTbI W9i2ixoEORfX99BduIt1faIuKJ5umBvPlwqqJdXyVcQ4D8S/bDaOWT+/NXg94OMUZHvv qkYfjedFVfkGX7jofGPeXx9cCUO4MRa0Hc4MoD0SD9x+GP4F7ikp/vvu+nywrO9q30Qd tf+nSCHaIQuWtWr2ohto+GBu5wVf/y78v9tbheBagAhZswwkBd+FiJbSwHt9UNMg4FkE ZfpA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=fQMIyCIR; 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=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ep23-20020a17090ae65700b00233de97f4d3si362895pjb.2.2023.03.13.11.20.19; Mon, 13 Mar 2023 11:20:33 -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=@linuxfoundation.org header.s=korg header.b=fQMIyCIR; 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=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229872AbjCMSTC (ORCPT + 99 others); Mon, 13 Mar 2023 14:19:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37554 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229519AbjCMSS7 (ORCPT ); Mon, 13 Mar 2023 14:18:59 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1641C4DBFD for ; Mon, 13 Mar 2023 11:18:58 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id C4A8DB811B3 for ; Mon, 13 Mar 2023 18:18:56 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 15A0DC433EF; Mon, 13 Mar 2023 18:18:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1678731535; bh=7JjMhndsMDUXE8DafQk0gW/zTqbD/+DD3G1NK5IQe+0=; h=From:To:Cc:Subject:Date:From; b=fQMIyCIRY+9wS0eO9vdqAfApHXqTWcAq8oiY1nx0vT+QTR6Yxm0CCxTo18iR9FHBd uxoZEWX2X+CH5HOaxq4TLLUkKV9aT2VROWPEUCj5mQwBR+ZzwAVvdjMoBqiJkGlQfI RvMlgqjVILrGF5mxlJ4Av8+9gOtf/VkjTjJDmi+0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: rafael@kernel.org, Greg Kroah-Hartman Subject: [PATCH 01/12] driver core: class: specify the module owner in __class_register() Date: Mon, 13 Mar 2023 19:18:32 +0100 Message-Id: <20230313181843.1207845-1-gregkh@linuxfoundation.org> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2805; i=gregkh@linuxfoundation.org; h=from:subject; bh=7JjMhndsMDUXE8DafQk0gW/zTqbD/+DD3G1NK5IQe+0=; b=owGbwMvMwCRo6H6F97bub03G02pJDCn8Gf+/LM/161pfIFN5M27j6vt/phjOjGP207oft2vTk f5vzr68HbEsDIJMDLJiiixftvEc3V9xSNHL0PY0zBxWJpAhDFycAjCRrQcZ5vAlRzPYbJqs5sLp 21NxX+549kUHJoYFV4rEbm17aH7OO6R9c9+SqdZc5w8pAgA= X-Developer-Key: i=gregkh@linuxfoundation.org; a=openpgp; fpr=F4B60CC5BF78C2214A313DCB3147D40DDB2DFB29 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760277701751743756?= X-GMAIL-MSGID: =?utf-8?q?1760277701751743756?= There's no need to manually have to set the module owner of a class, the compiler should do it automatically for you, so add a module * to the __class_register() function and allow it to set the module owner automatically. This will let us move the module pointer out of struct class eventually, as it should not be embedded in there if we wish for it to be a read-only structure eventually. And, funny story, this module pointer isn't even being used for anything, so while we will keep it around for now, it's not like it even matters. Cc: "Rafael J. Wysocki" Signed-off-by: Greg Kroah-Hartman --- drivers/base/class.c | 6 +++--- include/linux/device/class.h | 9 +++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/base/class.c b/drivers/base/class.c index 5983eead8391..90dc5788957a 100644 --- a/drivers/base/class.c +++ b/drivers/base/class.c @@ -154,7 +154,7 @@ static void class_remove_groups(struct class *cls, return sysfs_remove_groups(&cls->p->subsys.kobj, groups); } -int __class_register(struct class *cls, struct lock_class_key *key) +int __class_register(struct class *cls, struct module *owner, struct lock_class_key *key) { struct subsys_private *cp; int error; @@ -187,6 +187,7 @@ int __class_register(struct class *cls, struct lock_class_key *key) if (error) goto err_out; + cls->owner = owner; error = class_add_groups(class_get(cls), cls->class_groups); class_put(cls); if (error) { @@ -244,10 +245,9 @@ struct class *__class_create(struct module *owner, const char *name, } cls->name = name; - cls->owner = owner; cls->class_release = class_create_release; - retval = __class_register(cls, key); + retval = __class_register(cls, owner, key); if (retval) goto error; diff --git a/include/linux/device/class.h b/include/linux/device/class.h index 42cc3fb44a84..d1ba4ee235dc 100644 --- a/include/linux/device/class.h +++ b/include/linux/device/class.h @@ -85,15 +85,16 @@ struct class_dev_iter { extern struct kobject *sysfs_dev_block_kobj; extern struct kobject *sysfs_dev_char_kobj; extern int __must_check __class_register(struct class *class, + struct module *owner, struct lock_class_key *key); extern void class_unregister(struct class *class); /* This is a #define to keep the compiler from merging different * instances of the __key variable */ -#define class_register(class) \ -({ \ - static struct lock_class_key __key; \ - __class_register(class, &__key); \ +#define class_register(class) \ +({ \ + static struct lock_class_key __key; \ + __class_register(class, THIS_MODULE, &__key); \ }) struct class_compat;