All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vlastimil Babka <vbabka@suse.cz>
To: Arnd Bergmann <arnd@arndb.de>,
	Joonsoo Kim <iamjoonsoo.kim@lge.com>,
	linux-mm@kvack.org, Herbert Xu <herbert@gondor.apana.org.au>
Cc: linux-arm-kernel@lists.infradead.org,
	Michal Nazarewicz <mina86@mina86.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Dan Williams <dan.j.williams@intel.com>,
	"David S. Miller" <davem@davemloft.net>,
	NeilBrown <neilb@suse.com>,
	Markus Stockhausen <stockhausen@collogia.de>,
	Vinod Koul <vinod.koul@intel.com>,
	linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] crypto/async_pq: use __free_page() instead of put_page()
Date: Fri, 4 Mar 2016 10:06:45 +0100	[thread overview]
Message-ID: <56D95025.1060500@suse.cz> (raw)
In-Reply-To: <1456738445-876239-1-git-send-email-arnd@arndb.de>

On 02/29/2016 10:33 AM, Arnd Bergmann wrote:
> The addition of tracepoints to the page reference tracking had an
> unfortunate side-effect in at least one driver that calls put_page
> from its exit function, resulting in a link error:
> 
> `.exit.text' referenced in section `__jump_table' of crypto/built-in.o: defined in discarded section `.exit.text' of crypto/built-in.o
> 
> From a cursory look at that this driver, it seems that it may be
> doing the wrong thing here anyway, as the page gets allocated
> using 'alloc_page()', and should be freed using '__free_page()'
> rather than 'put_page()'.
> 
> With this patch, I no longer get any other build errors from the
> page_ref patch, so hopefully we can assume that it's always wrong
> to call any of those functions from __exit code, and that no other
> driver does it.

Hopefully that's true. If any such driver was leaking references to
those pages, so the put_page() didn't actually result in freeing, the
explicit __free_page should catch this via built-in checks.

> Fixes: 0f80830dd044 ("mm/page_ref: add tracepoint to track down page reference manipulation")

Since it's in mmotm which is quilt-based, the commit hash from -next is
not stable.

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Vlastimil Babka <vbabka@suse.cz>

> ---
>  crypto/async_tx/async_pq.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/crypto/async_tx/async_pq.c b/crypto/async_tx/async_pq.c
> index c0748bbd4c08..08b3ac68952b 100644
> --- a/crypto/async_tx/async_pq.c
> +++ b/crypto/async_tx/async_pq.c
> @@ -444,7 +444,7 @@ static int __init async_pq_init(void)
>  
>  static void __exit async_pq_exit(void)
>  {
> -	put_page(pq_scribble_page);
> +	__free_page(pq_scribble_page);
>  }
>  
>  module_init(async_pq_init);
> 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: vbabka@suse.cz (Vlastimil Babka)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] crypto/async_pq: use __free_page() instead of put_page()
Date: Fri, 4 Mar 2016 10:06:45 +0100	[thread overview]
Message-ID: <56D95025.1060500@suse.cz> (raw)
In-Reply-To: <1456738445-876239-1-git-send-email-arnd@arndb.de>

On 02/29/2016 10:33 AM, Arnd Bergmann wrote:
> The addition of tracepoints to the page reference tracking had an
> unfortunate side-effect in at least one driver that calls put_page
> from its exit function, resulting in a link error:
> 
> `.exit.text' referenced in section `__jump_table' of crypto/built-in.o: defined in discarded section `.exit.text' of crypto/built-in.o
> 
> From a cursory look at that this driver, it seems that it may be
> doing the wrong thing here anyway, as the page gets allocated
> using 'alloc_page()', and should be freed using '__free_page()'
> rather than 'put_page()'.
> 
> With this patch, I no longer get any other build errors from the
> page_ref patch, so hopefully we can assume that it's always wrong
> to call any of those functions from __exit code, and that no other
> driver does it.

Hopefully that's true. If any such driver was leaking references to
those pages, so the put_page() didn't actually result in freeing, the
explicit __free_page should catch this via built-in checks.

> Fixes: 0f80830dd044 ("mm/page_ref: add tracepoint to track down page reference manipulation")

Since it's in mmotm which is quilt-based, the commit hash from -next is
not stable.

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Vlastimil Babka <vbabka@suse.cz>

