brcm2708: Adapt patches to kernel update
authorHauke Mehrtens <hauke@hauke-m.de>
Thu, 20 Jun 2019 09:15:28 +0000 (11:15 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Thu, 20 Jun 2019 10:53:53 +0000 (12:53 +0200)
In kernel 4.4.182 get_user_pages() does not get the write and force
parameter any more, but one flags parameter with WRITE and FORCE
attributes. This adapts the patches to use the changed API and fixes
the compile problems with the brcm2708 target.

This fixes the following compile problem:
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c: In function 'dump_phys_mem':
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c:1501:3: warning: passing argument 7 of 'get_user_pages' from incompatible pointer type [-Wincompatible-pointer-types]
   pages,                    /* pages (array of page pointers) */
   ^
In file included from drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c:42:0:
include/linux/mm.h:1200:6: note: expected 'struct vm_area_struct **' but argument is of type 'struct page **'
 long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
      ^
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c:1495:7: error: too many arguments to function 'get_user_pages'
  rc = get_user_pages(current,      /* task */
       ^
In file included from drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c:42:0:
include/linux/mm.h:1200:6: note: declared here
 long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
      ^
scripts/Makefile.build:277: recipe for target 'drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.o' failed

Fixes: 6c5c3a2edccf ("kernel: Update to version 4.4.182")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
target/linux/brcm2708/patches-4.4/0036-bcm2708-vchiq-driver.patch

index 7247fa6951c685caa1866ef752c8c2ba7618d412..f53b065ec7ab98d51159f31f7605a85890a7f74b 100644 (file)
@@ -1848,7 +1848,7 @@ vchiq: hack: Add include depecated dma include file
 +#endif /* VCHIQ_2835_H */
 --- /dev/null
 +++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
 +#endif /* VCHIQ_2835_H */
 --- /dev/null
 +++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
-@@ -0,0 +1,586 @@
+@@ -0,0 +1,585 @@
 +/**
 + * Copyright (c) 2010-2012 Broadcom. All rights reserved.
 + *
 +/**
 + * Copyright (c) 2010-2012 Broadcom. All rights reserved.
 + *
@@ -2274,8 +2274,7 @@ vchiq: hack: Add include depecated dma include file
 +              actual_pages = get_user_pages(task, task->mm,
 +                                        (unsigned long)buf & ~(PAGE_SIZE - 1),
 +                                        num_pages,
 +              actual_pages = get_user_pages(task, task->mm,
 +                                        (unsigned long)buf & ~(PAGE_SIZE - 1),
 +                                        num_pages,
-+                                        (type == PAGELIST_READ) /*Write */ ,
-+                                        0 /*Force */ ,
++                                        (type == PAGELIST_READ) ? FOLL_WRITE : 0 /*Flags */ ,
 +                                        pages,
 +                                        NULL /*vmas */);
 +              up_read(&task->mm->mmap_sem);
 +                                        pages,
 +                                        NULL /*vmas */);
 +              up_read(&task->mm->mmap_sem);
@@ -2437,7 +2436,7 @@ vchiq: hack: Add include depecated dma include file
 +}
 --- /dev/null
 +++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c
 +}
 --- /dev/null
 +++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -0,0 +1,2903 @@
+@@ -0,0 +1,2902 @@
 +/**
 + * Copyright (c) 2014 Raspberry Pi (Trading) Ltd. All rights reserved.
 + * Copyright (c) 2010-2012 Broadcom. All rights reserved.
 +/**
 + * Copyright (c) 2014 Raspberry Pi (Trading) Ltd. All rights reserved.
 + * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -3917,8 +3916,7 @@ vchiq: hack: Add include depecated dma include file
 +              current->mm,              /* mm */
 +              (unsigned long)virt_addr, /* start */
 +              num_pages,                /* len */
 +              current->mm,              /* mm */
 +              (unsigned long)virt_addr, /* start */
 +              num_pages,                /* len */
-+              0,                        /* write */
-+              0,                        /* force */
++              0,                        /* flags */
 +              pages,                    /* pages (array of page pointers) */
 +              NULL);                    /* vmas */
 +      up_read(&current->mm->mmap_sem);
 +              pages,                    /* pages (array of page pointers) */
 +              NULL);                    /* vmas */
 +      up_read(&current->mm->mmap_sem);