Message ID | 2024012822-exalted-fidgeting-f180@gregkh |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel+bounces-41894-ouuuleilei=gmail.com@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:2087:b0:106:209c:c626 with SMTP id gs7csp181865dyb; Sun, 28 Jan 2024 10:56:46 -0800 (PST) X-Google-Smtp-Source: AGHT+IGmoq8WWCMV0tV9X3Nrig3uH59eA9vhmMVW3Sz6QH7IbW2p3acQ86BzyUZ4nEQa0k0wV3// X-Received: by 2002:a05:6214:f6e:b0:684:dc67:4834 with SMTP id iy14-20020a0562140f6e00b00684dc674834mr5571718qvb.98.1706468205950; Sun, 28 Jan 2024 10:56:45 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706468205; cv=pass; d=google.com; s=arc-20160816; b=duYxF8+zuFFvPBaioxfYQ6Y4ySlfxB4PvTJ/atKnbWN3EOGYBBspn1CU9TgUQQI+Ny 9tGn5kijPKYCZm+P1fQ72GgVNlhHhDIEXDdJ2edsFYHaiihValyxy5DFfxZPOpozQfNy qNoJDvS8FnFajwo4DGTJVdpjZkwcrvmimLhLhHbcxFWUdBmYqbCQAFQaVvtA+KPRmFzd 6BzviwCZzvS1ycOtlzZBhAyToiN0yUxmy9BVrDm1dFQiu5HHtEvEsznAu3yW12PbCPdM tFnwdFBLYYYMrnO9bgI4bxEnpFT2U2lDQP4ovLJ7mOFe8l06iUxp/KC+0zxZclL3+kx3 d8jw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:lines:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=dxi8jwIj6370Yht9XMPObCds5jpEI29R9k4Vum0pGwo=; fh=uJ63lg5NwhmU+ik3GXHAcqxn91pi21dSeYLukgIL+08=; b=XOSwWRGjNJeenPterPqeoexAWFyOAn4QlY4xRF5ouC+6V7C3gU76AEJUcgoBL41YMj sFsdx6Imso+mFf3ERSPOHVqzQH4D5NmDEOyNXxdhTsq4TZU6ndTVOjHnhZ1ZtHQEFVwy 7fCH/678z2Tpzpcs1ASukBh/iwbwQBJeN30QaTYEw0IzL1Ob8pl0MnDJlIX+4ZTix6GD RxDrMu7pao1U21BTtc+sZ6J9soEbtswgM/Vgdv9BYU5Iyuf+Q71LCYVwODKvZNc10Chm NBakx3GUKyvNwm9LkHz0JmP/Mxm/KzrJmpsjiSyeXn9R6dXNMrkDRWpBQYgrKSP5siM0 Yzfg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=IImyyOVK; arc=pass (i=1 dkim=pass dkdomain=linuxfoundation.org); spf=pass (google.com: domain of linux-kernel+bounces-41894-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-41894-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id x15-20020a05620a0b4f00b00783ab114827si5832833qkg.391.2024.01.28.10.56.45 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jan 2024 10:56:45 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-41894-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=IImyyOVK; arc=pass (i=1 dkim=pass dkdomain=linuxfoundation.org); spf=pass (google.com: domain of linux-kernel+bounces-41894-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-41894-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id B90B41C21270 for <ouuuleilei@gmail.com>; Sun, 28 Jan 2024 18:56:45 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 746A433CDF; Sun, 28 Jan 2024 18:56:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="IImyyOVK" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6DA4F2E633; Sun, 28 Jan 2024 18:56:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706468187; cv=none; b=RZuNKI17lfucpsaS3gkQEvwaqZdWLLJLrFiFsjLCPt0ncpxlAT+SpslWIP7zoGPrKa5b6MGm2SqqRBXlnDSGHOeN0zt6u61sIplKOsqMb5H7dYPIs168E3Kf/7jVVtr7aQTEYqwvJ5LFew/IVwOq6ZoVbI9ARn9UVB2zhkoCS2E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706468187; c=relaxed/simple; bh=NXn49SNNkLuAR3eI0XKBU5ciRsCgriwwJFIZaXxDi98=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=JePUDrwvJ4pT10aKzRe6ScaP/h0lIaKCNsZ6pjCg/zNPd/8E0k+B12McYLk2oVnENzkZ/2fCmMVXCBTTP21B3lya22BTzDLanhl+zWuGxlrAeef0MS7zPH2b4srtKVUWRf6Fb65hVSvNHqkWQyYdGTjC4GLdK4NODxAkeVtJOQM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=IImyyOVK; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id D1261C433C7; Sun, 28 Jan 2024 18:56:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1706468186; bh=NXn49SNNkLuAR3eI0XKBU5ciRsCgriwwJFIZaXxDi98=; h=From:To:Cc:Subject:Date:From; b=IImyyOVKFTeWwUkB4vKyvjtOkxEfLmrw7VQIjvfKp0HqfJX4MvItOQGVnFu1ao43E uD8Xa8w+B5Zj5G8I6eo/xqpOS+uX897dfYEEoL6O64F/izJnnttzZFh71LIWTXWI/h BkZY7mz0hESA7dDIqU1al/HGIq77eD5XW6BBcLWg= From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> To: naveenkrishna.chatradhi@amd.com Cc: linux-kernel@vger.kernel.org, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Carlos Bilbao <carlos.bilbao@amd.com>, Hans de Goede <hdegoede@redhat.com>, =?utf-8?q?Ilpo_J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>, platform-driver-x86@vger.kernel.org Subject: [PATCH] platform/x86/amd/hsmp: switch to use device_add_groups() Date: Sun, 28 Jan 2024 10:56:22 -0800 Message-ID: <2024012822-exalted-fidgeting-f180@gregkh> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: <linux-kernel.vger.kernel.org> List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Lines: 34 X-Developer-Signature: v=1; a=openpgp-sha256; l=1335; i=gregkh@linuxfoundation.org; h=from:subject:message-id; bh=NXn49SNNkLuAR3eI0XKBU5ciRsCgriwwJFIZaXxDi98=; b=owGbwMvMwCRo6H6F97bub03G02pJDKnbFoeZmU9oi+OUNf/bHbJJyeztlKc5a8zXabdPePuk2 OVZw7v+jlgWBkEmBlkxRZYv23iO7q84pOhlaHsaZg4rE8gQBi5OAbjIR4a5Qo7Ke2w3WD37lVqc GvKIzf3Xlg03GOa7zKp7fW0DM0exxJ/1r6a9kVfIfBkAAA== X-Developer-Key: i=gregkh@linuxfoundation.org; a=openpgp; fpr=F4B60CC5BF78C2214A313DCB3147D40DDB2DFB29 Content-Transfer-Encoding: 8bit X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1789361605503877993 X-GMAIL-MSGID: 1789361605503877993 |
Series |
platform/x86/amd/hsmp: switch to use device_add_groups()
|
|
Commit Message
Greg KH
Jan. 28, 2024, 6:56 p.m. UTC
The use of devm_*() functions works properly for when the device
structure itself is dynamic, but the hsmp driver is attempting to have a
local, static, struct device and then calls devm_() functions attaching
memory to the device that will never be freed.
The logic of having a static struct device is almost never a wise
choice, but for now, just remove the use of devm_device_add_groups() in
this driver as it obviously is not needed.
Cc: Naveen Krishna Chatradhi <naveenkrishna.chatradhi@amd.com>
Cc: Carlos Bilbao <carlos.bilbao@amd.com>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
Cc: platform-driver-x86@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/platform/x86/amd/hsmp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
+ Cc Suma Hegde. On Sun, 28 Jan 2024, Greg Kroah-Hartman wrote: > The use of devm_*() functions works properly for when the device > structure itself is dynamic, but the hsmp driver is attempting to have a > local, static, struct device and then calls devm_() functions attaching > memory to the device that will never be freed. > > The logic of having a static struct device is almost never a wise > choice, but for now, just remove the use of devm_device_add_groups() in > this driver as it obviously is not needed. > > Cc: Naveen Krishna Chatradhi <naveenkrishna.chatradhi@amd.com> > Cc: Carlos Bilbao <carlos.bilbao@amd.com> > Cc: Hans de Goede <hdegoede@redhat.com> > Cc: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com> > Cc: platform-driver-x86@vger.kernel.org > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > --- > drivers/platform/x86/amd/hsmp.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/platform/x86/amd/hsmp.c b/drivers/platform/x86/amd/hsmp.c > index b55d80e29139..49ef0b1d6df0 100644 > --- a/drivers/platform/x86/amd/hsmp.c > +++ b/drivers/platform/x86/amd/hsmp.c > @@ -471,7 +471,7 @@ static int hsmp_create_sysfs_interface(void) > if (ret) > return ret; > } > - return devm_device_add_groups(plat_dev.dev, hsmp_attr_grps); > + return device_add_groups(plat_dev.dev, hsmp_attr_grps); > } Thanks Greg for bringing this up. I've added Suma who has some patches which change code around this area.
On 1/29/2024 6:16 PM, Ilpo Järvinen wrote: > Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding. > > > + Cc Suma Hegde. > > On Sun, 28 Jan 2024, Greg Kroah-Hartman wrote: > >> The use of devm_*() functions works properly for when the device >> structure itself is dynamic, but the hsmp driver is attempting to have a >> local, static, struct device and then calls devm_() functions attaching >> memory to the device that will never be freed. >> >> The logic of having a static struct device is almost never a wise >> choice, but for now, just remove the use of devm_device_add_groups() in >> this driver as it obviously is not needed. Hi Greg, Could you please hold on merging this patch for a week? I will push a patch for converting platform specific structure's memory allocation from static to a dynamic allocation. >> >> Cc: Naveen Krishna Chatradhi <naveenkrishna.chatradhi@amd.com> >> Cc: Carlos Bilbao <carlos.bilbao@amd.com> >> Cc: Hans de Goede <hdegoede@redhat.com> >> Cc: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com> >> Cc: platform-driver-x86@vger.kernel.org >> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> >> --- >> drivers/platform/x86/amd/hsmp.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/platform/x86/amd/hsmp.c b/drivers/platform/x86/amd/hsmp.c >> index b55d80e29139..49ef0b1d6df0 100644 >> --- a/drivers/platform/x86/amd/hsmp.c >> +++ b/drivers/platform/x86/amd/hsmp.c >> @@ -471,7 +471,7 @@ static int hsmp_create_sysfs_interface(void) >> if (ret) >> return ret; >> } >> - return devm_device_add_groups(plat_dev.dev, hsmp_attr_grps); >> + return device_add_groups(plat_dev.dev, hsmp_attr_grps); >> } > Thanks Greg for bringing this up. I've added Suma who has some patches > which change code around this area. Thanks Ilpo for adding me. I will push patch to address above issue on top of "Add ACPI probing support for HSMP" patch series. > -- > i. Thanks and Regards, Suma
On Thu, Feb 01, 2024 at 06:50:33PM +0530, Hegde, Suma wrote: > On 1/29/2024 6:16 PM, Ilpo Järvinen wrote: > > Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding. > > > > > > + Cc Suma Hegde. > > > > On Sun, 28 Jan 2024, Greg Kroah-Hartman wrote: > > > > > The use of devm_*() functions works properly for when the device > > > structure itself is dynamic, but the hsmp driver is attempting to have a > > > local, static, struct device and then calls devm_() functions attaching > > > memory to the device that will never be freed. > > > > > > The logic of having a static struct device is almost never a wise > > > choice, but for now, just remove the use of devm_device_add_groups() in > > > this driver as it obviously is not needed. > > Hi Greg, > > Could you please hold on merging this patch for a week? I will push a patch > for converting platform specific structure's memory allocation from static > to a dynamic > > allocation. Push it where? Ususally we do "first patch wins" type stuff, why not just do your work on top of mine? Also, when you do make the needed changes, please remove the explicit call to create sysfs groups and use the default groups pointer instead, that will make things much simpler and avoid races in the code. thanks, greg k-h
On Thu, 1 Feb 2024, Greg Kroah-Hartman wrote: > On Thu, Feb 01, 2024 at 06:50:33PM +0530, Hegde, Suma wrote: > > On 1/29/2024 6:16 PM, Ilpo Järvinen wrote: > > > Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding. > > > > > > > > > + Cc Suma Hegde. > > > > > > On Sun, 28 Jan 2024, Greg Kroah-Hartman wrote: > > > > > > > The use of devm_*() functions works properly for when the device > > > > structure itself is dynamic, but the hsmp driver is attempting to have a > > > > local, static, struct device and then calls devm_() functions attaching > > > > memory to the device that will never be freed. > > > > > > > > The logic of having a static struct device is almost never a wise > > > > choice, but for now, just remove the use of devm_device_add_groups() in > > > > this driver as it obviously is not needed. > > > > Hi Greg, > > > > Could you please hold on merging this patch for a week? I will push a patch > > for converting platform specific structure's memory allocation from static > > to a dynamic > > > > allocation. > > Push it where? Ususally we do "first patch wins" type stuff, why not > just do your work on top of mine? > > Also, when you do make the needed changes, please remove the explicit > call to create sysfs groups and use the default groups pointer instead, > that will make things much simpler and avoid races in the code. Hi Greg, Well, if you really want to "win" :-), please provide an updated version which considers the changes already made in the for-next branch (the current one won't apply).
On Thu, Feb 01, 2024 at 04:34:30PM +0200, Ilpo Järvinen wrote: > On Thu, 1 Feb 2024, Greg Kroah-Hartman wrote: > > > On Thu, Feb 01, 2024 at 06:50:33PM +0530, Hegde, Suma wrote: > > > On 1/29/2024 6:16 PM, Ilpo Järvinen wrote: > > > > Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding. > > > > > > > > > > > > + Cc Suma Hegde. > > > > > > > > On Sun, 28 Jan 2024, Greg Kroah-Hartman wrote: > > > > > > > > > The use of devm_*() functions works properly for when the device > > > > > structure itself is dynamic, but the hsmp driver is attempting to have a > > > > > local, static, struct device and then calls devm_() functions attaching > > > > > memory to the device that will never be freed. > > > > > > > > > > The logic of having a static struct device is almost never a wise > > > > > choice, but for now, just remove the use of devm_device_add_groups() in > > > > > this driver as it obviously is not needed. > > > > > > Hi Greg, > > > > > > Could you please hold on merging this patch for a week? I will push a patch > > > for converting platform specific structure's memory allocation from static > > > to a dynamic > > > > > > allocation. > > > > Push it where? Ususally we do "first patch wins" type stuff, why not > > just do your work on top of mine? > > > > Also, when you do make the needed changes, please remove the explicit > > call to create sysfs groups and use the default groups pointer instead, > > that will make things much simpler and avoid races in the code. > > Hi Greg, > > Well, if you really want to "win" :-), please provide an updated version > which considers the changes already made in the for-next branch (the > current one won't apply). Fair enough, I don't want to "win", I just want to squash any "hold off and don't make any changes to this file because I was going to plan on doing something else here in the future" type of stuff, as that is what has been documented to take down many projects in the past. That's why we almost always take patches that people have submitted today, instead of ignoring them for potential future changes, unless of course, they are not acceptable. I'll rebase on linux-next, rejecting it for that reason is totally valid :) thanks, greg k-h
Hi Greg, On 2/1/24 15:47, Greg Kroah-Hartman wrote: > On Thu, Feb 01, 2024 at 04:34:30PM +0200, Ilpo Järvinen wrote: >> On Thu, 1 Feb 2024, Greg Kroah-Hartman wrote: >> >>> On Thu, Feb 01, 2024 at 06:50:33PM +0530, Hegde, Suma wrote: >>>> On 1/29/2024 6:16 PM, Ilpo Järvinen wrote: >>>>> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding. >>>>> >>>>> >>>>> + Cc Suma Hegde. >>>>> >>>>> On Sun, 28 Jan 2024, Greg Kroah-Hartman wrote: >>>>> >>>>>> The use of devm_*() functions works properly for when the device >>>>>> structure itself is dynamic, but the hsmp driver is attempting to have a >>>>>> local, static, struct device and then calls devm_() functions attaching >>>>>> memory to the device that will never be freed. >>>>>> >>>>>> The logic of having a static struct device is almost never a wise >>>>>> choice, but for now, just remove the use of devm_device_add_groups() in >>>>>> this driver as it obviously is not needed. >>>> >>>> Hi Greg, >>>> >>>> Could you please hold on merging this patch for a week? I will push a patch >>>> for converting platform specific structure's memory allocation from static >>>> to a dynamic >>>> >>>> allocation. >>> >>> Push it where? Ususally we do "first patch wins" type stuff, why not >>> just do your work on top of mine? >>> >>> Also, when you do make the needed changes, please remove the explicit >>> call to create sysfs groups and use the default groups pointer instead, >>> that will make things much simpler and avoid races in the code. >> >> Hi Greg, >> >> Well, if you really want to "win" :-), please provide an updated version >> which considers the changes already made in the for-next branch (the >> current one won't apply). > > Fair enough, I don't want to "win", I just want to squash any "hold off > and don't make any changes to this file because I was going to plan on > doing something else here in the future" type of stuff, as that is what > has been documented to take down many projects in the past. > > That's why we almost always take patches that people have submitted > today, instead of ignoring them for potential future changes, unless of > course, they are not acceptable. > > I'll rebase on linux-next, rejecting it for that reason is totally valid :) I checked the code in linux-next and the dev passed to devm_device_add_groups() now is &amd_hsmp_platdev->dev and amd_hsmp_platdev gets properly removed from hsmp_plt_exit(), so I believe that keeping the devm_... call is the right thing to do. With that said this driver really could use some modernization (even though it is not a very old driver): 1. The sysfs attribute registration should really switch to using amd_hsmp_driver.driver.dev_groups rather then manually calling devm_device_add_groups(). 2. Ideally amd_hsmp_platdev should be the only global static variable and plat_dev should simply be drvdata of the platform_device. Suma, can you take a look at maybe fixing these, especially 1. ? Regards, Hans
On Thu, Feb 01, 2024 at 03:50:08PM +0100, Hans de Goede wrote: > Hi Greg, > > On 2/1/24 15:47, Greg Kroah-Hartman wrote: > > On Thu, Feb 01, 2024 at 04:34:30PM +0200, Ilpo Järvinen wrote: > >> On Thu, 1 Feb 2024, Greg Kroah-Hartman wrote: > >> > >>> On Thu, Feb 01, 2024 at 06:50:33PM +0530, Hegde, Suma wrote: > >>>> On 1/29/2024 6:16 PM, Ilpo Järvinen wrote: > >>>>> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding. > >>>>> > >>>>> > >>>>> + Cc Suma Hegde. > >>>>> > >>>>> On Sun, 28 Jan 2024, Greg Kroah-Hartman wrote: > >>>>> > >>>>>> The use of devm_*() functions works properly for when the device > >>>>>> structure itself is dynamic, but the hsmp driver is attempting to have a > >>>>>> local, static, struct device and then calls devm_() functions attaching > >>>>>> memory to the device that will never be freed. > >>>>>> > >>>>>> The logic of having a static struct device is almost never a wise > >>>>>> choice, but for now, just remove the use of devm_device_add_groups() in > >>>>>> this driver as it obviously is not needed. > >>>> > >>>> Hi Greg, > >>>> > >>>> Could you please hold on merging this patch for a week? I will push a patch > >>>> for converting platform specific structure's memory allocation from static > >>>> to a dynamic > >>>> > >>>> allocation. > >>> > >>> Push it where? Ususally we do "first patch wins" type stuff, why not > >>> just do your work on top of mine? > >>> > >>> Also, when you do make the needed changes, please remove the explicit > >>> call to create sysfs groups and use the default groups pointer instead, > >>> that will make things much simpler and avoid races in the code. > >> > >> Hi Greg, > >> > >> Well, if you really want to "win" :-), please provide an updated version > >> which considers the changes already made in the for-next branch (the > >> current one won't apply). > > > > Fair enough, I don't want to "win", I just want to squash any "hold off > > and don't make any changes to this file because I was going to plan on > > doing something else here in the future" type of stuff, as that is what > > has been documented to take down many projects in the past. > > > > That's why we almost always take patches that people have submitted > > today, instead of ignoring them for potential future changes, unless of > > course, they are not acceptable. > > > > I'll rebase on linux-next, rejecting it for that reason is totally valid :) > > I checked the code in linux-next and the dev passed to devm_device_add_groups() > now is &amd_hsmp_platdev->dev and amd_hsmp_platdev gets properly removed > from hsmp_plt_exit(), so I believe that keeping the devm_... call is > the right thing to do. I'm trying to delete the devm_device_add_groups() function entirely from the kernel, so I might disagree with you there :) > With that said this driver really could use some modernization > (even though it is not a very old driver): > > 1. The sysfs attribute registration should really switch to using > amd_hsmp_driver.driver.dev_groups rather then manually > calling devm_device_add_groups(). Yes, I'm all for that, I'll look at that this afternoon. That's my main goal here, to get rid of ALL manual group additions in the tree if at all possible. And for those rare cases that it isn't, because they are dynamically created, work on a solution for those. thanks, greg k-h
On Thu, Feb 01, 2024 at 04:34:30PM +0200, Ilpo Järvinen wrote: > On Thu, 1 Feb 2024, Greg Kroah-Hartman wrote: > > > On Thu, Feb 01, 2024 at 06:50:33PM +0530, Hegde, Suma wrote: > > > On 1/29/2024 6:16 PM, Ilpo Järvinen wrote: > > > > Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding. > > > > > > > > > > > > + Cc Suma Hegde. > > > > > > > > On Sun, 28 Jan 2024, Greg Kroah-Hartman wrote: > > > > > > > > > The use of devm_*() functions works properly for when the device > > > > > structure itself is dynamic, but the hsmp driver is attempting to have a > > > > > local, static, struct device and then calls devm_() functions attaching > > > > > memory to the device that will never be freed. > > > > > > > > > > The logic of having a static struct device is almost never a wise > > > > > choice, but for now, just remove the use of devm_device_add_groups() in > > > > > this driver as it obviously is not needed. > > > > > > Hi Greg, > > > > > > Could you please hold on merging this patch for a week? I will push a patch > > > for converting platform specific structure's memory allocation from static > > > to a dynamic > > > > > > allocation. > > > > Push it where? Ususally we do "first patch wins" type stuff, why not > > just do your work on top of mine? > > > > Also, when you do make the needed changes, please remove the explicit > > call to create sysfs groups and use the default groups pointer instead, > > that will make things much simpler and avoid races in the code. > > Hi Greg, > > Well, if you really want to "win" :-), please provide an updated version > which considers the changes already made in the for-next branch (the > current one won't apply). It applies just fine to the latest linux-next tree, version -next-20240201, what tree/branch are you referring to here? thanks, greg k-h
On Thu, Feb 01, 2024 at 06:40:30PM -0800, Greg Kroah-Hartman wrote: > On Thu, Feb 01, 2024 at 04:34:30PM +0200, Ilpo Järvinen wrote: > > On Thu, 1 Feb 2024, Greg Kroah-Hartman wrote: > > > > > On Thu, Feb 01, 2024 at 06:50:33PM +0530, Hegde, Suma wrote: > > > > On 1/29/2024 6:16 PM, Ilpo Järvinen wrote: > > > > > Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding. > > > > > > > > > > > > > > > + Cc Suma Hegde. > > > > > > > > > > On Sun, 28 Jan 2024, Greg Kroah-Hartman wrote: > > > > > > > > > > > The use of devm_*() functions works properly for when the device > > > > > > structure itself is dynamic, but the hsmp driver is attempting to have a > > > > > > local, static, struct device and then calls devm_() functions attaching > > > > > > memory to the device that will never be freed. > > > > > > > > > > > > The logic of having a static struct device is almost never a wise > > > > > > choice, but for now, just remove the use of devm_device_add_groups() in > > > > > > this driver as it obviously is not needed. > > > > > > > > Hi Greg, > > > > > > > > Could you please hold on merging this patch for a week? I will push a patch > > > > for converting platform specific structure's memory allocation from static > > > > to a dynamic > > > > > > > > allocation. > > > > > > Push it where? Ususally we do "first patch wins" type stuff, why not > > > just do your work on top of mine? > > > > > > Also, when you do make the needed changes, please remove the explicit > > > call to create sysfs groups and use the default groups pointer instead, > > > that will make things much simpler and avoid races in the code. > > > > Hi Greg, > > > > Well, if you really want to "win" :-), please provide an updated version > > which considers the changes already made in the for-next branch (the > > current one won't apply). > > It applies just fine to the latest linux-next tree, version > -next-20240201, what tree/branch are you referring to here? Ah platform driver tree, got it, will rebase...
On 2/1/2024 9:04 PM, Greg Kroah-Hartman wrote: > Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding. > > > On Thu, Feb 01, 2024 at 03:50:08PM +0100, Hans de Goede wrote: >> Hi Greg, >> >> On 2/1/24 15:47, Greg Kroah-Hartman wrote: >>> On Thu, Feb 01, 2024 at 04:34:30PM +0200, Ilpo Järvinen wrote: >>>> On Thu, 1 Feb 2024, Greg Kroah-Hartman wrote: >>>> >>>>> On Thu, Feb 01, 2024 at 06:50:33PM +0530, Hegde, Suma wrote: >>>>>> On 1/29/2024 6:16 PM, Ilpo Järvinen wrote: >>>>>>> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding. >>>>>>> >>>>>>> >>>>>>> + Cc Suma Hegde. >>>>>>> >>>>>>> On Sun, 28 Jan 2024, Greg Kroah-Hartman wrote: >>>>>>> >>>>>>>> The use of devm_*() functions works properly for when the device >>>>>>>> structure itself is dynamic, but the hsmp driver is attempting to have a >>>>>>>> local, static, struct device and then calls devm_() functions attaching >>>>>>>> memory to the device that will never be freed. >>>>>>>> >>>>>>>> The logic of having a static struct device is almost never a wise >>>>>>>> choice, but for now, just remove the use of devm_device_add_groups() in >>>>>>>> this driver as it obviously is not needed. >>>>>> Hi Greg, >>>>>> >>>>>> Could you please hold on merging this patch for a week? I will push a patch >>>>>> for converting platform specific structure's memory allocation from static >>>>>> to a dynamic >>>>>> >>>>>> allocation. >>>>> Push it where? Ususally we do "first patch wins" type stuff, why not >>>>> just do your work on top of mine? >>>>> >>>>> Also, when you do make the needed changes, please remove the explicit >>>>> call to create sysfs groups and use the default groups pointer instead, >>>>> that will make things much simpler and avoid races in the code. >>>> Hi Greg, >>>> >>>> Well, if you really want to "win" :-), please provide an updated version >>>> which considers the changes already made in the for-next branch (the >>>> current one won't apply). >>> Fair enough, I don't want to "win", I just want to squash any "hold off >>> and don't make any changes to this file because I was going to plan on >>> doing something else here in the future" type of stuff, as that is what >>> has been documented to take down many projects in the past. >>> >>> That's why we almost always take patches that people have submitted >>> today, instead of ignoring them for potential future changes, unless of >>> course, they are not acceptable. >>> >>> I'll rebase on linux-next, rejecting it for that reason is totally valid :) >> I checked the code in linux-next and the dev passed to devm_device_add_groups() >> now is &amd_hsmp_platdev->dev and amd_hsmp_platdev gets properly removed >> from hsmp_plt_exit(), so I believe that keeping the devm_... call is >> the right thing to do. > I'm trying to delete the devm_device_add_groups() function entirely from > the kernel, so I might disagree with you there :) > >> With that said this driver really could use some modernization >> (even though it is not a very old driver): >> >> 1. The sysfs attribute registration should really switch to using >> amd_hsmp_driver.driver.dev_groups rather then manually >> calling devm_device_add_groups(). > Yes, I'm all for that, I'll look at that this afternoon. That's my main > goal here, to get rid of ALL manual group additions in the tree if at > all possible. And for those rare cases that it isn't, because they are > dynamically created, work on a solution for those. > > thanks, > > greg k-h\ Thanks Hans for the suggestion. I will push patches addressing both 1 & 2 on review-ilpo branch. Regards, Suma
diff --git a/drivers/platform/x86/amd/hsmp.c b/drivers/platform/x86/amd/hsmp.c index b55d80e29139..49ef0b1d6df0 100644 --- a/drivers/platform/x86/amd/hsmp.c +++ b/drivers/platform/x86/amd/hsmp.c @@ -471,7 +471,7 @@ static int hsmp_create_sysfs_interface(void) if (ret) return ret; } - return devm_device_add_groups(plat_dev.dev, hsmp_attr_grps); + return device_add_groups(plat_dev.dev, hsmp_attr_grps); } static int hsmp_cache_proto_ver(void)