All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: Konrad Rzeszutek Wilk <konrad@kernel.org>,
	Jeremy Fitzhardinge <jeremy@goop.org>,
	"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
Subject: Re: [Xen-devel] [PATCH 2/3] xen-pcifront: Sanity check the MSI/MSI-X values
Date: Fri, 18 Feb 2011 09:20:49 -0500	[thread overview]
Message-ID: <20110218142049.GA8847@dumpdata.com> (raw)
In-Reply-To: <20110218140845.GB8446@dumpdata.com>

On Fri, Feb 18, 2011 at 09:08:45AM -0500, Konrad Rzeszutek Wilk wrote:
> On Thu, Feb 17, 2011 at 08:53:40AM +0000, Ian Campbell wrote:
> > On Wed, 2011-02-16 at 22:17 +0000, Konrad Rzeszutek Wilk wrote:
> > > Check the returned vector values for any values that are
> > > odd or plain incorrect (say vector value zero), and if so
> > > print a warning. Also fixup the return values.
> > > 
> 
> How about this one (and there is a cleanup patch shortly following for the *(vector)...)
> 
The cleanup patch:

>From ee7eb70ab9c56a005b6023664c65da1305e3aa56 Mon Sep 17 00:00:00 2001
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Date: Thu, 17 Feb 2011 12:02:23 -0500
Subject: [PATCH 4/5] pci/xen: Cleanup: convert int** to int[]

Cleanup code. Cosmetic change to make the code look easier
to read.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
 arch/x86/include/asm/xen/pci.h |    8 ++++----
 arch/x86/pci/xen.c             |    4 ++--
 drivers/pci/xen-pcifront.c     |   12 ++++++------
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/arch/x86/include/asm/xen/pci.h b/arch/x86/include/asm/xen/pci.h
index 2329b3e..aa86209 100644
--- a/arch/x86/include/asm/xen/pci.h
+++ b/arch/x86/include/asm/xen/pci.h
@@ -27,16 +27,16 @@ static inline void __init xen_setup_pirqs(void)
  * its own functions.
  */
 struct xen_pci_frontend_ops {
-	int (*enable_msi)(struct pci_dev *dev, int **vectors);
+	int (*enable_msi)(struct pci_dev *dev, int vectors[]);
 	void (*disable_msi)(struct pci_dev *dev);
-	int (*enable_msix)(struct pci_dev *dev, int **vectors, int nvec);
+	int (*enable_msix)(struct pci_dev *dev, int vectors[], int nvec);
 	void (*disable_msix)(struct pci_dev *dev);
 };
 
 extern struct xen_pci_frontend_ops *xen_pci_frontend;
 
 static inline int xen_pci_frontend_enable_msi(struct pci_dev *dev,
-					      int **vectors)
+					      int vectors[])
 {
 	if (xen_pci_frontend && xen_pci_frontend->enable_msi)
 		return xen_pci_frontend->enable_msi(dev, vectors);
@@ -48,7 +48,7 @@ static inline void xen_pci_frontend_disable_msi(struct pci_dev *dev)
 			xen_pci_frontend->disable_msi(dev);
 }
 static inline int xen_pci_frontend_enable_msix(struct pci_dev *dev,
-					       int **vectors, int nvec)
+					       int vectors[], int nvec)
 {
 	if (xen_pci_frontend && xen_pci_frontend->enable_msix)
 		return xen_pci_frontend->enable_msix(dev, vectors, nvec);
diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c
index 6432f75..30fdd09 100644
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
@@ -150,9 +150,9 @@ static int xen_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 		return -ENOMEM;
 
 	if (type == PCI_CAP_ID_MSIX)
-		ret = xen_pci_frontend_enable_msix(dev, &v, nvec);
+		ret = xen_pci_frontend_enable_msix(dev, v, nvec);
 	else
-		ret = xen_pci_frontend_enable_msi(dev, &v);
+		ret = xen_pci_frontend_enable_msi(dev, v);
 	if (ret)
 		goto error;
 	i = 0;
diff --git a/drivers/pci/xen-pcifront.c b/drivers/pci/xen-pcifront.c
index d9fd1e0..27dae44 100644
--- a/drivers/pci/xen-pcifront.c
+++ b/drivers/pci/xen-pcifront.c
@@ -243,7 +243,7 @@ struct pci_ops pcifront_bus_ops = {
 
 #ifdef CONFIG_PCI_MSI
 static int pci_frontend_enable_msix(struct pci_dev *dev,
-				    int **vector, int nvec)
+				    int vector[], int nvec)
 {
 	int err;
 	int i;
@@ -283,10 +283,10 @@ static int pci_frontend_enable_msix(struct pci_dev *dev,
 						" is invalid: %d!\n", i,
 						op.msix_entries[i].vector);
 					err = -EINVAL;
-					*(*vector+i) = -1;
+					vector[i] = -1;
 					continue;
 				}
-				*(*vector+i) = op.msix_entries[i].vector;
+				vector[i] = op.msix_entries[i].vector;
 			}
 		} else {
 			printk(KERN_DEBUG "enable msix get value %x\n",
@@ -317,7 +317,7 @@ static void pci_frontend_disable_msix(struct pci_dev *dev)
 		dev_err(&dev->dev, "pci_disable_msix get err %x\n", err);
 }
 
-static int pci_frontend_enable_msi(struct pci_dev *dev, int **vector)
+static int pci_frontend_enable_msi(struct pci_dev *dev, int vector[])
 {
 	int err;
 	struct xen_pci_op op = {
@@ -331,12 +331,12 @@ static int pci_frontend_enable_msi(struct pci_dev *dev, int **vector)
 
 	err = do_pci_op(pdev, &op);
 	if (likely(!err)) {
-		*(*vector) = op.value;
+		vector[0] = op.value;
 		if (op.value <= 0) {
 			dev_warn(&dev->dev, "MSI entry is invalid: %d!\n",
 				op.value);
 			err = -EINVAL;
-			*(*vector) = -1;	
+			vector[0] = -1;
 		}
 	} else {
 		dev_err(&dev->dev, "pci frontend enable msi failed for dev "
-- 
1.7.1


  parent reply	other threads:[~2011-02-18 14:22 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-16 22:17 [PATCH] Xen PCI fronted fixes for 2.6.39 Konrad Rzeszutek Wilk
2011-02-16 22:17 ` [PATCH 1/3] pci/xen: Use xen_allocate_pirq_msi Konrad Rzeszutek Wilk
2011-02-17  8:41   ` [Xen-devel] " Ian Campbell
2011-02-17  8:41     ` Ian Campbell
2011-02-17 14:30     ` [Xen-devel] " Konrad Rzeszutek Wilk
2011-02-18 14:07       ` Konrad Rzeszutek Wilk
2011-02-18 14:11         ` Ian Campbell
2011-02-18 14:13           ` Stefano Stabellini
2011-02-18 14:13             ` Stefano Stabellini
2011-02-17 14:52     ` [Xen-devel] " Konrad Rzeszutek Wilk
2011-02-18 16:43       ` [PATCH 0/12] xen: MSI managment cleanups (Was: Re: [PATCH 1/3] pci/xen: Use xen_allocate_pirq_msi) Ian Campbell
2011-02-18 16:43         ` [PATCH 01/12] xen: pci: only define xen_initdom_setup_msi_irqs if CONFIG_XEN_DOM0 Ian Campbell
2011-02-18 16:43         ` [PATCH 02/12] xen: events: do not leak IRQ from xen_allocate_pirq_msi when no pirq available Ian Campbell
2011-02-21 12:50           ` Stefano Stabellini
2011-02-21 13:40             ` Ian Campbell
2011-02-18 16:43         ` [PATCH 03/12] xen: events: drop XEN_ALLOC_IRQ flag to xen_allocate_pirq_msi Ian Campbell
2011-02-18 16:43         ` [PATCH 04/12] xen: events: return irq from xen_allocate_pirq_msi Ian Campbell
2011-02-18 16:43         ` [PATCH 05/12] xen: pci: collapse apic_register_gsi_xen_hvm and xen_hvm_register_pirq Ian Campbell
2011-02-18 16:43         ` [PATCH 06/12] xen: events: assume PHYSDEVOP_get_free_pirq exists Ian Campbell
2011-02-18 16:43         ` [PATCH 07/12] xen: events: separate MSI PIRQ allocation from PIRQ binding to IRQ Ian Campbell
2011-02-21 12:50           ` Stefano Stabellini
2011-02-21 13:39             ` Ian Campbell
2011-02-18 16:43         ` [PATCH 08/12] xen: events: refactor xen_create_msi_irq slightly Ian Campbell
2011-02-18 16:43         ` [PATCH 09/12] xen: events: update pirq_to_irq in xen_create_msi_irq Ian Campbell
2011-02-22 20:35           ` Konrad Rzeszutek Wilk
2011-02-23 13:20             ` Ian Campbell
2011-02-23 15:08               ` Konrad Rzeszutek Wilk
2011-02-23 15:57                 ` Ian Campbell
2011-02-18 16:43         ` [PATCH 10/12] xen: events: push set_irq_msi down into xen_create_msi_irq Ian Campbell
2011-02-18 16:43         ` [PATCH 11/12] xen: events: use xen_bind_pirq_msi_to_irq from xen_create_msi_irq Ian Campbell
2011-02-18 16:43         ` [PATCH 12/12] xen: events: remove dom0 specific xen_create_msi_irq Ian Campbell
2011-02-18 17:00           ` Ian Campbell
2011-02-18 17:06             ` Ian Campbell
2011-02-16 22:17 ` [PATCH 2/3] xen-pcifront: Sanity check the MSI/MSI-X values Konrad Rzeszutek Wilk
2011-02-16 22:17   ` Konrad Rzeszutek Wilk
2011-02-17  8:53   ` [Xen-devel] " Ian Campbell
2011-02-18 14:08     ` Konrad Rzeszutek Wilk
2011-02-18 14:15       ` Ian Campbell
2011-02-18 14:20       ` Konrad Rzeszutek Wilk [this message]
2011-02-16 22:17 ` [PATCH 3/3] xen-pcifront: don't use flush_scheduled_work() Konrad Rzeszutek Wilk
2011-02-17  8:29 ` [Xen-devel] [PATCH] Xen PCI fronted fixes for 2.6.39 Ian Campbell
2011-02-17 14:28   ` Konrad Rzeszutek Wilk
2011-02-17 14:38     ` Ian Campbell
2011-02-17 14:38       ` Ian Campbell
2011-02-18 14:22 ` Konrad Rzeszutek Wilk
2011-02-18 14:22   ` Konrad Rzeszutek Wilk

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=20110218142049.GA8847@dumpdata.com \
    --to=konrad.wilk@oracle.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=Stefano.Stabellini@eu.citrix.com \
    --cc=jeremy@goop.org \
    --cc=konrad@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=xen-devel@lists.xensource.com \
    /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.