[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 3/8] vpci/header: Emulate extended capability list for host


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: "Chen, Jiqian" <Jiqian.Chen@xxxxxxx>
  • Date: Tue, 15 Apr 2025 10:18:13 +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=A6hJg+3qnJdwjTZv/XR2qzAqDEM7dahl/c/NPI0Ac5w=; b=KDbInL8moOmQQzUQ/R7GrfLK4vuU/UTxLZ/+nZQknVTdxsU+1Kz0anJr65tlCWyOzLk7wub2uUbI/IhOqBNdtWsEUdo6Wqsjj1hsFTFN1v0maMfln6PAmzEi9A+6Bdxmav+fR2z5gqOw9JGyPGe/E+7X/xcwxpXIvdGiDpg+UInPy/b7vmMQbh3eVdo7wfGWIuYitbBbTtdGZxEvYp4v+w4KlKe/tqC8fflmkijqFpcQ6ehIbM6ZqCCW0y0SArRPuDRuCJnxlEuhifKqC/pp6Xmpr/4UIBx7WTtb1CLROyvDPLngiAbbyfRZPeVPwBRlV9oMW2j8KnLh5cTTH2Fq1A==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cZe3WBu596uuiNest2dlWUBctcmcVR8z0WraQgiMDmKAMGNXqxeHgzq41EvL0YZMigoePJyjkqwLnkHU4mMo1lKhy4YPPrZuqIMnWHBlyWXb6nNnsiszogCFoO047Llsn7ziKboZPYkXEC/jfRWRSgOWDEVLkrBBZ5qeFc+U2Rd67iJMU7qQc/ft4eKbCOM5euKSeaFMs+usc3U0A7vDwTWPQ8cZ7nK3pMkQMc5pu5ebTbJqnDq81kZJ2THJ4YMWjxPYqehtsuX1wnZwYw7QAwrwXC2tjy0EZJjuOB+ILygCfhgKsINsbO2rC4mU1QOYtczImDGmeNMsIuJXWGOKQQ==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com;
  • Cc: Roger Pau Monné <roger.pau@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, "Huang, Ray" <Ray.Huang@xxxxxxx>, "Chen, Jiqian" <Jiqian.Chen@xxxxxxx>
  • Delivery-date: Tue, 15 Apr 2025 10:18:29 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHbqRsbo3LVuEnuFEu9nspfZtmL8rOkhQ8AgACNiwA=
  • Thread-topic: [PATCH v2 3/8] vpci/header: Emulate extended capability list for host

On 2025/4/15 17:49, Jan Beulich wrote:
> On 09.04.2025 08:45, Jiqian Chen wrote:
>> --- a/xen/drivers/vpci/header.c
>> +++ b/xen/drivers/vpci/header.c
>> @@ -815,6 +815,39 @@ static int vpci_init_capability_list(struct pci_dev 
>> *pdev)
>>      return rc;
>>  }
>>  
>> +static int vpci_init_ext_capability_list(struct pci_dev *pdev)
>> +{
>> +    int rc;
>> +    u32 header;
>> +    unsigned int pos = 0x100U, ttl = 480;
>> +
>> +    if ( !is_hardware_domain(pdev->domain) )
>> +    {
>> +        /* Extended capabilities read as zero, write ignore */
>> +        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
>> +                               pos, 4, (void *)0);
>> +        if ( rc )
>> +            return rc;
>> +    }
>> +
>> +    while ( pos && ttl-- )
>> +    {
>> +        header = pci_conf_read32(pdev->sbdf, pos);
>> +
>> +        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
>> +                               pos, 4, (void *)(uintptr_t)header);
>> +        if ( rc )
>> +            return rc;
>> +
>> +        if ( (header == 0) || (header == -1) )
>> +            return 0;
> 
> I realize pci_find_next_ext_capability() also has such a check, but even
> there it's not really clear to me why compare not only against 0, but also
> again -1 (aka ~0).
Thank you for raising this question.
When I coded this part, I also had this confuse since 
pci_find_next_ext_capability() has this check,
so I chose to keep the same check.
Do you think I need to remove this -1 check?

> 
> Jan

-- 
Best regards,
Jiqian Chen.

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.