[PATCH] kasan: hw_tags: include linux/vmalloc.h

Arnd Bergmann posted 1 patch 1 year, 10 months ago
mm/kasan/hw_tags.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] kasan: hw_tags: include linux/vmalloc.h
Posted by Arnd Bergmann 1 year, 10 months ago
From: Arnd Bergmann <arnd@arndb.de>

This header is no longer included implicitly and instead needs to be
pulled in directly:

mm/kasan/hw_tags.c: In function 'unpoison_vmalloc_pages':
mm/kasan/hw_tags.c:280:16: error: implicit declaration of function 'find_vm_area'; did you mean 'find_vma_prev'? [-Werror=implicit-function-declaration]
  280 |         area = find_vm_area((void *)addr);
      |                ^~~~~~~~~~~~
      |                find_vma_prev
mm/kasan/hw_tags.c:280:14: error: assignment to 'struct vm_struct *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
  280 |         area = find_vm_area((void *)addr);
      |              ^
mm/kasan/hw_tags.c:284:29: error: invalid use of undefined type 'struct vm_struct'
  284 |         for (i = 0; i < area->nr_pages; i++) {
      |                             ^~
mm/kasan/hw_tags.c:285:41: error: invalid use of undefined type 'struct vm_struct'
  285 |                 struct page *page = area->pages[i];
      |                                         ^~

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 mm/kasan/hw_tags.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/mm/kasan/hw_tags.c b/mm/kasan/hw_tags.c
index 2b994092a2d4..9958ebc15d38 100644
--- a/mm/kasan/hw_tags.c
+++ b/mm/kasan/hw_tags.c
@@ -16,6 +16,7 @@
 #include <linux/static_key.h>
 #include <linux/string.h>
 #include <linux/types.h>
+#include <linux/vmalloc.h>
 
 #include "kasan.h"
 
-- 
2.39.2
Re: [PATCH] kasan: hw_tags: include linux/vmalloc.h
Posted by Andrew Morton 1 year, 10 months ago
On Thu,  4 Apr 2024 14:44:30 +0200 Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
> 
> This header is no longer included implicitly and instead needs to be
> pulled in directly:
> 
> mm/kasan/hw_tags.c: In function 'unpoison_vmalloc_pages':
> mm/kasan/hw_tags.c:280:16: error: implicit declaration of function 'find_vm_area'; did you mean 'find_vma_prev'? [-Werror=implicit-function-declaration]
>   280 |         area = find_vm_area((void *)addr);
>       |                ^~~~~~~~~~~~
>       |                find_vma_prev
> mm/kasan/hw_tags.c:280:14: error: assignment to 'struct vm_struct *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
>   280 |         area = find_vm_area((void *)addr);
>       |              ^
> mm/kasan/hw_tags.c:284:29: error: invalid use of undefined type 'struct vm_struct'
>   284 |         for (i = 0; i < area->nr_pages; i++) {
>       |                             ^~
> mm/kasan/hw_tags.c:285:41: error: invalid use of undefined type 'struct vm_struct'
>   285 |                 struct page *page = area->pages[i];
>       |                                         ^~

Thanks, but I'd like to know which patch this patch is fixing, please. 
Is it mainline or linux-next?  I'm suspecting it might be a fix for
fix-missing-vmalloch-includes.patch but without knowing how to
reproduce this I can't determine anything.

> --- a/mm/kasan/hw_tags.c
> +++ b/mm/kasan/hw_tags.c
> @@ -16,6 +16,7 @@
>  #include <linux/static_key.h>
>  #include <linux/string.h>
>  #include <linux/types.h>
> +#include <linux/vmalloc.h>
>  
>  #include "kasan.h"
Re: [PATCH] kasan: hw_tags: include linux/vmalloc.h
Posted by Arnd Bergmann 1 year, 10 months ago
On Thu, Apr 4, 2024, at 20:17, Andrew Morton wrote:
> On Thu,  4 Apr 2024 14:44:30 +0200 Arnd Bergmann <arnd@kernel.org> wrote:
>
>> From: Arnd Bergmann <arnd@arndb.de>
>> 
>> This header is no longer included implicitly and instead needs to be
>> pulled in directly:
>> 
>> mm/kasan/hw_tags.c: In function 'unpoison_vmalloc_pages':
>> mm/kasan/hw_tags.c:280:16: error: implicit declaration of function 'find_vm_area'; did you mean 'find_vma_prev'? [-Werror=implicit-function-declaration]
>>   280 |         area = find_vm_area((void *)addr);
>>       |                ^~~~~~~~~~~~
>>       |                find_vma_prev
>> mm/kasan/hw_tags.c:280:14: error: assignment to 'struct vm_struct *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
>>   280 |         area = find_vm_area((void *)addr);
>>       |              ^
>> mm/kasan/hw_tags.c:284:29: error: invalid use of undefined type 'struct vm_struct'
>>   284 |         for (i = 0; i < area->nr_pages; i++) {
>>       |                             ^~
>> mm/kasan/hw_tags.c:285:41: error: invalid use of undefined type 'struct vm_struct'
>>   285 |                 struct page *page = area->pages[i];
>>       |                                         ^~
>
> Thanks, but I'd like to know which patch this patch is fixing, please. 
> Is it mainline or linux-next?  I'm suspecting it might be a fix for
> fix-missing-vmalloch-includes.patch but without knowing how to
> reproduce this I can't determine anything.

It only showed up yesterday in linux-next. I thought about
bisecting it but ended up not doing it as it seemed simple
enough.

fix-missing-vmalloch-includes.patch looks like the right
place to me, given both the timing and contents, so please
fold my change into that.

      Arnd