Re: [PATCH] crypto/async_pq: use __free_page() instead of put_page()

From: Joonsoo Kim
Date: Tue Mar 01 2016 - 08:54:54 EST


2016-03-01 3:04 GMT+09:00 Dan Williams <dan.j.williams@xxxxxxxxx>:
> On Mon, Feb 29, 2016 at 1:33 AM, Arnd Bergmann <arnd@xxxxxxxx> 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.
>>
>> Fixes: 0f80830dd044 ("mm/page_ref: add tracepoint to track down page reference manipulation")
>> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
>
> Acked-by: Dan Williams <dan.j.williams@xxxxxxxxx>
>
> Vinod, will you take this one?

Problematic patch ("mm/page_ref: ~~~") is not yet merged one. It is on mmotm
and this fix should go together with it or before it. I think that
handling this fix by
Andrew is easier to all.

Thanks.