From patchwork Sat Mar 11 03:14:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Patchwork-Id: 67966 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp96971wrd; Fri, 10 Mar 2023 19:17:01 -0800 (PST) X-Google-Smtp-Source: AK7set8ia1AcuF6RiFm8zT8KcewPc8Hth8jSZE2DwXu7X0pBrlNanDMk/hvpLma7RxANcMNa96kx X-Received: by 2002:a62:1c89:0:b0:5a9:d5c7:199a with SMTP id c131-20020a621c89000000b005a9d5c7199amr19005451pfc.8.1678504621705; Fri, 10 Mar 2023 19:17:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678504621; cv=none; d=google.com; s=arc-20160816; b=wJhSpQg+h2eJN+4rg/DQeJlHIJ6QkSzx0h7qevj28jgKbsGuFW2D5/DVe/9bS6mAGY NEOQQAwNkd+3hM6u/k/rNpzEFXOq5nbsAiZnsnxsQS3yiOTm0okIPUNSuoG17Q+MBOY3 B+gOI0MxXfJhRYmzOrjb+Fl1N8htmBV3ls1LOWiOVc9DXTK2tAjAmvXJEeZo7xwSaZrc 12q5FWy3SqoOeA/wD+yCT0V9aJw3ysaYBeXHePq0kaPrnH/z1/yra7/NEpnl1aBIGnaz RO2Xbe5v+KvybV9loG3nwGykSFhqY6J0+jpiKYUgzeT1We+e3Xc/SKGec/WDw/vLmUMN NG2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:dkim-signature :from; bh=9oYqwxwbJx1M2xqt4+tPO+/vAEigrVwe0KuePwz473M=; b=jJCQdSN7Shx05Rp/keMOkjck97RdxFTpXyzGkBNkGf2NP8iPZih+rbjK0zbaMSeP20 CQAMbLvkbpLFRznQaisD9NVTmxUFXFrAHDLkJ9omweIdYgA2D+oNJSGoBNYq0iG9p5uD P6wetPNsirOOy5k3gU6AE77REXhqzPGBw6XCoNCYxRsip2dlS3YdA7TdgiPYZKRDH9O1 QfhYDLry2z/GOopM/XRMP1v8TsgX1oY0GuZzxcirKlbRNCSrD3hLyggqbiQP0DsUvh2N tZMpR/+lkDYSiN7gan4HW4JQAqG4ZtTiAiSRIw/Zw2sWy8IyfL/d7NBiSqrgMciYOkt8 nD5Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@weissschuh.net header.s=mail header.b=kZlB8FGB; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h193-20020a636cca000000b00502e1dfbf61si1174023pgc.738.2023.03.10.19.16.48; Fri, 10 Mar 2023 19:17:01 -0800 (PST) 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=@weissschuh.net header.s=mail header.b=kZlB8FGB; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229628AbjCKDPJ (ORCPT + 99 others); Fri, 10 Mar 2023 22:15:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56300 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229685AbjCKDPA (ORCPT ); Fri, 10 Mar 2023 22:15:00 -0500 Received: from todd.t-8ch.de (todd.t-8ch.de [159.69.126.157]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C180133D85 for ; Fri, 10 Mar 2023 19:14:59 -0800 (PST) From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=weissschuh.net; s=mail; t=1678504497; bh=bcH+RH7mDEjMHFrUjTVALbIb4nQlqXgmdbui5y0vy1A=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=kZlB8FGBEQR31hU+wKRBi9KYXlBrcyD6oV6v1XjOWQ9rq66wgHNpRLUYSOmNhz7Br l6Yp+IzrR3+0bACs+iePMSyg0ht3HPlIsconcH/LC/yUOylCtvqQX8jFC0GqBmPhYm sNVQQlQVNd+oYDwJp7sNEmFVCU47JwnhOhAuop3s= Date: Sat, 11 Mar 2023 03:14:48 +0000 Subject: [PATCH 3/4] kobject: validate ktype release function during add MIME-Version: 1.0 Message-Id: <20230311-kobject-warning-v1-3-1ebba4f71fb5@weissschuh.net> References: <20230311-kobject-warning-v1-0-1ebba4f71fb5@weissschuh.net> In-Reply-To: <20230311-kobject-warning-v1-0-1ebba4f71fb5@weissschuh.net> To: Greg Kroah-Hartman , "Rafael J. Wysocki" Cc: linux-kernel@vger.kernel.org, =?utf-8?q?Thomas_Wei=C3=9Fschuh?= , Mirsad Todorovac X-Mailer: b4 0.12.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1678504493; l=1594; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=bcH+RH7mDEjMHFrUjTVALbIb4nQlqXgmdbui5y0vy1A=; b=50p1tv7SGpwBneKoN/Ga7uCuCMRtktJIjevrXw7BKAo/GJRDKjp4L4KPNaEMK1kGTq5H/XvCN 2HYvnPom76ECJekV40mWOmNExjS+TiGlSVG6Z6k1CBiIVMWP+H+Xi6G X-Developer-Key: i=linux@weissschuh.net; a=ed25519; pk=KcycQgFPX2wGR5azS7RhpBqedglOZVgRPfdFSPB1LNw= X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760039662320259490?= X-GMAIL-MSGID: =?utf-8?q?1760039662320259490?= Validating the ktype during cleanup is suboptimal. Many kobjects are only destroyed during shutdown which makes it hard to observe the messages. Instead perform the validation when the object is added. Reported-by: Mirsad Todorovac Link: https://lore.kernel.org/lkml/60b2b66c-22c9-1d38-ed1c-7b7d95e32720@alu.unizg.hr/ Signed-off-by: Thomas Weißschuh --- lib/kobject.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/kobject.c b/lib/kobject.c index f79a434e1231..68ff8a48b784 100644 --- a/lib/kobject.c +++ b/lib/kobject.c @@ -215,6 +215,10 @@ static int kobject_add_internal(struct kobject *kobj) return -EINVAL; } + if (kobj->ktype && !kobj->ktype->release) + pr_debug("'%s' (%p): does not have a release() function, it is broken and must be fixed. See Documentation/core-api/kobject.rst.\n", + kobject_name(kobj), kobj); + parent = kobject_get(kobj->parent); /* join kset if set, use it as parent if we do not already have one */ @@ -663,10 +667,6 @@ static void kobject_cleanup(struct kobject *kobj) pr_debug("'%s' (%p): %s, parent %p\n", kobject_name(kobj), kobj, __func__, kobj->parent); - if (t && !t->release) - pr_debug("'%s' (%p): does not have a release() function, it is broken and must be fixed. See Documentation/core-api/kobject.rst.\n", - kobject_name(kobj), kobj); - /* remove from sysfs if the caller did not do it */ if (kobj->state_in_sysfs) { pr_debug("'%s' (%p): auto cleanup kobject_del\n",