diff mbox

xen: remove incorrect forward declaration

Message ID 1462972075-918938-1-git-send-email-arnd@arndb.de (mailing list archive)
State New, archived
Headers show

Commit Message

Arnd Bergmann May 11, 2016, 1:07 p.m. UTC
A bugfix patch for the xen balloon driver introduced a forward
declaration for a static function that is conditionally compiled,
causing a warning if only the declaration but not the definition
are there:

drivers/xen/balloon.c:154:13: error: 'release_memory_resource' declared 'static' but never defined [-Werror=unused-function]
 static void release_memory_resource(struct resource *resource);

This removes the declaration again and instead moves the function
definition to the right place, before its first caller and inside
of the #ifdef protecting both.

The patch that introduced the warning is marked for stable
backports, so if that gets applied to 4.4, so should this one.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: dfd74a1edfab ("xen/balloon: Fix crash when ballooning on x86 32 bit PAE")
Cc: stable@vger.kernel.org
---
 drivers/xen/balloon.c | 28 +++++++++++++---------------
 1 file changed, 13 insertions(+), 15 deletions(-)

Comments

Jürgen Groß May 11, 2016, 2:05 p.m. UTC | #1
On 11/05/16 15:07, Arnd Bergmann wrote:
> A bugfix patch for the xen balloon driver introduced a forward
> declaration for a static function that is conditionally compiled,
> causing a warning if only the declaration but not the definition
> are there:
> 
> drivers/xen/balloon.c:154:13: error: 'release_memory_resource' declared 'static' but never defined [-Werror=unused-function]
>  static void release_memory_resource(struct resource *resource);
> 
> This removes the declaration again and instead moves the function
> definition to the right place, before its first caller and inside
> of the #ifdef protecting both.
> 
> The patch that introduced the warning is marked for stable
> backports, so if that gets applied to 4.4, so should this one.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Fixes: dfd74a1edfab ("xen/balloon: Fix crash when ballooning on x86 32 bit PAE")
> Cc: stable@vger.kernel.org

So you've CC'ed Ross, who sent the very same patch just yesterday, but
without the backport request.

Confused,

Juergen

