Subject: [PATCH] xen/control: protect functions with CONFIG_HIBERNATE_CALLBACKS to avoid warning

From: [email-masked] (Konrad Rzeszutek Wilk)
Date: Mon, 15 Jul 2013 11:27:14 -0400

On Mon, Jul 15, 2013 at 03:24:35PM +0100, Julien Grall wrote:
> If CONFIG_HIBERNATE_CALLBACKS is not set gcc will issue warnings:
> drivers/xen/manage.c:46:13: warning: 'xen_hvm_post_suspend' defined but not used [-Wunused-function]
> drivers/xen/manage.c:52:13: warning: 'xen_pre_suspend' defined but not used [-Wunused-function]
> drivers/xen/manage.c:59:13: warning: 'xen_post_suspend' defined but not used [-Wunused-function]

Have you checked the upstream kernel?
I see this:

commit 65e053a7038c608f89272d4fb1f899890c579f0a
Author: Stefano Stabellini <[email-masked]>
Date:   Thu Jun 27 14:28:38 2013 +0100

    xen: ifdef CONFIG_HIBERNATE_CALLBACKS xen_*_suspend
    
    xen_hvm_post_suspend, xen_pre_suspend, xen_post_suspend are only used if
    CONFIG_HIBERNATE_CALLBACKS is defined, resulting in:
    
    drivers/xen/manage.c:46:13: warning: ?xen_hvm_post_suspend? defined but not used [-Wunused-function]
    drivers/xen/manage.c:52:13: warning: ?xen_pre_suspend? defined but not used [-Wunused-function]
    drivers/xen/manage.c:59:13: warning: ?xen_post_suspend? defined but not used [-Wunused-function]
    
    If the kernel config is missing CONFIG_HIBERNATE_CALLBACKS.
    
    Simply ifdef CONFIG_HIBERNATE_CALLBACKS the three functions.
    
    Signed-off-by: Stefano Stabellini <[email-masked]>
    Signed-off-by: Konrad Rzeszutek Wilk <[email-masked]>

> 
> Signed-off-by: Julien Grall <[email-masked]>
> ---
>  drivers/xen/manage.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/xen/manage.c b/drivers/xen/manage.c
> index 412b96c..7680276 100644
> --- a/drivers/xen/manage.c
> +++ b/drivers/xen/manage.c
> @@ -36,6 +36,7 @@ enum shutdown_state {
>  /* Ignore multiple shutdown requests. */
>  static enum shutdown_state shutting_down = SHUTDOWN_INVALID;
>  
> +#ifdef CONFIG_HIBERNATE_CALLBACKS
>  struct suspend_info {
>  	int cancelled;
>  	unsigned long arg; /* extra hypercall argument */
> @@ -63,7 +64,6 @@ static void xen_post_suspend(int cancelled)
>  	xen_mm_unpin_all();
>  }
>  
> -#ifdef CONFIG_HIBERNATE_CALLBACKS
>  static int xen_suspend(void *data)
>  {
>  	struct suspend_info *si = data;
> -- 
> 1.7.10.4
>