[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 2/8] vpci: Refactor REGISTER_VPCI_INIT
- To: Jan Beulich <jbeulich@xxxxxxxx>
- From: "Chen, Jiqian" <Jiqian.Chen@xxxxxxx>
- Date: Thu, 19 Jun 2025 06:39:53 +0000
- Accept-language: en-US
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=TinCgyJgQx2LIAq3YZrsGtujcBeI9O5N0bzvleJjHpY=; b=Q04krQCZzMvJbPVWNXJJ8tKFmWy2bDq9x/u8fM+QuaJv9jsV7GXCnTUpieKy5xp/yZ8JVa92H6WpYmGWAMPBoZtl1RttmmH3I2mxX/MBBcPrwXff0jyeN71MVl/Z/Np5AgDpjz+W9ecvb4bi8wDiyzCQ4v5MRuhK9Mai/+Czskz3DyIrSiw1aYW8kF5HsZtYnWcEWDsoFOcGhb+vnHgS0FjnkO/acWVXwTNLErTGs0W+Pt/P1qY/k/UVFsNSu4+JcFtTX5Gyp52BeGof8R4nDy6edDWYxIxTzGqtjMMZNsDPJa/b7GojMwpbBUQIo+QmBQs6IPKtE68v0nS292TzVg==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SjslNtHXAnNdn5RnbfBjRgQ/Zw0MgRrhgOsRMazmbdrXg20uH3Vnag9vQ1vBIrxRNZYiGVncHYrk2osIDt3DjdpDoEuhvE3Cy0mULHiG520CbrQurTYi3Lv5I45qL0o/fiaDEZqcx4bxPbWDHFftOig7qsW33LJ/OeiSpjIy2iMTOTsNig0pY6C8NVMihTLbTDzoUbbTPsYs8X8mf2ZObm5w/aAoA+wn3oZNsA215HNgjzS6JqNMK5UTAW1ohDTNA397T67fKPjUqQLpISRkcNOa4Uwh+nCI/X09XeuHKVNlCsqLQw7j1ziRvwPsirZuLpnCe2L7MAQmdjCUYOy2ug==
- Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com;
- Cc: "Huang, Ray" <Ray.Huang@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, "Orzel, Michal" <Michal.Orzel@xxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, "Chen, Jiqian" <Jiqian.Chen@xxxxxxx>
- Delivery-date: Thu, 19 Jun 2025 06:40:12 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
- Thread-index: AQHb23yakGdVC9XxvEWnYcnp8zrTt7QI/QAAgAGa9QA=
- Thread-topic: [PATCH v6 2/8] vpci: Refactor REGISTER_VPCI_INIT
On 2025/6/18 22:05, Jan Beulich wrote:
> On 12.06.2025 11:29, Jiqian Chen wrote:
>> --- a/xen/drivers/vpci/msix.c
>> +++ b/xen/drivers/vpci/msix.c
>> @@ -703,9 +703,13 @@ static int cf_check init_msix(struct pci_dev *pdev)
>> pdev->vpci->msix = msix;
>> list_add(&msix->next, &d->arch.hvm.msix_tables);
>>
>> - return 0;
>> + spin_lock(&pdev->vpci->lock);
>> + rc = vpci_make_msix_hole(pdev);
>> + spin_unlock(&pdev->vpci->lock);
>
> If you add a call to vpci_make_msix_hole() here, doesn't it need (or at
> least want) removing somewhere else? Otherwise maybe a code comment is
> warranted next to the new call site?
The removing operation in modify_bars() and vpci_deassign_device() is not
enough?
>
>> @@ -29,9 +30,22 @@ typedef int vpci_register_init_t(struct pci_dev *dev);
>> */
>> #define VPCI_MAX_VIRT_DEV (PCI_SLOT(~0) + 1)
>>
>> -#define REGISTER_VPCI_INIT(x, p) \
>> - static vpci_register_init_t *const x##_entry \
>> - __used_section(".data.vpci." p) = (x)
>> +#define REGISTER_VPCI_CAPABILITY(cap, finit, fclean, ext) \
>> + static const vpci_capability_t finit##_t = { \
>> + .id = (cap), \
>> + .init = (finit), \
>> + .cleanup = (fclean), \
>> + .is_ext = (ext), \
>> + }; \
>> + static const vpci_capability_t *const finit##_entry \
>> + __used_section(".data.rel.ro.vpci") = &finit##_t
>
> Could you remind me why the extra level of indirection is necessary here?
> That is, why can't .data.rel.ro.vpci be an array of vpci_capability_t?
You mean I should change to be:
#define REGISTER_VPCI_CAPABILITY(cap, finit, fclean, ext) \
static const vpci_capability_t finit##_t \
__used_section(".data.rel.ro.vpci") = { \
.id = (cap), \
.init = (finit), \
.cleanup = (fclean), \
.is_ext = (ext), \
}
Right?
>
> Jan
--
Best regards,
Jiqian Chen.
|