Received: by 2002:a05:7412:3784:b0:e2:908c:2ebd with SMTP id jk4csp1791076rdb; Tue, 3 Oct 2023 00:31:22 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFuue3bAMelX9Y58myskFj6vyrHE1bVCowFYxX1osICBcb1d+yVOOfzazgL8MYi5X7wcZw2 X-Received: by 2002:a05:6830:3449:b0:6b9:26ce:5e5c with SMTP id b9-20020a056830344900b006b926ce5e5cmr15975090otu.31.1696318282687; Tue, 03 Oct 2023 00:31:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696318282; cv=none; d=google.com; s=arc-20160816; b=ZTVTc8jkf139Cm3tjX0r58hQe0CRlZgINSQ/IaVE2LhCpNEQgnEgxwcbbru7FTxRpJ vvrd15DapCbyGCp9Ay2zqZ6dSrayyjWTmg+FTskwdkrKWFc7tFRrRTKup6iWebOOnTPl 0rkdukgeRTeU/ozBGRLbWE3SuQrZmcNETLitnDoDXJnWUgbe0BzZsMK42DufgF35Ndg/ MK7Zwk9BC3XbdKZlHYLDxw3WkYJJTpQopz7UH1DGUwqo8P8MBINfPzwCYEsxlNIJvnGi 19jDUbwUjiCt4pDULHbpRgrt5EejKBrnV0Ujo9U2JdHvGIjhkwUJ12aJhNgXlUS4Lezd mspw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:cc:to:from:date:references:in-reply-to :message-id:mime-version:user-agent:feedback-id:dkim-signature :dkim-signature; bh=FBNoJn7AO+0RF4pMfQLchcmc4tGsm8rfO7xGbY+S0Rg=; fh=3FOeIznbE6ZbYFqgCfy1iv8tLUIrUQOlCCHjsTh2umM=; b=p0UPMF6RJmawD7AVqBmmxZ1tcpdWx9Ca1WlI0VFq/P+rgcqQJqITZ3F6Qg05wluj4G mTesT6a8NFjx4+jExfPlCCsXog3qJ8Cb0jVqr8rerbVVDfBm4eiH+12ZPbXpOAvunGX5 SWPA+QWISesrS3PRZAbdoZNy4ELVsoNFEj7Y/4AWQkoeX3nik+DAcctHASb2NuI9YfV8 mHu6btpaQQPvVm6AeAsHmH9IHNN44UZgedlUDHVz+8Q7xwU5jRJAMny6xlcwr+gmw4Sx vFz1dIKkBWynFt5BRO6QowixdSajBvF7Ci1zrgsqrd34apiAnjPBQ2oR/xeZaZlZKMAF dcPA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@aj.id.au header.s=fm1 header.b=YfWNxqdZ; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=rYGAKl+a; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id c192-20020a6335c9000000b00565f0e9cfbbsi917251pga.382.2023.10.03.00.31.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Oct 2023 00:31:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; dkim=pass header.i=@aj.id.au header.s=fm1 header.b=YfWNxqdZ; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=rYGAKl+a; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 0FFE28112983; Tue, 3 Oct 2023 00:31:04 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231442AbjJCHax (ORCPT + 99 others); Tue, 3 Oct 2023 03:30:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43182 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230456AbjJCHav (ORCPT ); Tue, 3 Oct 2023 03:30:51 -0400 X-Greylist: delayed 446 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Tue, 03 Oct 2023 00:30:48 PDT Received: from new4-smtp.messagingengine.com (new4-smtp.messagingengine.com [66.111.4.230]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 180E283; Tue, 3 Oct 2023 00:30:47 -0700 (PDT) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailnew.nyi.internal (Postfix) with ESMTP id 97BC55801BC; Tue, 3 Oct 2023 03:23:18 -0400 (EDT) Received: from imap50 ([10.202.2.100]) by compute4.internal (MEProxy); Tue, 03 Oct 2023 03:23:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aj.id.au; h=cc :cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm1; t=1696317798; x=1696324998; bh=FB NoJn7AO+0RF4pMfQLchcmc4tGsm8rfO7xGbY+S0Rg=; b=YfWNxqdZbkMDRfT2pN aP9ZdFgV/PhnUDdcIzqcFNMs9Ohj9BRGrJ5rTW/11qcH1XY2EyAYWrAlZhq1ip5i 6vQhyR1Jl8cE1JtXWBFViEuvY8EwwkgWgOo5gumWb7cpWKvh+DVfgibo7AS4um4J g++GTdn1pv4EKJd8pjRzX/cZ1TM0TLhq2gvkjxB5DbEPZq01T/EU1nMDnw8pgiPJ RXGzWC1w6a+sRE/5zLCH3ABDgvf+HSawQ/wr6F3qZDMHpAskRUnKAvc/uofBjEOK dYcEb57Q4kulZpPIaqa690uY9/YFAmAMBdPyHc0kI+hjQReB+LS1q/e1tOikJnZJ ImQA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; t=1696317798; x=1696324998; bh=FBNoJn7AO+0RF 4pMfQLchcmc4tGsm8rfO7xGbY+S0Rg=; b=rYGAKl+ah5bkYCSUdgBSlEPNRmN3o GYOHMi1vF2XXDnWMUHV1eZ8k/7zDqOmzWoG51bkQ2W5Yf3Q7++3kMtnSBVryqg5V uOXwRjmAMCLXlCFHh/W9RgyH0SDkendigf1n0mTg2mL1zw1VhbROn2F6Xp3FOm0n 7juBU/3dZIksZjIRsENxsw41PgKywf5zdTRuSnBu9V9NB8/tIIdsR/rRMe4ZzfA+ mccAzQcHW5/yHl0d5YJmr88/cTwOqrETJDgHM2/h3djH2cpyI1XLxN/7Fy9Ow85x BgWXv8J9WuDTKDM4lErgYUg7Og8YGA8lxtyUReovslfJkNWc54WPtzg/g== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrfeehgddugecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefofgggkfgjfhffhffvvefutgesthdtredtreertdenucfhrhhomhepfdetnhgu rhgvficulfgvfhhfvghrhidfuceorghnughrvgifsegrjhdrihgurdgruheqnecuggftrf grthhtvghrnhepvdevvdeiueetheeiffdthfejvedvteffvefghffhueduffehvdekfeev ieeujeelnecuffhomhgrihhnpehkvghrnhgvlhdrohhrghenucevlhhushhtvghrufhiii gvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegrnhgurhgvfiesrghjrdhiugdrrghu X-ME-Proxy: Feedback-ID: idfb84289:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id 054F51700089; Tue, 3 Oct 2023 03:23:18 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.9.0-alpha0-958-g1b1b911df8-fm-20230927.002-g1b1b911d MIME-Version: 1.0 Message-Id: <1fd97872-446e-42f3-84ad-6e490d63e12d@app.fastmail.com> In-Reply-To: <20230929120835.0000108e@Huawei.com> References: <20230928123009.2913-1-aladyshev22@gmail.com> <20230928123009.2913-4-aladyshev22@gmail.com> <20230929120835.0000108e@Huawei.com> Date: Tue, 03 Oct 2023 17:52:33 +1030 From: "Andrew Jeffery" To: "Jonathan Cameron" , "Konstantin Aladyshev" Cc: "Tomer Maimon" , "Corey Minyard" , "Patrick Venture" , openbmc@lists.ozlabs.org, linux-kernel@vger.kernel.org, "Tali Perry" , "Avi Fishman" , "Eric Dumazet" , netdev , linux-aspeed@lists.ozlabs.org, "Joel Stanley" , "Jakub Kicinski" , "Jeremy Kerr" , "Matt Johnston" , "Paolo Abeni" , openipmi-developer@lists.sourceforge.net, "David Miller" , linux-arm-kernel@lists.infradead.org, "Benjamin Fair" Subject: Re: [PATCH 3/3] mctp: Add MCTP-over-KCS transport binding Content-Type: text/plain 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_BLOCKED, SPF_HELO_PASS,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-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Tue, 03 Oct 2023 00:31:05 -0700 (PDT) Hi Jonathan, On Fri, 29 Sep 2023, at 20:38, Jonathan Cameron wrote: > On Thu, 28 Sep 2023 15:30:09 +0300 > Konstantin Aladyshev wrote: > >> This change adds a MCTP KCS transport binding, as defined by the DMTF >> specificiation DSP0254 - "MCTP KCS Transport Binding". >> A MCTP protocol network device is created for each KCS channel found in >> the system. >> The interrupt code for the KCS state machine is based on the current >> IPMI KCS driver. >> >> Signed-off-by: Konstantin Aladyshev > > Drive by review as I was curious and might as well comment whilst reading. > Some comments seem to equally apply to other kcs drivers so maybe I'm > missing something... > I doubt you're missing anything. I reworked the KCS stuff a while back to make it a bit more general. Prior to Konstantin's work here the subsystem lived in its own little dark corner and might have benefitted from broader review. Some of the concerns with Konstantin's work are likely concerns with what I'd done, which he probably used as a guide. For reference the rework series is here: https://lore.kernel.org/all/20210608104757.582199-1-andrew@aj.id.au/ >> + >> +static DEFINE_SPINLOCK(kcs_bmc_mctp_instances_lock); >> +static LIST_HEAD(kcs_bmc_mctp_instances); > As mentioned below, this seems to be only used to find some data again > in remove. Lots of cleaner ways to do that than a list in the driver. > I'd explore the alternatives. Yeah, it's a little clumsy. I'll look into better ways to address the problem. > >> + if (!ndev) { >> + dev_err(kcs_bmc->dev, >> + "alloc_netdev failed for KCS channel %d\n", >> + kcs_bmc->channel); > No idea if the kcs subsystem handles deferred probing right, but in general > anything called just in 'probe' routines can use dev_err_probe() to pretty > print errors and also register any deferred cases with the logging stuff that > lets you find out why they were deferred. Let me see if there's work to do in the KCS subsystem to deal with deferred probing. I expect that there is. > > >> + if (rc) >> + goto free_netdev; >> + >> + spin_lock_irq(&kcs_bmc_mctp_instances_lock); >> + list_add(&mkcs->entry, &kcs_bmc_mctp_instances); > > Add a callback and devm_add_action_or_reset() to unwind this as well. I'll check the other KCS users as well. > > > >> + devm_kfree(kcs_bmc->dev, mkcs->data_in); >> + devm_kfree(kcs_bmc->dev, mkcs->data_out); > > Alarm bells occur whenever an explicit devm_kfree turns up in > except in complex corner cases. Please look at how devm based > resource management works. These should not be here. Ah, I think this was an oversight in how I reworked the drivers a while back. I changed the arrangement of the structures but retained the devm_* approach to resource management. Let me page the KCS stuff back in so I can clean that up. > > Also, remove_device should either do things in the opposite order > to add_device, or it should have comments saying why not! +1 > > >> + return 0; >> +} >> + >> +static const struct kcs_bmc_driver_ops kcs_bmc_mctp_driver_ops = { >> + .add_device = kcs_bmc_mctp_add_device, >> + .remove_device = kcs_bmc_mctp_remove_device, >> +}; >> + >> +static struct kcs_bmc_driver kcs_bmc_mctp_driver = { >> + .ops = &kcs_bmc_mctp_driver_ops, >> +}; >> + >> +static int __init mctp_kcs_init(void) >> +{ >> + kcs_bmc_register_driver(&kcs_bmc_mctp_driver); >> + return 0; >> +} >> + >> +static void __exit mctp_kcs_exit(void) >> +{ >> + kcs_bmc_unregister_driver(&kcs_bmc_mctp_driver); >> +} > > Hmm. So kcs is a very small subsystem hence no one has done the usual > module_kcs_driver() wrapper (see something like module_i2c_driver) > for an example. I'll probably deal with this in the course of the rest of the poking around. Thanks for the drive-by comments! Andrew