From: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
To: "Zhuo, Qiuxu" <qiuxu.zhuo@intel.com>,
Yazen Ghannam <yazen.ghannam@amd.com>
Cc: "linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Luck, Tony" <tony.luck@intel.com>,
"x86@kernel.org" <x86@kernel.org>,
"avadhut.naik@amd.com" <avadhut.naik@amd.com>,
"john.allen@amd.com" <john.allen@amd.com>,
"mario.limonciello@amd.com" <mario.limonciello@amd.com>,
"bhelgaas@google.com" <bhelgaas@google.com>,
"Shyam-sundar.S-k@amd.com" <Shyam-sundar.S-k@amd.com>,
"richard.gong@amd.com" <richard.gong@amd.com>,
"jdelvare@suse.com" <jdelvare@suse.com>,
"linux@roeck-us.net" <linux@roeck-us.net>,
"clemens@ladisch.de" <clemens@ladisch.de>,
"hdegoede@redhat.com" <hdegoede@redhat.com>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
"linux-hwmon@vger.kernel.org" <linux-hwmon@vger.kernel.org>,
"platform-driver-x86@vger.kernel.org"
<platform-driver-x86@vger.kernel.org>,
"naveenkrishna.chatradhi@amd.com"
<naveenkrishna.chatradhi@amd.com>,
"carlos.bilbao.osdev@gmail.com" <carlos.bilbao.osdev@gmail.com>
Subject: RE: [PATCH 06/16] x86/amd_nb: Simplify root device search
Date: Thu, 31 Oct 2024 12:08:20 +0200 (EET) [thread overview]
Message-ID: <77c96d66-02b9-965d-4c43-c588aedd1d48@linux.intel.com> (raw)
In-Reply-To: <CY8PR11MB7134D716377B0C5E40E5C8FF89552@CY8PR11MB7134.namprd11.prod.outlook.com>
On Thu, 31 Oct 2024, Zhuo, Qiuxu wrote:
> > From: Yazen Ghannam <yazen.ghannam@amd.com>
> > [...]
> > +struct pci_dev *amd_node_get_root(u16 node) {
> > + struct pci_dev *df_f0 __free(pci_dev_put) = NULL;
>
> NULL pointer initialization is not necessary.
It is, because __free() is used...
> > + struct pci_dev *root;
> > + u16 cntl_off;
> > + u8 bus;
> > +
> > + if (!boot_cpu_has(X86_FEATURE_ZEN))
> > + return NULL;
...This would try to free() whatever garbage df_f0 holds...
> > + /*
> > + * D18F0xXXX [Config Address Control] (DF::CfgAddressCntl)
> > + * Bits [7:0] (SecBusNum) holds the bus number of the root device for
> > + * this Data Fabric instance. The segment, device, and function will be
> > 0.
> > + */
> > + df_f0 = amd_node_get_func(node, 0);
...However, the recommended practice when using __free() is this (as
documented in include/linux/cleanup.h):
* Given that the "__free(...) = NULL" pattern for variables defined at
* the top of the function poses this potential interdependency problem
* the recommendation is to always define and assign variables in one
* statement and not group variable definitions at the top of the
* function when __free() is used.
I know the outcome will look undesirable to some, me included, but
there's little that can be done to that because there's no other way for
the compiler to infer the order.
That being said, strictly speaking it isn't causing issue in this function
as is but it's still a bad pattern to initialize to = NULL because in
other instances it will cause problems. So better to steer away from the
pattern entirely rather than depend on reviewers noticing the a cleaup
ordering problem gets introduced by some later change to the function.
> > + if (!df_f0)
> > + return NULL;
--
i.
next prev parent reply other threads:[~2024-10-31 10:08 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-23 17:21 [PATCH 00/16] AMD NB and SMN rework Yazen Ghannam
2024-10-23 17:21 ` [PATCH 01/16] x86/mce/amd: Remove shared threshold bank plumbing Yazen Ghannam
2024-10-23 17:21 ` [PATCH 02/16] x86/amd_nb: Restrict init function to AMD-based systems Yazen Ghannam
2024-10-31 8:09 ` Zhuo, Qiuxu
2024-10-31 10:36 ` Borislav Petkov
2024-10-31 11:50 ` Zhuo, Qiuxu
2024-10-31 13:11 ` Borislav Petkov
2024-10-23 17:21 ` [PATCH 03/16] x86/amd_nb: Clean up early_is_amd_nb() Yazen Ghannam
2024-10-25 15:58 ` Borislav Petkov
2024-10-29 14:39 ` Yazen Ghannam
2024-10-29 15:08 ` Borislav Petkov
2024-10-29 16:15 ` Luck, Tony
2024-10-30 14:21 ` Yazen Ghannam
2024-10-31 0:53 ` Sohil Mehta
2024-10-31 10:34 ` [PATCH] x86/cpufeature: Document cpu_feature_enabled() as the default to use Borislav Petkov
2024-10-31 18:26 ` Sohil Mehta
2024-10-31 19:15 ` Borislav Petkov
2024-11-05 19:59 ` Dave Hansen
2024-10-31 10:24 ` [PATCH 03/16] x86/amd_nb: Clean up early_is_amd_nb() Borislav Petkov
2024-10-23 17:21 ` [PATCH 04/16] x86: Start moving AMD Node functionality out of AMD_NB Yazen Ghannam
2024-10-23 17:21 ` [PATCH 05/16] x86/amd_nb: Simplify function 4 search Yazen Ghannam
2024-10-31 11:15 ` Borislav Petkov
2024-10-23 17:21 ` [PATCH 06/16] x86/amd_nb: Simplify root device search Yazen Ghannam
2024-10-31 7:52 ` Zhuo, Qiuxu
2024-10-31 10:08 ` Ilpo Järvinen [this message]
2024-10-31 13:10 ` Zhuo, Qiuxu
2024-10-31 15:34 ` Yazen Ghannam
2024-10-31 15:42 ` Ilpo Järvinen
2024-10-31 15:45 ` Yazen Ghannam
2024-10-31 11:20 ` Borislav Petkov
2024-10-31 15:29 ` Yazen Ghannam
2024-10-23 17:21 ` [PATCH 07/16] x86/amd_nb: Use topology info to get AMD node count Yazen Ghannam
2024-10-23 17:21 ` [PATCH 08/16] x86/amd_nb: Simplify function 3 search Yazen Ghannam
2024-10-23 17:21 ` [PATCH 09/16] x86/amd_nb, x86/amd_node: Simplify amd_pci_dev_to_node_id() Yazen Ghannam
2024-11-04 14:23 ` Borislav Petkov
2024-11-05 14:54 ` Yazen Ghannam
2024-10-23 17:21 ` [PATCH 10/16] x86/amd_nb: Move SMN access code to a new amd_smn driver Yazen Ghannam
2024-11-04 14:29 ` Borislav Petkov
2024-11-05 14:58 ` Yazen Ghannam
2024-11-05 19:42 ` Borislav Petkov
2024-10-23 17:21 ` [PATCH 11/16] x86/amd_smn: Fixup __amd_smn_rw() Yazen Ghannam
2024-11-04 14:32 ` Borislav Petkov
2024-11-05 14:59 ` Yazen Ghannam
2024-10-23 17:21 ` [PATCH 12/16] x86/amd_smn: Remove dependency on AMD_NB Yazen Ghannam
2024-10-23 17:21 ` [PATCH 13/16] x86/amd_smn: Use defines for register offsets Yazen Ghannam
2024-10-23 17:21 ` [PATCH 14/16] x86/amd_smn, platform/x86/amd/hsmp: Have HSMP use SMN Yazen Ghannam
2024-10-24 13:23 ` Ilpo Järvinen
2024-10-24 16:06 ` Yazen Ghannam
2024-10-25 13:39 ` Ilpo Järvinen
2024-10-23 17:21 ` [PATCH 15/16] x86/amd_smn: Add SMN offsets to exclusive region access Yazen Ghannam
2024-10-23 17:21 ` [PATCH 16/16] x86/amd_smn: Add support for debugfs access to SMN registers Yazen Ghannam
2024-11-05 19:21 ` Borislav Petkov
2024-11-05 19:46 ` Mario Limonciello
2024-11-05 19:53 ` Borislav Petkov
2024-11-05 19:56 ` Mario Limonciello
2024-11-05 19:59 ` Borislav Petkov
2024-11-05 20:53 ` Mario Limonciello
2024-10-23 17:59 ` [PATCH 00/16] AMD NB and SMN rework Bjorn Helgaas
2024-10-24 16:01 ` Yazen Ghannam
2024-10-24 17:46 ` Bjorn Helgaas
2024-10-24 20:08 ` Mario Limonciello
2024-10-24 21:06 ` Bjorn Helgaas
2024-10-24 21:20 ` Mario Limonciello
2024-10-24 21:47 ` Bjorn Helgaas
2024-10-31 16:22 ` Yazen Ghannam
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=77c96d66-02b9-965d-4c43-c588aedd1d48@linux.intel.com \
--to=ilpo.jarvinen@linux.intel.com \
--cc=Shyam-sundar.S-k@amd.com \
--cc=avadhut.naik@amd.com \
--cc=bhelgaas@google.com \
--cc=carlos.bilbao.osdev@gmail.com \
--cc=clemens@ladisch.de \
--cc=hdegoede@redhat.com \
--cc=jdelvare@suse.com \
--cc=john.allen@amd.com \
--cc=linux-edac@vger.kernel.org \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=mario.limonciello@amd.com \
--cc=naveenkrishna.chatradhi@amd.com \
--cc=platform-driver-x86@vger.kernel.org \
--cc=qiuxu.zhuo@intel.com \
--cc=richard.gong@amd.com \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
--cc=yazen.ghannam@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).