> ---
>  drivers/xen/balloon.c | 28 +++++++++++++---------------
>  1 file changed, 13 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
> index d46839f51e73..e4db19e88ab1 100644
> --- a/drivers/xen/balloon.c
> +++ b/drivers/xen/balloon.c
> @@ -151,8 +151,6 @@ static DECLARE_WAIT_QUEUE_HEAD(balloon_wq);
>  static void balloon_process(struct work_struct *work);
>  static DECLARE_DELAYED_WORK(balloon_worker, balloon_process);
>  
> -static void release_memory_resource(struct resource *resource);
> -
>  /* When ballooning out (allocating memory to return to Xen) we don't really
>     want the kernel to try too hard since that can trigger the oom killer. */
>  #define GFP_BALLOON \
> @@ -248,6 +246,19 @@ static enum bp_state update_schedule(enum bp_state state)
>  }
>  
>  #ifdef CONFIG_XEN_BALLOON_MEMORY_HOTPLUG
> +static void release_memory_resource(struct resource *resource)
> +{
> +	if (!resource)
> +		return;
> +
> +	/*
> +	 * No need to reset region to identity mapped since we now
> +	 * know that no I/O can be in this region
> +	 */
> +	release_resource(resource);
> +	kfree(resource);
> +}
> +
>  static struct resource *additional_memory_resource(phys_addr_t size)
>  {
>  	struct resource *res;
> @@ -286,19 +297,6 @@ static struct resource *additional_memory_resource(phys_addr_t size)
>  	return res;
>  }
>  
> -static void release_memory_resource(struct resource *resource)
> -{
> -	if (!resource)
> -		return;
> -
> -	/*
> -	 * No need to reset region to identity mapped since we now
> -	 * know that no I/O can be in this region
> -	 */
> -	release_resource(resource);
> -	kfree(resource);
> -}
> -
>  static enum bp_state reserve_additional_memory(void)
>  {
>  	long credit;
>
Ross Lagerwall May 11, 2016, 3:19 p.m. UTC | #2
On 05/11/2016 03:05 PM, Juergen Gross wrote:
> On 11/05/16 15:07, Arnd Bergmann wrote:
>> A bugfix patch for the xen balloon driver introduced a forward
>> declaration for a static function that is conditionally compiled,
>> causing a warning if only the declaration but not the definition
>> are there:
>>
>> drivers/xen/balloon.c:154:13: error: 'release_memory_resource' declared 'static' but never defined [-Werror=unused-function]
>>   static void release_memory_resource(struct resource *resource);
>>
>> This removes the declaration again and instead moves the function
>> definition to the right place, before its first caller and inside
>> of the #ifdef protecting both.
>>
>> The patch that introduced the warning is marked for stable
>> backports, so if that gets applied to 4.4, so should this one.
>>
>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>> Fixes: dfd74a1edfab ("xen/balloon: Fix crash when ballooning on x86 32 bit PAE")
>> Cc: stable@vger.kernel.org
>
> So you've CC'ed Ross, who sent the very same patch just yesterday, but
> without the backport request.
>

Well it wasn't clear to me whether it should be the maintainer or the 
patch submitter who should request the backport and 
Documentation/SubmittingPatches is not clear about it. Regardless, the 
build fix should be backported to 4.4.
Stefano Stabellini May 16, 2016, 11:11 a.m. UTC | #3
On Wed, 11 May 2016, Arnd Bergmann wrote:
> A bugfix patch for the xen balloon driver introduced a forward
> declaration for a static function that is conditionally compiled,
> causing a warning if only the declaration but not the definition
> are there:
> 
> drivers/xen/balloon.c:154:13: error: 'release_memory_resource' declared 'static' but never defined [-Werror=unused-function]
>  static void release_memory_resource(struct resource *resource);
> 
> This removes the declaration again and instead moves the function
> definition to the right place, before its first caller and inside
> of the #ifdef protecting both.
> 
> The patch that introduced the warning is marked for stable
> backports, so if that gets applied to 4.4, so should this one.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Fixes: dfd74a1edfab ("xen/balloon: Fix crash when ballooning on x86 32 bit PAE")
> Cc: stable@vger.kernel.org

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


>  drivers/xen/balloon.c | 28 +++++++++++++---------------
>  1 file changed, 13 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
> index d46839f51e73..e4db19e88ab1 100644
> --- a/drivers/xen/balloon.c
> +++ b/drivers/xen/balloon.c
> @@ -151,8 +151,6 @@ static DECLARE_WAIT_QUEUE_HEAD(balloon_wq);
>  static void balloon_process(struct work_struct *work);
>  static DECLARE_DELAYED_WORK(balloon_worker, balloon_process);
>  
> -static void release_memory_resource(struct resource *resource);
> -
>  /* When ballooning out (allocating memory to return to Xen) we don't really
>     want the kernel to try too hard since that can trigger the oom killer. */
>  #define GFP_BALLOON \
> @@ -248,6 +246,19 @@ static enum bp_state update_schedule(enum bp_state state)
>  }
>  
>  #ifdef CONFIG_XEN_BALLOON_MEMORY_HOTPLUG
> +static void release_memory_resource(struct resource *resource)
> +{
> +	if (!resource)
> +		return;
> +
> +	/*
> +	 * No need to reset region to identity mapped since we now
> +	 * know that no I/O can be in this region
> +	 */
> +	release_resource(resource);
> +	kfree(resource);
> +}
> +
>  static struct resource *additional_memory_resource(phys_addr_t size)
>  {
>  	struct resource *res;
> @@ -286,19 +297,6 @@ static struct resource *additional_memory_resource(phys_addr_t size)
>  	return res;
>  }
>  
> -static void release_memory_resource(struct resource *resource)
> -{
> -	if (!resource)
> -		return;
> -
> -	/*
> -	 * No need to reset region to identity mapped since we now
> -	 * know that no I/O can be in this region
> -	 */
> -	release_resource(resource);
> -	kfree(resource);
> -}
> -
>  static enum bp_state reserve_additional_memory(void)
>  {
>  	long credit;
> -- 
> 2.7.0
>
Julien Grall May 26, 2016, 10:14 a.m. UTC | #4
Hi Stefano,

On 16/05/2016 12:11, Stefano Stabellini wrote:
> On Wed, 11 May 2016, Arnd Bergmann wrote:
>> A bugfix patch for the xen balloon driver introduced a forward
>> declaration for a static function that is conditionally compiled,
>> causing a warning if only the declaration but not the definition
>> are there:
>>
>> drivers/xen/balloon.c:154:13: error: 'release_memory_resource' declared 'static' but never defined [-Werror=unused-function]
>>  static void release_memory_resource(struct resource *resource);
>>
>> This removes the declaration again and instead moves the function
>> definition to the right place, before its first caller and inside
>> of the #ifdef protecting both.
>>
>> The patch that introduced the warning is marked for stable
>> backports, so if that gets applied to 4.4, so should this one.
>>
>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>> Fixes: dfd74a1edfab ("xen/balloon: Fix crash when ballooning on x86 32 bit PAE")
>> Cc: stable@vger.kernel.org
>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

You have applied this patch to the branch for-linus-4.8 but not 
for-linus-4.7. Is it intentional?

Regards,
Stefano Stabellini May 26, 2016, 10:18 a.m. UTC | #5
On Thu, 26 May 2016, Julien Grall wrote:
> Hi Stefano,
> 
> On 16/05/2016 12:11, Stefano Stabellini wrote:
> > On Wed, 11 May 2016, Arnd Bergmann wrote:
> > > A bugfix patch for the xen balloon driver introduced a forward
> > > declaration for a static function that is conditionally compiled,
> > > causing a warning if only the declaration but not the definition
> > > are there:
> > > 
> > > drivers/xen/balloon.c:154:13: error: 'release_memory_resource' declared
> > > 'static' but never defined [-Werror=unused-function]
> > >  static void release_memory_resource(struct resource *resource);
> > > 
> > > This removes the declaration again and instead moves the function
> > > definition to the right place, before its first caller and inside
> > > of the #ifdef protecting both.
> > > 
> > > The patch that introduced the warning is marked for stable
> > > backports, so if that gets applied to 4.4, so should this one.
> > > 
> > > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > > Fixes: dfd74a1edfab ("xen/balloon: Fix crash when ballooning on x86 32 bit
> > > PAE")
> > > Cc: stable@vger.kernel.org
> > 
> > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> You have applied this patch to the branch for-linus-4.8 but not for-linus-4.7.
> Is it intentional?

Yes it is. for-linus-4.7 is based on an older version of the kernel that
doesn't have dfd74a1edfab. Linus discourages rebasing the pull request
branches. That said, the patch could still go to Linus earlies in one of
the RCs.
David Vrabel May 26, 2016, 10:32 a.m. UTC | #6
On 11/05/16 14:07, Arnd Bergmann wrote:
> A bugfix patch for the xen balloon driver introduced a forward
> declaration for a static function that is conditionally compiled,
> causing a warning if only the declaration but not the definition
> are there:
> 
> drivers/xen/balloon.c:154:13: error: 'release_memory_resource' declared 'static' but never defined [-Werror=unused-function]
>  static void release_memory_resource(struct resource *resource);
> 
> This removes the declaration again and instead moves the function
> definition to the right place, before its first caller and inside
> of the #ifdef protecting both.

I've applied the equivalent patch from Ross, instead.

> The patch that introduced the warning is marked for stable
> backports, so if that gets applied to 4.4, so should this one.

Fixes for compiler warnings are not sufficiently important to be
backported to stable.

David
Arnd Bergmann May 27, 2016, 9:55 p.m. UTC | #7
On Thursday, May 26, 2016 11:32:40 AM CEST David Vrabel wrote:
> On 11/05/16 14:07, Arnd Bergmann wrote:
> > A bugfix patch for the xen balloon driver introduced a forward
> > declaration for a static function that is conditionally compiled,
> > causing a warning if only the declaration but not the definition
> > are there:
> > 
> > drivers/xen/balloon.c:154:13: error: 'release_memory_resource' declared 'static' but never defined [-Werror=unused-function]
> >  static void release_memory_resource(struct resource *resource);
> > 
> > This removes the declaration again and instead moves the function
> > definition to the right place, before its first caller and inside
> > of the #ifdef protecting both.
> 
> I've applied the equivalent patch from Ross, instead.

Ok, thanks.

> > The patch that introduced the warning is marked for stable
> > backports, so if that gets applied to 4.4, so should this one.
> 
> Fixes for compiler warnings are not sufficiently important to be
> backported to stable.

Sure, but this is not an existing warning but one that only gets
introduced after the other patch gets backported, which I'd consider
a different category.

	Arnd
diff mbox

Patch

diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index d46839f51e73..e4db19e88ab1 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -151,8 +151,6 @@  static DECLARE_WAIT_QUEUE_HEAD(balloon_wq);
 static void balloon_process(struct work_struct *work);
 static DECLARE_DELAYED_WORK(balloon_worker, balloon_process);
 
-static void release_memory_resource(struct resource *resource);
-
 /* When ballooning out (allocating memory to return to Xen) we don't really
    want the kernel to try too hard since that can trigger the oom killer. */
 #define GFP_BALLOON \
@@ -248,6 +246,19 @@  static enum bp_state update_schedule(enum bp_state state)
 }
 
 #ifdef CONFIG_XEN_BALLOON_MEMORY_HOTPLUG
+static void release_memory_resource(struct resource *resource)
+{
+	if (!resource)
+		return;
+
+	/*
+	 * No need to reset region to identity mapped since we now
+	 * know that no I/O can be in this region
+	 */
+	release_resource(resource);
+	kfree(resource);
+}
+
 static struct resource *additional_memory_resource(phys_addr_t size)
 {
 	struct resource *res;
@@ -286,19 +297,6 @@  static struct resource *additional_memory_resource(phys_addr_t size)
 	return res;
 }
 
-static void release_memory_resource(struct resource *resource)
-{
-	if (!resource)
-		return;
-
-	/*
-	 * No need to reset region to identity mapped since we now
-	 * know that no I/O can be in this region
-	 */
-	release_resource(resource);
-	kfree(resource);
-}
-
 static enum bp_state reserve_additional_memory(void)
 {
 	long credit;