All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
To: Jesse Barnes <jbarnes@virtuousgeek.org>,
	David Miller <davem@davemloft.net>
Cc: netdev <netdev@vger.kernel.org>,
	"Rose, Gregory V" <gregory.v.rose@intel.com>
Subject: Re: [net-next 1/8] pci: Add flag indicating device has been assigned by KVM
Date: Thu, 22 Sep 2011 22:23:13 -0700	[thread overview]
Message-ID: <1316755394.2182.96.camel@jtkirshe-mobl> (raw)
In-Reply-To: <20110923104957.2f76d1a4@jbarnes-x220>

[-- Attachment #1: Type: text/plain, Size: 3859 bytes --]

On Thu, 2011-09-22 at 22:19 -0700, Jesse Barnes wrote:
> On Thu, 22 Sep 2011 21:16:18 -0700
> Jeff Kirsher <jeffrey.t.kirsher@intel.com> wrote:
> 
> > On Wed, Sep 21, 2011 at 03:12, Jeff Kirsher
> > <jeffrey.t.kirsher@intel.com> wrote:
> > > From: Greg Rose <gregory.v.rose@intel.com>
> > >
> > > Device drivers that create and destroy SR-IOV virtual functions via
> > > calls to pci_enable_sriov() and pci_disable_sriov can cause
> > > catastrophic failures if they attempt to destroy VFs while they are
> > > assigned to guest virtual machines.  By adding a flag for use by
> > > the KVM module to indicate that a device is assigned a device
> > > driver can check that flag and avoid destroying VFs while they are
> > > assigned and avoid system failures.
> > >
> > > Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
> > > Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> > > ---
> > >  include/linux/pci.h     |    2 ++
> > >  virt/kvm/assigned-dev.c |    2 ++
> > >  virt/kvm/iommu.c        |    4 ++++
> > >  3 files changed, 8 insertions(+), 0 deletions(-)
> > >
> > > diff --git a/include/linux/pci.h b/include/linux/pci.h
> > > index f27893b..4f511da 100644
> > > --- a/include/linux/pci.h
> > > +++ b/include/linux/pci.h
> > > @@ -174,6 +174,8 @@ enum pci_dev_flags {
> > >        PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG = (__force
> > > pci_dev_flags_t) 1, /* Device configuration is irrevocably lost if
> > > disabled into D3 */ PCI_DEV_FLAGS_NO_D3 = (__force pci_dev_flags_t)
> > > 2,
> > > +       /* Provide indication device is assigned by KVM */
> > > +       PCI_DEV_FLAGS_ASSIGNED = (__force pci_dev_flags_t) 4,
> > >  };
> > >
> > >  enum pci_irq_reroute_variant {
> > > diff --git a/virt/kvm/assigned-dev.c b/virt/kvm/assigned-dev.c
> > > index 4e9eaeb..eaf3a50 100644
> > > --- a/virt/kvm/assigned-dev.c
> > > +++ b/virt/kvm/assigned-dev.c
> > > @@ -205,6 +205,8 @@ 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_release_regions(assigned_dev->dev);
> > >        pci_disable_device(assigned_dev->dev);
> > >        pci_dev_put(assigned_dev->dev);
> > > diff --git a/virt/kvm/iommu.c b/virt/kvm/iommu.c
> > > index 78c80f6..967aba1 100644
> > > --- a/virt/kvm/iommu.c
> > > +++ b/virt/kvm/iommu.c
> > > @@ -187,6 +187,8 @@ int kvm_assign_device(struct kvm *kvm,
> > >                        goto out_unmap;
> > >        }
> > >
> > > +       pdev->dev_flags |= PCI_DEV_FLAGS_ASSIGNED;
> > > +
> > >        printk(KERN_DEBUG "assign device %x:%x:%x.%x\n",
> > >                assigned_dev->host_segnr,
> > >                assigned_dev->host_busnr,
> > > @@ -215,6 +217,8 @@ int kvm_deassign_device(struct kvm *kvm,
> > >
> > >        iommu_detach_device(domain, &pdev->dev);
> > >
> > > +       pdev->dev_flags &= ~PCI_DEV_FLAGS_ASSIGNED;
> > > +
> > >        printk(KERN_DEBUG "deassign device %x:%x:%x.%x\n",
> > >                assigned_dev->host_segnr,
> > >                assigned_dev->host_busnr,
> > > --
> > > 1.7.6.2
> > 
> > Jesse/Konrad/Ian-
> > 
> > I sent this patch out as part of a pull request for David Miller's
> > net-next tree.  I know that Greg sent this originally out to the
> > linux-pci mailing list as a RFC. Since Greg also has a patch against
> > ixgbe which implemented this flag, I sent both patches for inclusion
> > into David Miller's net-next.
> > 
> > Dave is wanting to ensure that the PCI maintainers have reviewed this
> > and are ok with it before pulls my series of patches.
> 
> Yeah I think I looked at this one in the past, my ack must have been
> dropped.  You can add it if you want.
> 
> Jesse

Thanks Jesse!

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

  parent reply	other threads:[~2011-09-23  5:23 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-21 10:12 [net-next 0/8][pull request] Intel Wired LAN Driver Update Jeff Kirsher
2011-09-21 10:12 ` [net-next 1/8] pci: Add flag indicating device has been assigned by KVM Jeff Kirsher
2011-09-23  4:16   ` Jeff Kirsher
2011-09-23  5:20     ` Jesse Barnes
     [not found]     ` <20110923104957.2f76d1a4@jbarnes-x220>
2011-09-23  5:23       ` Jeff Kirsher [this message]
2011-09-23  7:27     ` Ian Campbell
2011-09-23 14:41       ` Rose, Gregory V
2011-09-23 15:03         ` Ian Campbell
2011-09-23 15:11           ` Rose, Gregory V
2011-09-23 15:45             ` Jeff Kirsher
2011-09-23 16:43               ` Konrad Rzeszutek Wilk
2011-09-23 17:04                 ` Rose, Gregory V
2011-09-23 18:00                   ` Konrad Rzeszutek Wilk
2011-09-23 18:24                     ` Rose, Gregory V
2011-09-23 19:05                       ` Konrad Rzeszutek Wilk
2011-09-23 19:20                         ` Rose, Gregory V
2011-09-24  4:41                         ` Jeff Kirsher
2011-09-26 16:25                           ` [net-next 1/8] pci: Add flag indicating device has been assigned by KVM [and Xen] Konrad Rzeszutek Wilk
2011-09-26 16:31                             ` Rose, Gregory V
2011-09-26 16:42                               ` Konrad Rzeszutek Wilk
2011-09-26 17:01                                 ` Rose, Gregory V
2011-09-21 10:12 ` [net-next 2/8] ixgbe: Reconfigure SR-IOV Init Jeff Kirsher
2011-09-21 10:12 ` [net-next 3/8] ixgbe: DCB, do not call set_state() from IEEE mode Jeff Kirsher
2011-09-21 10:12 ` [net-next 4/8] ixgbe: cleanup X540 interrupt enablement Jeff Kirsher
2011-09-21 10:12 ` [net-next 5/8] ixgbe: dcb, set priority to traffic class mappings Jeff Kirsher
2011-09-21 10:12 ` [net-next 6/8] ixgbe: avoid HW lockup when adapter is reset with Tx work pending Jeff Kirsher
2011-09-21 10:12 ` [net-next 7/8] ixgbe: add WOL support for X540 Jeff Kirsher
2011-09-21 10:12 ` [net-next 8/8] ixgbe: remove global reset to the MAC Jeff Kirsher
2011-09-21 19:13 ` [net-next 0/8][pull request] Intel Wired LAN Driver Update David Miller
2011-09-21 19:58   ` Rose, Gregory V

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1316755394.2182.96.camel@jtkirshe-mobl \
    --to=jeffrey.t.kirsher@intel.com \
    --cc=davem@davemloft.net \
    --cc=gregory.v.rose@intel.com \
    --cc=jbarnes@virtuousgeek.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.