From 74b67cbf5b40bdf95333435d5ca06f289dd0edf6 Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Thu, 20 Jun 2019 11:18:19 +0200 Subject: [PATCH] brcm2708: fix vchiq driver get_user_pages use Linux 4.4.128 changed the signature of get_user_pages, causing out-of-tree drivers using to break. Fix this by updating to the new signature. Fixes the following build error: CC drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.o 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 make[7]: *** [drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.o] Error 1 scripts/Makefile.build:484: recipe for target 'drivers/misc/vc04_services' failed make[6]: *** [drivers/misc/vc04_services] Error 2 scripts/Makefile.build:484: recipe for target 'drivers/misc' failed make[5]: *** [drivers/misc] Error 2 Makefile:993: recipe for target 'drivers' failed make[4]: *** [drivers] Error 2 Fixes: 6c5c3a2edccf ("kernel: Update to version 4.4.182") Signed-off-by: Jonas Gorski --- .../brcm2708/patches-4.4/0036-bcm2708-vchiq-driver.patch | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/target/linux/brcm2708/patches-4.4/0036-bcm2708-vchiq-driver.patch b/target/linux/brcm2708/patches-4.4/0036-bcm2708-vchiq-driver.patch index 7247fa6951..d4993ba2bc 100644 --- a/target/linux/brcm2708/patches-4.4/0036-bcm2708-vchiq-driver.patch +++ b/target/linux/brcm2708/patches-4.4/0036-bcm2708-vchiq-driver.patch @@ -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 -@@ -0,0 +1,586 @@ +@@ -0,0 +1,585 @@ +/** + * 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, -+ (type == PAGELIST_READ) /*Write */ , -+ 0 /*Force */ , ++ (type == PAGELIST_READ) ? FOLL_WRITE : 0 /*Write */, + 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 -@@ -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. @@ -3918,7 +3917,6 @@ vchiq: hack: Add include depecated dma include file + (unsigned long)virt_addr, /* start */ + num_pages, /* len */ + 0, /* write */ -+ 0, /* force */ + pages, /* pages (array of page pointers) */ + NULL); /* vmas */ + up_read(¤t->mm->mmap_sem); -- 2.30.2