From: Michal Wajdeczko <michal.wajdeczko@intel.com>
To: "Cavitt, Jonathan" <jonathan.cavitt@intel.com>,
"intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>
Cc: "De Marchi, Lucas" <lucas.demarchi@intel.com>
Subject: Re: [PATCH 4/5] drm/xe/configfs: Allow configurations only for Intel VGA devices
Date: Fri, 18 Jul 2025 16:33:57 +0200 [thread overview]
Message-ID: <cda446a2-bcf5-4865-b30a-c807e82d5e3e@intel.com> (raw)
In-Reply-To: <CH0PR11MB544405DF502241716CBE896EE550A@CH0PR11MB5444.namprd11.prod.outlook.com>
On 18.07.2025 16:27, Cavitt, Jonathan wrote:
> -----Original Message-----
> From: Wajdeczko, Michal <Michal.Wajdeczko@intel.com>
> Sent: Friday, July 18, 2025 2:30 AM
> To: Cavitt, Jonathan <jonathan.cavitt@intel.com>; intel-xe@lists.freedesktop.org
> Cc: De Marchi, Lucas <lucas.demarchi@intel.com>
> Subject: Re: [PATCH 4/5] drm/xe/configfs: Allow configurations only for Intel VGA devices
>>
>> On 17.07.2025 23:19, Cavitt, Jonathan wrote:
>>> -----Original Message-----
>>>> From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Michal Wajdeczko
>>>> Sent: Thursday, July 17, 2025 11:48 AM
>>>> To: intel-xe@lists.freedesktop.org
>>>> Cc: Wajdeczko, Michal <Michal.Wajdeczko@intel.com>; De Marchi, Lucas <lucas.demarchi@intel.com>
>>>> Subject: [PATCH 4/5] drm/xe/configfs: Allow configurations only for Intel VGA devices
>>>>
>>>> The Xe driver supports only Intel GPUs devices that all are PCI
>>>> VGA class devices. Reject creation of configuration directories
>>>> for PCI device addresses that are not Intel or VGA.
>>>>
>>>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>>>> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>>>> ---
>>>> drivers/gpu/drm/xe/xe_configfs.c | 7 +++++++
>>>> 1 file changed, 7 insertions(+)
>>>>
>>>> diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
>>>> index 00bb4e412c12..1df8cce78f13 100644
>>>> --- a/drivers/gpu/drm/xe/xe_configfs.c
>>>> +++ b/drivers/gpu/drm/xe/xe_configfs.c
>>>> @@ -260,6 +260,7 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
>>>> struct xe_config_device *dev;
>>>> struct pci_dev *pdev;
>>>> char canonical[16];
>>>> + bool match;
>>>> int ret;
>>>>
>>>> ret = sscanf(name, "%x:%x:%x.%d", &domain, &bus, &slot, &function);
>>>> @@ -275,8 +276,14 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
>>>> pdev = pci_get_domain_bus_and_slot(domain, bus, PCI_DEVFN(slot, function));
>>>> if (!pdev)
>>>> return ERR_PTR(-ENODEV);
>>>> +
>>>> + match = pci_is_vga(pdev) && pdev->vendor == PCI_VENDOR_ID_INTEL;
>>>
>>> This match check is relatively short. Debatably, we could just do the comparison
>>> directly in the if-statement instead of assigning the result to a new variable.
>>
>> what do you mean by the "if-statement" ?
>>
>> we can't return early here as then we would leak (again) a device
>> reference that we just fixed in patch 1/5
>
> By 'if-statement', I meant this one lower down, after the pci_dev_put:
>
> """
> if (!match)
> """
>
> I was suggesting that we could perform the check there instead. Something like:
>
> """
> if (!pci_is_vga(pdev) || pdev->vendor != PCI_VENDOR_ID_INTEL)
> """
>
> Doing so would eliminate the need for the new variable 'match' defined in this patch.
>
> However, I understand why we're not doing it that way.
just to confirm (as this is a different reason than I mentioned above):
after pci_dev_put() we shouldn't access pdev any more
> -Jonathan Cavitt
>
>>
>>>
>>> I won't block on it, though, since clearly labeling these comparisons is important. Though,
>>> perhaps we should call it "op_supported" instead of "match"? I understand why it's called
>>> "match" here (it's more in line with how it's used in patch 5), but maybe this check and the
>>> check in patch 5 should be separated out?
>>
>> I'm not sure that adding more flags variables will make code any
>> cleaner, what's important are conditions inside, and yes, this is
>> aligned with next patch, which adds more conditions to be checked before
>> we can claim that there is a "match" between device address and device
>> class that we may support
>>
>>>
>>> Just a suggestion.
>>>
>>> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
>>> -Jonathan Cavitt
>>>
>>>> +
>>>> pci_dev_put(pdev);
>>>>
>>>> + if (!match)
>>>> + return ERR_PTR(-ENODEV);
>>>> +
>>>> dev = kzalloc(sizeof(*dev), GFP_KERNEL);
>>>> if (!dev)
>>>> return ERR_PTR(-ENOMEM);
>>>> --
>>>> 2.47.1
>>>>
>>>>
>>
>>
next prev parent reply other threads:[~2025-07-18 14:34 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-17 18:48 [PATCH 0/5] Updates for drm/xe/configfs Michal Wajdeczko
2025-07-17 18:48 ` [PATCH 1/5] drm/xe/configfs: Fix pci_dev reference leak Michal Wajdeczko
2025-07-17 19:35 ` Lucas De Marchi
2025-07-17 21:16 ` Cavitt, Jonathan
2025-07-18 8:58 ` Michal Wajdeczko
2025-07-17 18:48 ` [PATCH 2/5] drm/xe/configfs: Enforce canonical device names Michal Wajdeczko
2025-07-17 19:43 ` Lucas De Marchi
2025-07-17 20:27 ` Michal Wajdeczko
2025-07-17 21:17 ` Cavitt, Jonathan
2025-07-18 9:06 ` Michal Wajdeczko
2025-07-18 14:16 ` Cavitt, Jonathan
2025-07-18 14:05 ` [PATCH v2 " Michal Wajdeczko
2025-07-18 20:52 ` Lucas De Marchi
2025-07-17 18:48 ` [PATCH 3/5] drm/xe/configfs: Use pci_name() for lookup Michal Wajdeczko
2025-07-17 19:44 ` Lucas De Marchi
2025-07-17 21:18 ` Cavitt, Jonathan
2025-07-18 9:23 ` Michal Wajdeczko
2025-07-17 18:48 ` [PATCH 4/5] drm/xe/configfs: Allow configurations only for Intel VGA devices Michal Wajdeczko
2025-07-17 19:52 ` Lucas De Marchi
2025-07-17 20:51 ` Michal Wajdeczko
2025-07-18 21:02 ` Lucas De Marchi
2025-07-17 21:19 ` Cavitt, Jonathan
2025-07-18 9:29 ` Michal Wajdeczko
2025-07-18 14:27 ` Cavitt, Jonathan
2025-07-18 14:33 ` Michal Wajdeczko [this message]
2025-07-18 17:28 ` Cavitt, Jonathan
2025-07-18 14:17 ` [PATCH v2 " Michal Wajdeczko
2025-07-17 18:48 ` [PATCH 5/5] drm/xe/configfs: Allow adding configurations for future VFs Michal Wajdeczko
2025-07-17 21:19 ` Cavitt, Jonathan
2025-07-17 19:06 ` ✓ CI.KUnit: success for Updates for drm/xe/configfs Patchwork
2025-07-17 20:13 ` ✓ Xe.CI.BAT: " Patchwork
2025-07-18 14:23 ` ✓ CI.KUnit: success for Updates for drm/xe/configfs (rev3) Patchwork
2025-07-18 15:15 ` ✓ Xe.CI.BAT: " Patchwork
2025-07-19 7:47 ` ✗ Xe.CI.Full: failure for Updates for drm/xe/configfs Patchwork
2025-07-21 10:53 ` ✗ Xe.CI.Full: failure for Updates for drm/xe/configfs (rev3) Patchwork
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=cda446a2-bcf5-4865-b30a-c807e82d5e3e@intel.com \
--to=michal.wajdeczko@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=jonathan.cavitt@intel.com \
--cc=lucas.demarchi@intel.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