> ---
>  crypto/async_tx/async_pq.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/crypto/async_tx/async_pq.c b/crypto/async_tx/async_pq.c
> index c0748bbd4c08..08b3ac68952b 100644
> --- a/crypto/async_tx/async_pq.c
> +++ b/crypto/async_tx/async_pq.c
> @@ -444,7 +444,7 @@ static int __init async_pq_init(void)
>  
>  static void __exit async_pq_exit(void)
>  {
> -	put_page(pq_scribble_page);
> +	__free_page(pq_scribble_page);
>  }
>  
>  module_init(async_pq_init);
> 

WARNING: multiple messages have this Message-ID (diff)
From: Vlastimil Babka <vbabka@suse.cz>
To: Arnd Bergmann <arnd@arndb.de>,
	Joonsoo Kim <iamjoonsoo.kim@lge.com>,
	linux-mm@kvack.org, Herbert Xu <herbert@gondor.apana.org.au>
Cc: linux-arm-kernel@lists.infradead.org,
	Michal Nazarewicz <mina86@mina86.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Dan Williams <dan.j.williams@intel.com>,
	"David S. Miller" <davem@davemloft.net>,
	NeilBrown <neilb@suse.com>,
	Markus Stockhausen <stockhausen@collogia.de>,
	Vinod Koul <vinod.koul@intel.com>,
	linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] crypto/async_pq: use __free_page() instead of put_page()
Date: Fri, 4 Mar 2016 10:06:45 +0100	[thread overview]
Message-ID: <56D95025.1060500@suse.cz> (raw)
In-Reply-To: <1456738445-876239-1-git-send-email-arnd@arndb.de>

On 02/29/2016 10:33 AM, Arnd Bergmann wrote:
> The addition of tracepoints to the page reference tracking had an
> unfortunate side-effect in at least one driver that calls put_page
> from its exit function, resulting in a link error:
> 
> `.exit.text' referenced in section `__jump_table' of crypto/built-in.o: defined in discarded section `.exit.text' of crypto/built-in.o
> 
> From a cursory look at that this driver, it seems that it may be
> doing the wrong thing here anyway, as the page gets allocated
> using 'alloc_page()', and should be freed using '__free_page()'
> rather than 'put_page()'.
> 
> With this patch, I no longer get any other build errors from the
> page_ref patch, so hopefully we can assume that it's always wrong
> to call any of those functions from __exit code, and that no other
> driver does it.

Hopefully that's true. If any such driver was leaking references to
those pages, so the put_page() didn't actually result in freeing, the
explicit __free_page should catch this via built-in checks.

> Fixes: 0f80830dd044 ("mm/page_ref: add tracepoint to track down page reference manipulation")

Since it's in mmotm which is quilt-based, the commit hash from -next is
not stable.

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Vlastimil Babka <vbabka@suse.cz>

> ---
>  crypto/async_tx/async_pq.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/crypto/async_tx/async_pq.c b/crypto/async_tx/async_pq.c
> index c0748bbd4c08..08b3ac68952b 100644
> --- a/crypto/async_tx/async_pq.c
> +++ b/crypto/async_tx/async_pq.c
> @@ -444,7 +444,7 @@ static int __init async_pq_init(void)
>  
>  static void __exit async_pq_exit(void)
>  {
> -	put_page(pq_scribble_page);
> +	__free_page(pq_scribble_page);
>  }
>  
>  module_init(async_pq_init);
> 

  parent reply	other threads:[~2016-03-04  9:06 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-29  9:33 [PATCH] crypto/async_pq: use __free_page() instead of put_page() Arnd Bergmann
2016-02-29  9:33 ` Arnd Bergmann
2016-02-29  9:33 ` Arnd Bergmann
2016-02-29 18:04 ` Dan Williams
2016-02-29 18:04   ` Dan Williams
2016-02-29 18:04   ` Dan Williams
2016-03-01 13:54   ` Joonsoo Kim
2016-03-01 13:54     ` Joonsoo Kim
2016-03-01 13:54     ` Joonsoo Kim
2016-03-03 15:50     ` Vinod Koul
2016-03-03 15:50       ` Vinod Koul
2016-03-03 15:50       ` Vinod Koul
2016-03-04  9:06 ` Vlastimil Babka [this message]
2016-03-04  9:06   ` Vlastimil Babka
2016-03-04  9:06   ` Vlastimil Babka

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=56D95025.1060500@suse.cz \
    --to=vbabka@suse.cz \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=dan.j.williams@intel.com \
    --cc=davem@davemloft.net \
    --cc=herbert@gondor.apana.org.au \
    --cc=iamjoonsoo.kim@lge.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mina86@mina86.com \
    --cc=neilb@suse.com \
    --cc=rostedt@goodmis.org \
    --cc=stockhausen@collogia.de \
    --cc=vinod.koul@intel.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.