[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v4 02/10] vpci/header: Emulate legacy capability list for dom0
On 2025/5/16 00:29, Roger Pau Monné wrote: > On Fri, May 09, 2025 at 05:05:34PM +0800, Jiqian Chen wrote: >> @@ -786,15 +792,18 @@ static int vpci_init_capability_list(struct pci_dev >> *pdev) >> >> next = pci_find_next_cap_ttl(pdev->sbdf, >> pos + PCI_CAP_LIST_NEXT, >> - supported_caps, >> - ARRAY_SIZE(supported_caps), &ttl); >> + supported_caps, n, &ttl); >> >> - rc = vpci_add_register(pdev->vpci, vpci_hw_read8, NULL, >> - pos + PCI_CAP_LIST_ID, 1, NULL); >> - if ( rc ) >> - return rc; >> + if ( !is_hwdom ) >> + { >> + rc = vpci_add_register(pdev->vpci, vpci_hw_read8, NULL, >> + pos + PCI_CAP_LIST_ID, 1, NULL); >> + if ( rc ) >> + return rc; >> + } >> >> - rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL, >> + rc = vpci_add_register(pdev->vpci, vpci_read_val, >> + is_hwdom ? vpci_hw_write8 : NULL, >> pos + PCI_CAP_LIST_NEXT, 1, >> (void *)(uintptr_t)next); >> if ( rc ) >> @@ -805,13 +814,17 @@ static int vpci_init_capability_list(struct pci_dev >> *pdev) >> } >> >> /* Utilize rsvdp_mask to hide PCI_STATUS_CAP_LIST from the guest. */ >> - return vpci_add_register_mask(pdev->vpci, vpci_hw_read16, >> vpci_hw_write16, >> - PCI_STATUS, 2, NULL, >> - PCI_STATUS_RO_MASK & >> - ~(mask_cap_list ? PCI_STATUS_CAP_LIST : >> 0), >> - PCI_STATUS_RW1C_MASK, >> - mask_cap_list ? PCI_STATUS_CAP_LIST : 0, >> - PCI_STATUS_RSVDZ_MASK); >> + return is_hwdom ? 0 : vpci_add_register_mask(pdev->vpci, vpci_hw_read16, >> + vpci_hw_write16, >> PCI_STATUS, >> + 2, NULL, >> + PCI_STATUS_RO_MASK & >> + ~(mask_cap_list ? >> + PCI_STATUS_CAP_LIST >> : >> + 0), >> + PCI_STATUS_RW1C_MASK, >> + mask_cap_list ? >> + PCI_STATUS_CAP_LIST : 0, >> + PCI_STATUS_RSVDZ_MASK); > > Wow, that's a bit too much indentation for my taste. Do you think you > could do: > > /* Return early for the hw domain, no masking of PCI_STATUS. */ > if ( is_hwdom ) > return 0; > ... > > So that you don't have to touch the current return chunk? It seems better. Will do in next version. > > Thanks, Roger. -- Best regards, Jiqian Chen.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |