All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH PV_OPS] Misc fixes.
@ 2009-10-08 17:23 Konrad Rzeszutek Wilk
  2009-10-08 17:23 ` [PATCH 1/3] Fix toogle whether xenbus driver should be built as module or part of kernel Konrad Rzeszutek Wilk
  0 siblings, 1 reply; 6+ messages in thread
From: Konrad Rzeszutek Wilk @ 2009-10-08 17:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Jeremy Fitzhardinge

Couple of miscellaneous fixes to build Linux pv_ops more cleanly.

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

* [PATCH 1/3] Fix toogle whether xenbus driver should be built as module or part of kernel.
  2009-10-08 17:23 [PATCH PV_OPS] Misc fixes Konrad Rzeszutek Wilk
@ 2009-10-08 17:23 ` Konrad Rzeszutek Wilk
  2009-10-08 17:23   ` [PATCH 2/3] Fix compile warnings: ignoring return value of 'xenbus_register_backend' Konrad Rzeszutek Wilk
  0 siblings, 1 reply; 6+ messages in thread
From: Konrad Rzeszutek Wilk @ 2009-10-08 17:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Jeremy Fitzhardinge, Konrad Rzeszutek Wilk

The "select" statement in the Kconfig ensures that all other users
of the xenbus will have the same dependency.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
 drivers/input/Kconfig |    1 +
 drivers/video/Kconfig |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/input/Kconfig b/drivers/input/Kconfig
index cd50c00..b8e0424 100644
--- a/drivers/input/Kconfig
+++ b/drivers/input/Kconfig
@@ -153,6 +153,7 @@ config XEN_KBDDEV_FRONTEND
 	tristate "Xen virtual keyboard and mouse support"
 	depends on XEN_FBDEV_FRONTEND
 	default y
+	select XEN_XENBUS_FRONTEND
 	help
 	  This driver implements the front-end of the Xen virtual
 	  keyboard and mouse device driver.  It communicates with a back-end
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 3b54b39..1b332d1 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -2070,6 +2070,7 @@ config XEN_FBDEV_FRONTEND
 	select FB_SYS_IMAGEBLIT
 	select FB_SYS_FOPS
 	select FB_DEFERRED_IO
+	select XEN_XENBUS_FRONTEND
 	default y
 	help
 	  This driver implements the front-end of the Xen virtual
-- 
1.6.2.5

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

* [PATCH 2/3] Fix compile warnings: ignoring return value of 'xenbus_register_backend' ..
  2009-10-08 17:23 ` [PATCH 1/3] Fix toogle whether xenbus driver should be built as module or part of kernel Konrad Rzeszutek Wilk
@ 2009-10-08 17:23   ` Konrad Rzeszutek Wilk
  2009-10-08 17:23     ` [PATCH 3/3] Fix compilation issues with CONFIG_DRM_TTM enabled Konrad Rzeszutek Wilk
  0 siblings, 1 reply; 6+ messages in thread
From: Konrad Rzeszutek Wilk @ 2009-10-08 17:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Jeremy Fitzhardinge, Konrad Rzeszutek Wilk

We neglect to check the return value of xenbus_register_backend
and take actions when that fails. This patch fixes that and adds
code to deal with those type of failures.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
 drivers/xen/blkback/blkback.c   |   18 +++++++++++++-----
 drivers/xen/blkback/common.h    |    4 ++--
 drivers/xen/blkback/interface.c |    6 +++++-
 drivers/xen/blkback/xenbus.c    |    5 ++---
 drivers/xen/netback/common.h    |    2 +-
 drivers/xen/netback/netback.c   |   12 +++++++++++-
 drivers/xen/netback/xenbus.c    |    4 ++--
 7 files changed, 36 insertions(+), 15 deletions(-)

diff --git a/drivers/xen/blkback/blkback.c b/drivers/xen/blkback/blkback.c
index e9e3de1..d0f9bd3 100644
--- a/drivers/xen/blkback/blkback.c
+++ b/drivers/xen/blkback/blkback.c
@@ -614,6 +614,7 @@ static void make_response(blkif_t *blkif, u64 id,
 static int __init blkif_init(void)
 {
 	int i, mmap_pages;
+	int rc = 0;
 
 	if (!xen_pv_domain())
 		return -ENODEV;
@@ -626,13 +627,17 @@ static int __init blkif_init(void)
 					mmap_pages, GFP_KERNEL);
 	pending_pages         = alloc_empty_pages_and_pagevec(mmap_pages);
 
-	if (!pending_reqs || !pending_grant_handles || !pending_pages)
+	if (!pending_reqs || !pending_grant_handles || !pending_pages) {
+		rc = -ENOMEM;
 		goto out_of_memory;
+	}
 
 	for (i = 0; i < mmap_pages; i++)
 		pending_grant_handles[i] = BLKBACK_INVALID_HANDLE;
 
-	blkif_interface_init();
+	rc = blkif_interface_init();
+	if (rc)
+		goto failed_init;
 
 	memset(pending_reqs, 0, sizeof(pending_reqs));
 	INIT_LIST_HEAD(&pending_free);
@@ -640,16 +645,19 @@ static int __init blkif_init(void)
 	for (i = 0; i < blkif_reqs; i++)
 		list_add_tail(&pending_reqs[i].free_list, &pending_free);
 
-	blkif_xenbus_init();
+	rc = blkif_xenbus_init();
+	if (rc)
+		goto failed_init;
 
 	return 0;
 
  out_of_memory:
+	printk("%s: out of memory\n", __FUNCTION__);
+ failed_init:
 	kfree(pending_reqs);
 	kfree(pending_grant_handles);
 	free_empty_pages_and_pagevec(pending_pages, mmap_pages);
-	printk("%s: out of memory\n", __FUNCTION__);
-	return -ENOMEM;
+	return rc;
 }
 
 module_init(blkif_init);
diff --git a/drivers/xen/blkback/common.h b/drivers/xen/blkback/common.h
index 57b7825..aaf3648 100644
--- a/drivers/xen/blkback/common.h
+++ b/drivers/xen/blkback/common.h
@@ -124,9 +124,9 @@ struct phys_req {
 
 int vbd_translate(struct phys_req *req, blkif_t *blkif, int operation);
 
-void blkif_interface_init(void);
+int blkif_interface_init(void);
 
-void blkif_xenbus_init(void);
+int blkif_xenbus_init(void);
 
 irqreturn_t blkif_be_int(int irq, void *dev_id);
 int blkif_schedule(void *arg);
diff --git a/drivers/xen/blkback/interface.c b/drivers/xen/blkback/interface.c
index c6c3e14..4c68fa7 100644
--- a/drivers/xen/blkback/interface.c
+++ b/drivers/xen/blkback/interface.c
@@ -175,8 +175,12 @@ void blkif_free(blkif_t *blkif)
 	kmem_cache_free(blkif_cachep, blkif);
 }
 
-void __init blkif_interface_init(void)
+int __init blkif_interface_init(void)
 {
 	blkif_cachep = kmem_cache_create("blkif_cache", sizeof(blkif_t),
 					 0, 0, NULL);
+	if (!blkif_cachep)
+		return -ENOMEM;
+
+	return 0;	
 }
diff --git a/drivers/xen/blkback/xenbus.c b/drivers/xen/blkback/xenbus.c
index 650f4b3..04c0a12 100644
--- a/drivers/xen/blkback/xenbus.c
+++ b/drivers/xen/blkback/xenbus.c
@@ -535,8 +535,7 @@ static struct xenbus_driver blkback = {
 };
 
 
-void blkif_xenbus_init(void)
+int blkif_xenbus_init(void)
 {
-	/* XXX must_check */
-	(void)xenbus_register_backend(&blkback);
+	return xenbus_register_backend(&blkback);
 }
diff --git a/drivers/xen/netback/common.h b/drivers/xen/netback/common.h
index 9056be0..0675946 100644
--- a/drivers/xen/netback/common.h
+++ b/drivers/xen/netback/common.h
@@ -194,7 +194,7 @@ static inline void  netif_put(struct xen_netif *netif)
 		wake_up(&netif->waiting_to_free);
 }
 
-void netif_xenbus_init(void);
+int netif_xenbus_init(void);
 
 #define netif_schedulable(netif)				\
 	(netif_running((netif)->dev) && netback_carrier_ok(netif))
diff --git a/drivers/xen/netback/netback.c b/drivers/xen/netback/netback.c
index d7d738e..860c61e 100644
--- a/drivers/xen/netback/netback.c
+++ b/drivers/xen/netback/netback.c
@@ -1536,6 +1536,7 @@ static int __init netback_init(void)
 {
 	int i;
 	struct page *page;
+	int rc = 0;
 
 	if (!xen_domain())
 		return -ENODEV;
@@ -1583,7 +1584,9 @@ static int __init netback_init(void)
 
 	//netif_accel_init();
 
-	netif_xenbus_init();
+	rc = netif_xenbus_init();
+	if (rc)
+		goto failed_init;
 
 #ifdef NETBE_DEBUG_INTERRUPT
 	(void)bind_virq_to_irqhandler(VIRQ_DEBUG,
@@ -1595,6 +1598,13 @@ static int __init netback_init(void)
 #endif
 
 	return 0;
+
+failed_init:
+	free_empty_pages_and_pagevec(mmap_pages, MAX_PENDING_REQS);
+	del_timer(&netbk_tx_pending_timer);
+	del_timer(&net_timer);
+	return rc;
+
 }
 
 module_init(netback_init);
diff --git a/drivers/xen/netback/xenbus.c b/drivers/xen/netback/xenbus.c
index a492288..c46b235 100644
--- a/drivers/xen/netback/xenbus.c
+++ b/drivers/xen/netback/xenbus.c
@@ -447,8 +447,8 @@ static struct xenbus_driver netback = {
 };
 
 
-void netif_xenbus_init(void)
+int netif_xenbus_init(void)
 {
 	printk(KERN_CRIT "registering netback\n");
-	(void)xenbus_register_backend(&netback);
+	return xenbus_register_backend(&netback);
 }
-- 
1.6.2.5

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

* [PATCH 3/3] Fix compilation issues with CONFIG_DRM_TTM enabled.
  2009-10-08 17:23   ` [PATCH 2/3] Fix compile warnings: ignoring return value of 'xenbus_register_backend' Konrad Rzeszutek Wilk
@ 2009-10-08 17:23     ` Konrad Rzeszutek Wilk
  2009-10-08 18:41       ` Jeremy Fitzhardinge
  0 siblings, 1 reply; 6+ messages in thread
From: Konrad Rzeszutek Wilk @ 2009-10-08 17:23 UTC (permalink / raw)
  To: xen-devel; +Cc: Jeremy Fitzhardinge, Konrad Rzeszutek Wilk

The recent fix for GART on Xen included an extra include which
caused the build to choke when building the ttm drivers.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
 arch/x86/include/asm/agp.h |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/arch/x86/include/asm/agp.h b/arch/x86/include/asm/agp.h
index 8107b71..3282ea6 100644
--- a/arch/x86/include/asm/agp.h
+++ b/arch/x86/include/asm/agp.h
@@ -3,7 +3,6 @@
 
 #include <asm/pgtable.h>
 #include <asm/cacheflush.h>
-#include <asm/dma-mapping.h>
 
 #include <asm/xen/hypervisor.h>
 #include <asm/xen/page.h>
-- 
1.6.2.5

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

* Re: [PATCH 3/3] Fix compilation issues with CONFIG_DRM_TTM enabled.
  2009-10-08 17:23     ` [PATCH 3/3] Fix compilation issues with CONFIG_DRM_TTM enabled Konrad Rzeszutek Wilk
@ 2009-10-08 18:41       ` Jeremy Fitzhardinge
  2009-10-08 19:00         ` Konrad Rzeszutek Wilk
  0 siblings, 1 reply; 6+ messages in thread
From: Jeremy Fitzhardinge @ 2009-10-08 18:41 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk; +Cc: xen-devel

On 10/08/09 10:23, Konrad Rzeszutek Wilk wrote:
> The recent fix for GART on Xen included an extra include which
> caused the build to choke when building the ttm drivers.
>   

How does the compile fail?  (Generally its best to include the
compilation error messages when submitting a compile-fix patch.)

> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> ---
>  arch/x86/include/asm/agp.h |    1 -
>  1 files changed, 0 insertions(+), 1 deletions(-)
>
> diff --git a/arch/x86/include/asm/agp.h b/arch/x86/include/asm/agp.h
> index 8107b71..3282ea6 100644
> --- a/arch/x86/include/asm/agp.h
> +++ b/arch/x86/include/asm/agp.h
> @@ -3,7 +3,6 @@
>  
>  #include <asm/pgtable.h>
>  #include <asm/cacheflush.h>
> -#include <asm/dma-mapping.h>
>   

The code below uses dma_alloc/free_coherent, so it needs some header for
the prototypes.  Perhaps it should be linux/dma-mapping.h?

    J

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

* Re: [PATCH 3/3] Fix compilation issues with CONFIG_DRM_TTM enabled.
  2009-10-08 18:41       ` Jeremy Fitzhardinge
@ 2009-10-08 19:00         ` Konrad Rzeszutek Wilk
  0 siblings, 0 replies; 6+ messages in thread
From: Konrad Rzeszutek Wilk @ 2009-10-08 19:00 UTC (permalink / raw)
  To: Jeremy Fitzhardinge; +Cc: xen-devel

On Thu, Oct 08, 2009 at 11:41:39AM -0700, Jeremy Fitzhardinge wrote:
> On 10/08/09 10:23, Konrad Rzeszutek Wilk wrote:
> > The recent fix for GART on Xen included an extra include which
> > caused the build to choke when building the ttm drivers.
> >   
> 
> How does the compile fail?  (Generally its best to include the
> compilation error messages when submitting a compile-fix patch.)

[root@tst001 linux-2.6-pvops.git]# SUBDIRS=/root/xen-unstable.hg/linux-2.6-pvops.git/drivers/gpu/ttm make -j4 -C /root/xen-unstable.hg/linux-2.6-pvops.git O=/root/xen-unstable.hg/build-linux-2.6-pvops_x86_64/  modules
make: Entering directory `/root/xen-unstable.hg/linux-2.6-pvops.git'
/root/xen-unstable.hg/linux-2.6-pvops.git/scripts/Makefile.build:44: /root/xen-unstable.hg/linux-2.6-pvops.git/drivers/gpu/ttm/Makefile: No such file or directory
make[2]: *** No rule to make target `/root/xen-unstable.hg/linux-2.6-pvops.git/drivers/gpu/ttm/Makefile'.  Stop.
make[1]: *** [_module_/root/xen-unstable.hg/linux-2.6-pvops.git/drivers/gpu/ttm] Error 2
make: *** [sub-make] Error 2
make: Leaving directory `/root/xen-unstable.hg/linux-2.6-pvops.git'
[root@tst001 linux-2.6-pvops.git]# SUBDIRS=/root/xen-unstable.hg/linux-2.6-pvops.git/drivers/gpu/drm/ttm make -j4 -C /root/xen-unstable.hg/linux-2.6-pvops.git O=/root/xen-unstable.hg/build-linux-2.6-pvops_x86_64/  modules
make: Entering directory `/root/xen-unstable.hg/linux-2.6-pvops.git'
  CC [M]  /root/xen-unstable.hg/linux-2.6-pvops.git/drivers/gpu/drm/ttm/ttm_agp_backend.o
In file included from /root/xen-unstable.hg/linux-2.6-pvops.git/include/linux/swiotlb.h:6,
                 from /root/xen-unstable.hg/linux-2.6-pvops.git/arch/x86/include/asm/swiotlb.h:5,
                 from /root/xen-unstable.hg/linux-2.6-pvops.git/arch/x86/include/asm/dma-mapping.h:15,
                 from /root/xen-unstable.hg/linux-2.6-pvops.git/arch/x86/include/asm/agp.h:7,
                 from /root/xen-unstable.hg/linux-2.6-pvops.git/drivers/gpu/drm/ttm/ttm_agp_backend.c:40:
/root/xen-unstable.hg/linux-2.6-pvops.git/include/linux/dma-mapping.h: In function ‘dma_sync_single’:
/root/xen-unstable.hg/linux-2.6-pvops.git/include/linux/dma-mapping.h:117: error: implicit declaration of function ‘dma_sync_single_for_cpu’
/root/xen-unstable.hg/linux-2.6-pvops.git/include/linux/dma-mapping.h: In function ‘dma_sync_sg’:
/root/xen-unstable.hg/linux-2.6-pvops.git/include/linux/dma-mapping.h:124: error: implicit declaration of function ‘dma_sync_sg_for_cpu’
In file included from /root/xen-unstable.hg/linux-2.6-pvops.git/arch/x86/include/asm/dma-mapping.h:37,
                 from /root/xen-unstable.hg/linux-2.6-pvops.git/arch/x86/include/asm/agp.h:7,
                 from /root/xen-unstable.hg/linux-2.6-pvops.git/drivers/gpu/drm/ttm/ttm_agp_backend.c:40:
/root/xen-unstable.hg/linux-2.6-pvops.git/include/asm-generic/dma-mapping-common.h: At top level:
/root/xen-unstable.hg/linux-2.6-pvops.git/include/asm-generic/dma-mapping-common.h:96: warning: conflicting types for ‘dma_sync_single_for_cpu’
/root/xen-unstable.hg/linux-2.6-pvops.git/include/asm-generic/dma-mapping-common.h:96: error: static declaration of ‘dma_sync_single_for_cpu’ follows non-static declaration
/root/xen-unstable.hg/linux-2.6-pvops.git/include/linux/dma-mapping.h:117: note: previous implicit declaration of ‘dma_sync_single_for_cpu’ was here
In file included from /root/xen-unstable.hg/linux-2.6-pvops.git/arch/x86/include/asm/dma-mapping.h:37,
                 from /root/xen-unstable.hg/linux-2.6-pvops.git/arch/x86/include/asm/agp.h:7,
                 from /root/xen-unstable.hg/linux-2.6-pvops.git/drivers/gpu/drm/ttm/ttm_agp_backend.c:40:
/root/xen-unstable.hg/linux-2.6-pvops.git/include/asm-generic/dma-mapping-common.h:159: warning: conflicting types for ‘dma_sync_sg_for_cpu’
/root/xen-unstable.hg/linux-2.6-pvops.git/include/asm-generic/dma-mapping-common.h:159: error: static declaration of ‘dma_sync_sg_for_cpu’ follows non-static declaration
/root/xen-unstable.hg/linux-2.6-pvops.git/include/linux/dma-mapping.h:124: note: previous implicit declaration of ‘dma_sync_sg_for_cpu’ was here
make[2]: *** [/root/xen-unstable.hg/linux-2.6-pvops.git/drivers/gpu/drm/ttm/ttm_agp_backend.o] Error 1
make[1]: *** [_module_/root/xen-unstable.hg/linux-2.6-pvops.git/drivers/gpu/drm/ttm] Error 2
make: *** [sub-make] Error 2
make: Leaving directory `/root/xen-unstable.hg/linux-2.6-pvops.git'


> 
> > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> > ---
> >  arch/x86/include/asm/agp.h |    1 -
> >  1 files changed, 0 insertions(+), 1 deletions(-)
> >
> > diff --git a/arch/x86/include/asm/agp.h b/arch/x86/include/asm/agp.h
> > index 8107b71..3282ea6 100644
> > --- a/arch/x86/include/asm/agp.h
> > +++ b/arch/x86/include/asm/agp.h
> > @@ -3,7 +3,6 @@
> >  
> >  #include <asm/pgtable.h>
> >  #include <asm/cacheflush.h>
> > -#include <asm/dma-mapping.h>
> >   
> 
> The code below uses dma_alloc/free_coherent, so it needs some header for
> the prototypes.  Perhaps it should be linux/dma-mapping.h?

That was what I thought too, but all of the cases that utilize this header
had beforehand included the header for the dma_alloc/free_coherent.

Your idea of using linux/dma-mapping.h fixes the issue as well, and it
is much clearer.

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

end of thread, other threads:[~2009-10-08 19:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-08 17:23 [PATCH PV_OPS] Misc fixes Konrad Rzeszutek Wilk
2009-10-08 17:23 ` [PATCH 1/3] Fix toogle whether xenbus driver should be built as module or part of kernel Konrad Rzeszutek Wilk
2009-10-08 17:23   ` [PATCH 2/3] Fix compile warnings: ignoring return value of 'xenbus_register_backend' Konrad Rzeszutek Wilk
2009-10-08 17:23     ` [PATCH 3/3] Fix compilation issues with CONFIG_DRM_TTM enabled Konrad Rzeszutek Wilk
2009-10-08 18:41       ` Jeremy Fitzhardinge
2009-10-08 19:00         ` Konrad Rzeszutek Wilk

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.