From patchwork Sat Mar 11 03:14:46 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: 67964 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp96878wrd; Fri, 10 Mar 2023 19:16:45 -0800 (PST) X-Google-Smtp-Source: AK7set/HLY4Z0L42TocO/HR6GSAAU/4QGMn9gwflRvWEYAOJms+ge8N2oU/qdPY8NT/Gapa8HSH0 X-Received: by 2002:a05:6a20:6a9e:b0:cd:71de:e757 with SMTP id bi30-20020a056a206a9e00b000cd71dee757mr23185280pzb.32.1678504604775; Fri, 10 Mar 2023 19:16:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678504604; cv=none; d=google.com; s=arc-20160816; b=hDMYS+RPqpuZyO1S/Ix4668Fer8Z7P8RviCaOFzVYLzlZ8r/y+ibu5GETg0h1SDkvH /KrtLZUf6XKV5igj5nix0CNGSOv93Xjhsdlie7R4P0j9wPzYKnvNN3qGuQygmXXL2QY8 kIlAJnGR0UvucjQ3uEu3wGdyMU1iQSd68rwbjIJXv4rPN0anM0FN5VV3EFZ+nMURzLmF ZxN6aSvjX/qJD7A3X0HakRbUd+Ho8b97luxidXqJT0XbVzI2D8yBP4S2YwOVKOJ6wf2+ YOSuKqeMPkDCaQsFYBRZlVvUkyuPERzr5HShAygVgJacm/Y5LG/dSS4Iq9WoeGzruo46 t7Gw== 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=NhMloEUhXeNoCJ+v5Ympozzt8Z64+8fkC2CgIEukKLU=; b=WH1b/YuqUmVpapKl4PEbG8UOHxVxb2v87BTKMn23kVlOKrENsGvnRsQCjZB9fNn7Zi /k+j61QoH4jrjEl/HvwAFEVkLVeVGrtf4S5cvA4M96VEZ82kVAiYkwgHgTTp8SBb6Zsa cYC1IObM3oTOgAMF6vnfmQSY1dcyZW72le5JKbrP9h249ybBIDuuPkrAewiAXQkIa0eW RmTmU0mEzNnBg4jzyiNZL0p77WuXg3bj08ZQSqaYeqA5nS8P4RcGTypQMeq7KJnSfJQs oXNaHKxEWiBnRLgwO5gahW4BRIDB6M+dr45WMuWWNl8hXvDzVVLAPgJiwgLH0f+2bLCu 3DHw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@weissschuh.net header.s=mail header.b="Zuk3/bEc"; 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 d65-20020a621d44000000b005a8c0f03340si1093519pfd.375.2023.03.10.19.16.31; Fri, 10 Mar 2023 19:16:44 -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="Zuk3/bEc"; 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 S229757AbjCKDPB (ORCPT + 99 others); Fri, 10 Mar 2023 22:15:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56268 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229455AbjCKDO7 (ORCPT ); Fri, 10 Mar 2023 22:14:59 -0500 Received: from todd.t-8ch.de (todd.t-8ch.de [159.69.126.157]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 10798132A94 for ; Fri, 10 Mar 2023 19:14:57 -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=1678504495; bh=7UpojwGw4Wjc6iwDTG11oJXV5hBbJObX8sfOzw0j3+8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Zuk3/bEco0V/MQXZlAcAPaRUfq7PBCyCHrQ5lII+Ejk8k5muVy2a8j2D9o65dIe4F SN5qJxczydCRpCvjAZlU61FElYRahnllDt3phpk2ftEsX3DwthmRQCWOpaC0HIJJ0W fojPpoCxInntp/Jpzl3pMUswSsbdVq9HDcIg5YR8= Date: Sat, 11 Mar 2023 03:14:46 +0000 Subject: [PATCH 1/4] kobject: define common logging prefix MIME-Version: 1.0 Message-Id: <20230311-kobject-warning-v1-1-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?= X-Mailer: b4 0.12.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1678504493; l=4592; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=7UpojwGw4Wjc6iwDTG11oJXV5hBbJObX8sfOzw0j3+8=; b=srn5/5x4qNccxjCHSdFcj5F169tzEJq4pb0s/zWHAQ8IsN85mklJg4gN9ClW7E8LNGFsu+m19 eUbb4wQJLKgA94beuVi7iaIN2+Jx8vzhVXebWmGchzayQCZ7O5c8qIg 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?1760039644427158044?= X-GMAIL-MSGID: =?utf-8?q?1760039644427158044?= All log messages start with the prefix "kobject: ". Deduplicate this by using the pr_fmt() facility. This makes the very long log strings shorter. Signed-off-by: Thomas Weißschuh --- lib/kobject.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/lib/kobject.c b/lib/kobject.c index 6e2f0bee3560..09c81ffb8b33 100644 --- a/lib/kobject.c +++ b/lib/kobject.c @@ -10,6 +10,8 @@ * about using the kobject interface. */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + #include #include #include @@ -127,7 +129,7 @@ static int fill_kobj_path(const struct kobject *kobj, char *path, int length) *(path + --length) = '/'; } - pr_debug("kobject: '%s' (%p): %s: path = '%s'\n", kobject_name(kobj), + pr_debug("'%s' (%p): %s: path = '%s'\n", kobject_name(kobj), kobj, __func__, path); return 0; @@ -223,7 +225,7 @@ static int kobject_add_internal(struct kobject *kobj) kobj->parent = parent; } - pr_debug("kobject: '%s' (%p): %s: parent: '%s', set: '%s'\n", + pr_debug("'%s' (%p): %s: parent: '%s', set: '%s'\n", kobject_name(kobj), kobj, __func__, parent ? kobject_name(parent) : "", kobj->kset ? kobject_name(&kobj->kset->kobj) : ""); @@ -359,7 +361,7 @@ static __printf(3, 0) int kobject_add_varg(struct kobject *kobj, retval = kobject_set_name_vargs(kobj, fmt, vargs); if (retval) { - pr_err("kobject: can not set name properly!\n"); + pr_err("can not set name properly!\n"); return retval; } kobj->parent = parent; @@ -588,7 +590,7 @@ static void __kobject_del(struct kobject *kobj) /* send "remove" if the caller did not do it but sent "add" */ if (kobj->state_add_uevent_sent && !kobj->state_remove_uevent_sent) { - pr_debug("kobject: '%s' (%p): auto cleanup 'remove' event\n", + pr_debug("'%s' (%p): auto cleanup 'remove' event\n", kobject_name(kobj), kobj); kobject_uevent(kobj, KOBJ_REMOVE); } @@ -658,16 +660,16 @@ static void kobject_cleanup(struct kobject *kobj) const struct kobj_type *t = get_ktype(kobj); const char *name = kobj->name; - pr_debug("kobject: '%s' (%p): %s, parent %p\n", + pr_debug("'%s' (%p): %s, parent %p\n", kobject_name(kobj), kobj, __func__, kobj->parent); if (t && !t->release) - pr_debug("kobject: '%s' (%p): does not have a release() function, it is broken and must be fixed. See Documentation/core-api/kobject.rst.\n", + 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("kobject: '%s' (%p): auto cleanup kobject_del\n", + pr_debug("'%s' (%p): auto cleanup kobject_del\n", kobject_name(kobj), kobj); __kobject_del(kobj); } else { @@ -676,14 +678,14 @@ static void kobject_cleanup(struct kobject *kobj) } if (t && t->release) { - pr_debug("kobject: '%s' (%p): calling ktype release\n", + pr_debug("'%s' (%p): calling ktype release\n", kobject_name(kobj), kobj); t->release(kobj); } /* free name if we allocated it */ if (name) { - pr_debug("kobject: '%s': free name\n", name); + pr_debug("'%s': free name\n", name); kfree_const(name); } @@ -703,8 +705,8 @@ static void kobject_release(struct kref *kref) struct kobject *kobj = container_of(kref, struct kobject, kref); #ifdef CONFIG_DEBUG_KOBJECT_RELEASE unsigned long delay = HZ + HZ * get_random_u32_below(4); - pr_info("kobject: '%s' (%p): %s, parent %p (delayed %ld)\n", - kobject_name(kobj), kobj, __func__, kobj->parent, delay); + pr_info("'%s' (%p): %s, parent %p (delayed %ld)\n", + kobject_name(kobj), kobj, __func__, kobj->parent, delay); INIT_DELAYED_WORK(&kobj->release, kobject_delayed_cleanup); schedule_delayed_work(&kobj->release, delay); @@ -733,7 +735,7 @@ EXPORT_SYMBOL(kobject_put); static void dynamic_kobj_release(struct kobject *kobj) { - pr_debug("kobject: (%p): %s\n", kobj, __func__); + pr_debug("(%p): %s\n", kobj, __func__); kfree(kobj); } @@ -910,7 +912,7 @@ EXPORT_SYMBOL_GPL(kset_find_obj); static void kset_release(struct kobject *kobj) { struct kset *kset = container_of(kobj, struct kset, kobj); - pr_debug("kobject: '%s' (%p): %s\n", + pr_debug("'%s' (%p): %s\n", kobject_name(kobj), kobj, __func__); kfree(kset); } From patchwork Sat Mar 11 03:14:47 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: 67967 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp97016wrd; Fri, 10 Mar 2023 19:17:13 -0800 (PST) X-Google-Smtp-Source: AK7set8wKnSX+D3FV5Gn0wO9Vq7C4CoMiz0AhCLUY+JFGUVjvCaotieqO71z9vDNOgORPf9TplgA X-Received: by 2002:a17:90b:1c87:b0:236:73d5:82cf with SMTP id oo7-20020a17090b1c8700b0023673d582cfmr27973604pjb.9.1678504632823; Fri, 10 Mar 2023 19:17:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678504632; cv=none; d=google.com; s=arc-20160816; b=Cn5LKC+fuy67myVjtGNMLE2zPVJUzMwob6FSQVUtuNJwfUKP83gjwUqeNTULwX5UuJ hAD+mg7lnvAxJdXJnNIWOfrOJDAPblX9ORbfzuymOl4GJMAv7thElby4zZasCRQaXS5F z40p111Uf1HscO/D6WkwoO6qrT1zIzUzK9ELHhVtHkAsjgZywRLxbq0t32C0Eh+QPlRf JNxh4sDKFsbOKPUMCi4FUuetzn8Uu3NsH3fFPZ7SFwImknPf9+WvGW0MsB6Sv66mzgxm yBs93GjYdBx/4Biy966fUxXl8d4w1KLUXX9Mq1vn81R8AfDqL/ej0Aylhm4aj6MveEt2 Ivew== 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=cPqTJGly2Vap5U+Eo6PgcDUirkgrha96cV2djrF36Ro=; b=BJ8F1I/B5F3EYorF5Q2jzdGWDBEQqkzKP2au9ajclAnaAGXYwrgpW/UGs7XaFeNAaD mdkK+f7cvPC+rSgXEn+XAwhQYX9CTNVZ840iO9tweAiVBpjIivv0+UB72Yi0/2OJyoZX 1A6rAKACra9aBJgWOfGA0PEKZG9hMEzXH5tBZLqysp/Gnm88jq7/0slQQfSjyBfDDy2n ACF+mVSPuWlujsONr+K5f0wvEpExiTfigzs1S3yDfQk1h4+CgvG+3TuYMAbRbYmM7OSk k+p4+DhWL+gVa9OPuaPqFF1NhuhWW9PacnVsOcqsnvdh0F2ipMlKBMrcMhOHBvdyuBOj ROSQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@weissschuh.net header.s=mail header.b=hBhcLJv3; 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 nk6-20020a17090b194600b0023406918cbasi1226220pjb.157.2023.03.10.19.17.00; Fri, 10 Mar 2023 19:17:12 -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=hBhcLJv3; 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 S229895AbjCKDPN (ORCPT + 99 others); Fri, 10 Mar 2023 22:15:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56316 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229455AbjCKDPC (ORCPT ); Fri, 10 Mar 2023 22:15:02 -0500 Received: from todd.t-8ch.de (todd.t-8ch.de [159.69.126.157]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9A33A132A94 for ; Fri, 10 Mar 2023 19:15:00 -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=1678504498; bh=pCEog6vxwSuKmvKLhc80450ur1XxkLoLlCfazqFt1F0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=hBhcLJv3vkpuVK0jz9kWGargi8oM/bWAOYD6b4P03pAkENPLv8TeRN2rJbLaUmet5 IveFF1TAXhGbIly7PajneFQT5Jdc+hGo47BFvsWy2bx6AlZfQQR4AMzWdbwgFXJHcf pnJS6C4tsZgfrqkZMEdRpXeacTh+b6IIf7boqCzg= Date: Sat, 11 Mar 2023 03:14:47 +0000 Subject: [PATCH 2/4] kobject: align stacktrace levels to logging message MIME-Version: 1.0 Message-Id: <20230311-kobject-warning-v1-2-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?= X-Mailer: b4 0.12.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1678504493; l=1551; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=pCEog6vxwSuKmvKLhc80450ur1XxkLoLlCfazqFt1F0=; b=4MfIfOAfHwH+ONwUjubatS0nY+UNzyAioLh2YI5evEhAVmI2SI6nfiNqost8qs2AkmLHZ+MnA Qy30P6yFsQJB/MX3UbN6LRaFSgyzDqODqAOxjyJmumiLFKIOgiyhq3G 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?1760039673494963675?= X-GMAIL-MSGID: =?utf-8?q?1760039673494963675?= Without an explicit level the stacktraces are printed at a default level. If this level does not match the one from the logging level it may happen that the stacktrace is shown without the message or vice versa. Both these cases are confusing, so make sure the user always sees both, the message and the stacktrace. Signed-off-by: Thomas Weißschuh --- lib/kobject.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/kobject.c b/lib/kobject.c index 09c81ffb8b33..f79a434e1231 100644 --- a/lib/kobject.c +++ b/lib/kobject.c @@ -340,7 +340,7 @@ void kobject_init(struct kobject *kobj, const struct kobj_type *ktype) /* do not error out as sometimes we can recover */ pr_err("kobject (%p): tried to init an initialized object, something is seriously wrong.\n", kobj); - dump_stack(); + dump_stack_lvl(KERN_ERR); } kobject_init_internal(kobj); @@ -349,7 +349,7 @@ void kobject_init(struct kobject *kobj, const struct kobj_type *ktype) error: pr_err("kobject (%p): %s\n", kobj, err_str); - dump_stack(); + dump_stack_lvl(KERN_ERR); } EXPORT_SYMBOL(kobject_init); @@ -413,7 +413,7 @@ int kobject_add(struct kobject *kobj, struct kobject *parent, if (!kobj->state_initialized) { pr_err("kobject '%s' (%p): tried to add an uninitialized object, something is seriously wrong.\n", kobject_name(kobj), kobj); - dump_stack(); + dump_stack_lvl(KERN_ERR); return -EINVAL; } va_start(args, fmt); 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", From patchwork Sat Mar 11 03:14:49 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: 67965 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp96954wrd; Fri, 10 Mar 2023 19:17:00 -0800 (PST) X-Google-Smtp-Source: AK7set/BUj+mxjgcK1kYEOgPtn/uWyCb1PIwIP7q6m0BV4GisrR5aJWUpP/w1zBthZ5qA/D8/lDI X-Received: by 2002:a05:6a20:7f8c:b0:d0:36d5:cf1f with SMTP id d12-20020a056a207f8c00b000d036d5cf1fmr4361370pzj.5.1678504620193; Fri, 10 Mar 2023 19:17:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678504620; cv=none; d=google.com; s=arc-20160816; b=xtLZ5TcHpDGDCZFi1zBoG5klzwj7eq+mnnqGS/c0Gdd4WO5rJUYSGtJdt48Ty9imuK UfeNoUqFFbKqyKRNw9JFLT3sJdALQvtaBQ9uTX/j2WIJc+VYTbMZWGcxiHrF9A6R7xAG 54LeH1Oo76ave5/40ZBMMPsl9aFWEqq/CUac1xzJDexhNRVJTxSJvjW9WcpLPpqCX2oE aIZi5K+PkhJh0xphTQ+J5VL7D1lhfDlVD3LXSOlq/gX0gjIBW7hJVSI2EerznmB8B9U5 vEFtVcY+2PZhyNIs6q8wdb2VcN8HDNVHYt6TVS5ZvtJFR5AwX/BDx7KwYlRJIYXcE7tz qsRg== 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=2gt/bbPdBUt8TJppb6t99l7k010SYBCwtKDZK7Rdz+0=; b=eUcE4VZqJAuIv0DPHIEbKpYKkSLbbmOsOsaVhCmPJb4R/09GsG5OnMXpUEgbNUako2 WDF4fWyojHHX27PE702/CnnK2qCPCbwZmoy2EM2wYLUxMKnGrbXSm0M7ps7etTCLpFun rzjccOB4cueFxBLpV1FWqxpQ8Ndldc0/2qR4EccIMWPR+J5dNZlM7kGUSpHhARG2DbDn zrcJTw0c+ZPwnMaYxh5+fIsunSHHTuz3srTnOYUirn5rozHbuCJNZ0CE6oNg/Duhyy1M 072X8SlOcgpW9sc6MJk9h++q7G0bn8vE7uSHMiXv/oMpJq8yIFtpEKeG1u2Ac9giWIe+ T5qQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@weissschuh.net header.s=mail header.b="r/d9r6pr"; 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 c22-20020a63ea16000000b004fb84a15f0fsi1278903pgi.83.2023.03.10.19.16.47; Fri, 10 Mar 2023 19:17:00 -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="r/d9r6pr"; 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 S229804AbjCKDPG (ORCPT + 99 others); Fri, 10 Mar 2023 22:15:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56270 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229577AbjCKDO7 (ORCPT ); Fri, 10 Mar 2023 22:14:59 -0500 Received: from todd.t-8ch.de (todd.t-8ch.de [IPv6:2a01:4f8:c010:41de::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 10EEF133A4C for ; Fri, 10 Mar 2023 19:14:57 -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=1678504495; bh=sOiskQrdfCnIJT4uxkWaPY9RlNau8EXPiu1P/We8tr0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=r/d9r6prZI3rN88Jp8LpvVV4Mclk1h/7E1U1QKzH2As+OnhYe1m3BJ3lpvCqdoDRR 73Yyu6R8b0J3Vpa3t6yAjxvuHDG7lGPTT+KqdxAV8ZMFB1WhF6f9jVPMe/4aN48OqQ oXGNywQObYH9ARQEdw7bFa/nYQjggFazBV3pqFBo= Date: Sat, 11 Mar 2023 03:14:49 +0000 Subject: [PATCH 4/4] kobject: upgrade log of missing release func to warn MIME-Version: 1.0 Message-Id: <20230311-kobject-warning-v1-4-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?= X-Mailer: b4 0.12.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1678504493; l=1778; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=sOiskQrdfCnIJT4uxkWaPY9RlNau8EXPiu1P/We8tr0=; b=1ar91zJaVsxFyRXTGIyF83f5ARIzmhFC06gDZVTbz4t54KvrLwhjwOawF3WfOLvvQEPg1PIEi 02YIqkm5pAjC3TH5+EyWKZjVzcYuLfMLDj8RjMEHNFi76kqhIebznaV 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?1760039660902968625?= X-GMAIL-MSGID: =?utf-8?q?1760039660902968625?= The documentation is outspoken in its requirement for a release() function. Documentation/core-api/kobject.rst: One important point cannot be overstated: every kobject must have a release() method, and the kobject must persist (in a consistent state) until that method is called. If these constraints are not met, the code is flawed. Note that the kernel will warn you if you forget to provide a release() method. Do not try to get rid of this warning by providing an "empty" release function. So adapt the logging to actually provide the promised warning. At the moment there are still kobjects that do not have a release() function, notably integrity_ktype and acpi_hotplug_profile_ktype. Therefore leave it at pr_warn(). When the remaining cases are fixed the message could be upgraded to pr_err() and/or an -EINVAL could be returned. Signed-off-by: Thomas Weißschuh --- lib/kobject.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/kobject.c b/lib/kobject.c index 68ff8a48b784..8723f477095e 100644 --- a/lib/kobject.c +++ b/lib/kobject.c @@ -215,9 +215,11 @@ 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); + if (kobj->ktype && !kobj->ktype->release) { + pr_warn("'%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); + dump_stack_lvl(KERN_WARNING); + } parent = kobject_get(kobj->parent);