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

Re: [PATCH v12 03/15] vpci: add hooks for PCI device assign/de-assign


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Stewart Hildebrand <stewart.hildebrand@xxxxxxx>
  • Date: Tue, 30 Jan 2024 14:22:22 -0500
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=ah8CIUwZJc7goXQMzhYwyrjTJbEHcnfYTGCSG2LcS4w=; b=AyyyRTriTHVIECumLN6PubOI9whhMJ5TA2mQcSJzBP44p1dftcra0HZ+yOx7+PIOTh3bWrm2Um3bAWGFROkCI/mQR/Qt+S5j4rMgxPic3YLJQuQbNPf6D3AXKsR1zJlHGsxDZYgMN8DzU8vWTjXQ/eUpUvYSPvzxzTJRpGVHP5ZbmI9WOi3iND0QI1dyexw246ossvVdlLadZdVuEQBUORk6Dk8RPTJ7k51bAqfo6nbDwtiX4hMlESIwxYscvuIeYoxkRD9xSxa5+8BaL/iK6jjSNJUP5t+D87cTNc6mRp6Qh8P+2GlmGpPA6MauzsmHWf5GCO9EIIE4BmZ7CiHKKA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RlqDCtbbMtDYnC3SMvH2xIE0jl20RhGbxSLyTnnateyAbi/yGM/aMlcCGePZWVnjgsEWZERAXFm4ZRTL3Bxr5j+or7ALCmYcGZcWSUWWUY3bA0Ed3hzwH6SrbaQeSFTnVzoh/8aVNHsdVMKK2YjIyFp+mrYrfLZyZ6LQAquoj5LXpN0+5mswdyFHfUYFRnXA9YX4/81tIXP6WGzJJbOHSmxjmhY6wU0jdVKcB1WTpUY0+qqJRfuGVEurBT+Mxi9Ke11hX7U/ZMwdoIAJKGw72toOcy20xrRHblbiUfvn/GFnzi+3k4ZFtiVzyZYeDOBarNKhy3ZXorFKaVOGkYXaTQ==
  • Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@xxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Paul Durrant <paul@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Volodymyr Babchuk <volodymyr_babchuk@xxxxxxxx>
  • Delivery-date: Tue, 30 Jan 2024 19:22:40 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 1/9/24 16:51, Stewart Hildebrand wrote:
> diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
> index 3a973324bca1..a902de6a8693 100644
> --- a/xen/drivers/passthrough/pci.c
> +++ b/xen/drivers/passthrough/pci.c
> @@ -1476,6 +1485,10 @@ static int assign_device(struct domain *d, u16 seg, u8 
> bus, u8 devfn, u32 flag)
>      if ( pdev->broken && d != hardware_domain && d != dom_io )
>          goto done;
>  
> +    write_lock(&pdev->domain->pci_lock);
> +    vpci_deassign_device(pdev);
> +    write_unlock(&pdev->domain->pci_lock);
> +
>      rc = pdev_msix_assign(d, pdev);
>      if ( rc )
>          goto done;
> @@ -1502,6 +1515,10 @@ static int assign_device(struct domain *d, u16 seg, u8 
> bus, u8 devfn, u32 flag)
>                          pci_to_dev(pdev), flag);
>      }
>  

After rebasing this on the following commit:

  cb4ecb3cc17b ("pci: fail device assignment if phantom functions cannot be 
assigned")

I'll add this here:

    if ( rc )
        goto done;

I'll plan on retaining Roger's R-b tag and and Jan's A-b tags for v13.

> +    write_lock(&d->pci_lock);
> +    rc = vpci_assign_device(pdev);
> +    write_unlock(&d->pci_lock);
> +
>   done:
>      if ( rc )
>          printk(XENLOG_G_WARNING "%pd: assign (%pp) failed (%d)\n",



 


Rackspace

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