linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/4 resend] Introduce device assignment flag operation helper function
@ 2014-09-09  2:21 Ethan Zhao
  2014-09-09  2:21 ` [PATCH V4 1/4 resend] PCI: introduce helper functions for device flag operation Ethan Zhao
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Ethan Zhao @ 2014-09-09  2:21 UTC (permalink / raw)
  To: bhelgaas, linux-pci, linux-kernel, gleb, pbonzini, kvm,
	konrad.wilk, boris.ostrovsky, david.vrabel
  Cc: alex.williamson, alexander.h.duyck, ethan.kernel, Ethan Zhao

This patch set introduces three PCI device flag operation helper functions
when set pci device PF/VF to assigned or deassigned status also check it.
and patch 2,3,4 apply these helper functions to KVM,XEN and PCI.

v2: simplify unnecessory ternary operation in function pci_is_dev_assigned().
v3: amend helper function naming.
v4: fix incorrect type in return expression warning found by Fengguang Wu.

Appreciate suggestion from
alex.williamson@redhat.com,
david.vrabel@citrix.com,
alexander.h.duyck@intel.com

Resend for v3.18 building.

Thanks,
Ethan
---
Ethan Zhao (4):
  PCI: introduce helper functions for device flag operation
  KVM: use pci device flag operation helper functions
  xen-pciback: use pci device flag operation helper function
  PCI: use device flag operation helper function in iov.c

 drivers/pci/iov.c                  |    2 +-
 drivers/xen/xen-pciback/pci_stub.c |    4 ++--
 include/linux/pci.h                |   13 +++++++++++++
 virt/kvm/assigned-dev.c            |    2 +-
 virt/kvm/iommu.c                   |    4 ++--
 5 files changed, 19 insertions(+), 6 deletions(-)


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH V4 1/4 resend] PCI: introduce helper functions for device flag operation
  2014-09-09  2:21 [PATCH v4 0/4 resend] Introduce device assignment flag operation helper function Ethan Zhao
@ 2014-09-09  2:21 ` Ethan Zhao
  2014-09-09  2:21 ` [PATCH V4 2/4 resend] KVM: use pci device flag operation helper functions Ethan Zhao
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Ethan Zhao @ 2014-09-09  2:21 UTC (permalink / raw)
  To: bhelgaas, linux-pci, linux-kernel, gleb, pbonzini, kvm,
	konrad.wilk, boris.ostrovsky, david.vrabel
  Cc: alex.williamson, alexander.h.duyck, ethan.kernel, Ethan Zhao

This patch introduced three helper functions to hide direct
device flag operation.

void pci_set_dev_assigned(struct pci_dev *pdev);
void pci_clear_dev_assigned(struct pci_dev *pdev);
bool pci_is_dev_assigned(struct pci_dev *pdev);

Signed-off-by: Ethan Zhao <ethan.zhao@oracle.com>
---
 v2: simplify unnecessory ternary operation in function pci_is_dev_assigned();
 v3: amend helper functions naming.
 v4: fix incorrect type in return expression warning.
---
 include/linux/pci.h |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/include/linux/pci.h b/include/linux/pci.h
index 466bcd1..b610ab3 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1829,4 +1829,17 @@ int pci_for_each_dma_alias(struct pci_dev *pdev,
  */
 struct pci_dev *pci_find_upstream_pcie_bridge(struct pci_dev *pdev);
 
+/* helper functions for operation of device flag */
+static inline void pci_set_dev_assigned(struct pci_dev *pdev)
+{
+	pdev->dev_flags |= PCI_DEV_FLAGS_ASSIGNED;
+}
+static inline void pci_clear_dev_assigned(struct pci_dev *pdev)
+{
+	pdev->dev_flags &= ~PCI_DEV_FLAGS_ASSIGNED;
+}
+static inline bool pci_is_dev_assigned(struct pci_dev *pdev)
+{
+	return (pdev->dev_flags & PCI_DEV_FLAGS_ASSIGNED) == PCI_DEV_FLAGS_ASSIGNED;
+}
 #endif /* LINUX_PCI_H */
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH V4 2/4 resend] KVM: use pci device flag operation helper functions
  2014-09-09  2:21 [PATCH v4 0/4 resend] Introduce device assignment flag operation helper function Ethan Zhao
  2014-09-09  2:21 ` [PATCH V4 1/4 resend] PCI: introduce helper functions for device flag operation Ethan Zhao
@ 2014-09-09  2:21 ` Ethan Zhao
  2014-09-09  2:21 ` [PATCH V4 3/4 resend] xen-pciback: use pci device flag operation helper function Ethan Zhao
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Ethan Zhao @ 2014-09-09  2:21 UTC (permalink / raw)
  To: bhelgaas, linux-pci, linux-kernel, gleb, pbonzini, kvm,
	konrad.wilk, boris.ostrovsky, david.vrabel
  Cc: alex.williamson, alexander.h.duyck, ethan.kernel, Ethan Zhao

Use helper function instead of direct operation to pci device
flag when set device to assigned or deassigned.

Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Ethan Zhao <ethan.zhao@oracle.com>
---
 virt/kvm/assigned-dev.c |    2 +-
 virt/kvm/iommu.c        |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/virt/kvm/assigned-dev.c b/virt/kvm/assigned-dev.c
index bf06577..38581ee 100644
--- a/virt/kvm/assigned-dev.c
+++ b/virt/kvm/assigned-dev.c
@@ -302,7 +302,7 @@ static void kvm_free_assigned_device(struct kvm *kvm,
 	else
 		pci_restore_state(assigned_dev->dev);
 
-	assigned_dev->dev->dev_flags &= ~PCI_DEV_FLAGS_ASSIGNED;
+	pci_clear_dev_assigned(assigned_dev->dev);
 
 	pci_release_regions(assigned_dev->dev);
 	pci_disable_device(assigned_dev->dev);
diff --git a/virt/kvm/iommu.c b/virt/kvm/iommu.c
index 0df7d4b..34a8b02 100644
--- a/virt/kvm/iommu.c
+++ b/virt/kvm/iommu.c
@@ -194,7 +194,7 @@ int kvm_assign_device(struct kvm *kvm,
 			goto out_unmap;
 	}
 
-	pdev->dev_flags |= PCI_DEV_FLAGS_ASSIGNED;
+	pci_set_dev_assigned(pdev);
 
 	dev_info(&pdev->dev, "kvm assign device\n");
 
@@ -220,7 +220,7 @@ int kvm_deassign_device(struct kvm *kvm,
 
 	iommu_detach_device(domain, &pdev->dev);
 
-	pdev->dev_flags &= ~PCI_DEV_FLAGS_ASSIGNED;
+	pci_clear_dev_assigned(pdev);
 
 	dev_info(&pdev->dev, "kvm deassign device\n");
 
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH V4 3/4 resend] xen-pciback: use pci device flag operation helper function
  2014-09-09  2:21 [PATCH v4 0/4 resend] Introduce device assignment flag operation helper function Ethan Zhao
  2014-09-09  2:21 ` [PATCH V4 1/4 resend] PCI: introduce helper functions for device flag operation Ethan Zhao
  2014-09-09  2:21 ` [PATCH V4 2/4 resend] KVM: use pci device flag operation helper functions Ethan Zhao
@ 2014-09-09  2:21 ` Ethan Zhao
  2014-09-09  2:21 ` [PATCH V4 4/4 resend] PCI: use device flag operation helper function in iov.c Ethan Zhao
  2014-09-16 22:21 ` [PATCH v4 0/4 resend] Introduce device assignment flag operation helper function Bjorn Helgaas
  4 siblings, 0 replies; 6+ messages in thread
From: Ethan Zhao @ 2014-09-09  2:21 UTC (permalink / raw)
  To: bhelgaas, linux-pci, linux-kernel, gleb, pbonzini, kvm,
	konrad.wilk, boris.ostrovsky, david.vrabel
  Cc: alex.williamson, alexander.h.duyck, ethan.kernel, Ethan Zhao

Use pci device flag operation helper functions when set device
to assigned or deassigned state.

Acked-by: David Vrabel <david.vrabel@citrix.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Ethan Zhao <ethan.zhao@oracle.com>
---
 drivers/xen/xen-pciback/pci_stub.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c
index d57a173..e593921 100644
--- a/drivers/xen/xen-pciback/pci_stub.c
+++ b/drivers/xen/xen-pciback/pci_stub.c
@@ -133,7 +133,7 @@ static void pcistub_device_release(struct kref *kref)
 	xen_pcibk_config_free_dyn_fields(dev);
 	xen_pcibk_config_free_dev(dev);
 
-	dev->dev_flags &= ~PCI_DEV_FLAGS_ASSIGNED;
+	pci_clear_dev_assigned(dev);
 	pci_dev_put(dev);
 
 	kfree(psdev);
@@ -413,7 +413,7 @@ static int pcistub_init_device(struct pci_dev *dev)
 	dev_dbg(&dev->dev, "reset device\n");
 	xen_pcibk_reset_device(dev);
 
-	dev->dev_flags |= PCI_DEV_FLAGS_ASSIGNED;
+	pci_set_dev_assigned(dev);
 	return 0;
 
 config_release:
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH V4 4/4 resend] PCI: use device flag operation helper function in iov.c
  2014-09-09  2:21 [PATCH v4 0/4 resend] Introduce device assignment flag operation helper function Ethan Zhao
                   ` (2 preceding siblings ...)
  2014-09-09  2:21 ` [PATCH V4 3/4 resend] xen-pciback: use pci device flag operation helper function Ethan Zhao
@ 2014-09-09  2:21 ` Ethan Zhao
  2014-09-16 22:21 ` [PATCH v4 0/4 resend] Introduce device assignment flag operation helper function Bjorn Helgaas
  4 siblings, 0 replies; 6+ messages in thread
From: Ethan Zhao @ 2014-09-09  2:21 UTC (permalink / raw)
  To: bhelgaas, linux-pci, linux-kernel, gleb, pbonzini, kvm,
	konrad.wilk, boris.ostrovsky, david.vrabel
  Cc: alex.williamson, alexander.h.duyck, ethan.kernel, Ethan Zhao

Use device flag operation helper functions when check device
assignment status.

Signed-off-by: Ethan Zhao <ethan.zhao@oracle.com>
---
 drivers/pci/iov.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c
index cb6f247..4d109c0 100644
--- a/drivers/pci/iov.c
+++ b/drivers/pci/iov.c
@@ -633,7 +633,7 @@ int pci_vfs_assigned(struct pci_dev *dev)
 		 * our dev as the physical function and the assigned bit is set
 		 */
 		if (vfdev->is_virtfn && (vfdev->physfn == dev) &&
-		    (vfdev->dev_flags & PCI_DEV_FLAGS_ASSIGNED))
+			pci_is_dev_assigned(vfdev))
 			vfs_assigned++;
 
 		vfdev = pci_get_device(dev->vendor, dev_id, vfdev);
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v4 0/4 resend] Introduce device assignment flag operation helper function
  2014-09-09  2:21 [PATCH v4 0/4 resend] Introduce device assignment flag operation helper function Ethan Zhao
                   ` (3 preceding siblings ...)
  2014-09-09  2:21 ` [PATCH V4 4/4 resend] PCI: use device flag operation helper function in iov.c Ethan Zhao
@ 2014-09-16 22:21 ` Bjorn Helgaas
  4 siblings, 0 replies; 6+ messages in thread
From: Bjorn Helgaas @ 2014-09-16 22:21 UTC (permalink / raw)
  To: Ethan Zhao
  Cc: linux-pci, linux-kernel, gleb, pbonzini, kvm, konrad.wilk,
	boris.ostrovsky, david.vrabel, alex.williamson,
	alexander.h.duyck, ethan.kernel

On Tue, Sep 09, 2014 at 10:21:24AM +0800, Ethan Zhao wrote:
> This patch set introduces three PCI device flag operation helper functions
> when set pci device PF/VF to assigned or deassigned status also check it.
> and patch 2,3,4 apply these helper functions to KVM,XEN and PCI.
> 
> v2: simplify unnecessory ternary operation in function pci_is_dev_assigned().
> v3: amend helper function naming.
> v4: fix incorrect type in return expression warning found by Fengguang Wu.
> 
> Appreciate suggestion from
> alex.williamson@redhat.com,
> david.vrabel@citrix.com,
> alexander.h.duyck@intel.com
> 
> Resend for v3.18 building.

Applied to pci/virtualization for v3.18, thanks.

> 
> Thanks,
> Ethan
> ---
> Ethan Zhao (4):
>   PCI: introduce helper functions for device flag operation
>   KVM: use pci device flag operation helper functions
>   xen-pciback: use pci device flag operation helper function
>   PCI: use device flag operation helper function in iov.c
> 
>  drivers/pci/iov.c                  |    2 +-
>  drivers/xen/xen-pciback/pci_stub.c |    4 ++--
>  include/linux/pci.h                |   13 +++++++++++++
>  virt/kvm/assigned-dev.c            |    2 +-
>  virt/kvm/iommu.c                   |    4 ++--
>  5 files changed, 19 insertions(+), 6 deletions(-)
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-09-16 22:21 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-09  2:21 [PATCH v4 0/4 resend] Introduce device assignment flag operation helper function Ethan Zhao
2014-09-09  2:21 ` [PATCH V4 1/4 resend] PCI: introduce helper functions for device flag operation Ethan Zhao
2014-09-09  2:21 ` [PATCH V4 2/4 resend] KVM: use pci device flag operation helper functions Ethan Zhao
2014-09-09  2:21 ` [PATCH V4 3/4 resend] xen-pciback: use pci device flag operation helper function Ethan Zhao
2014-09-09  2:21 ` [PATCH V4 4/4 resend] PCI: use device flag operation helper function in iov.c Ethan Zhao
2014-09-16 22:21 ` [PATCH v4 0/4 resend] Introduce device assignment flag operation helper function Bjorn Helgaas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).