Comment 3 for bug 1572536

Revision history for this message
Owen Savill (osavill) wrote :

Hi Dan,

Many thanks for doing this. I am currently running the 4.6 branch and when compiling I get the following output:
In file included from include/linux/mutex.h:13:0,
                 from include/linux/kernfs.h:13,
                 from include/linux/sysfs.h:15,
                 from include/linux/kobject.h:21,
                 from include/linux/device.h:17,
                 from /home/owen/CrystalHD/crystalhd/driver/linux/crystalhd_misc.c:27:
/home/owen/CrystalHD/crystalhd/driver/linux/crystalhd_misc.c: In function ‘crystalhd_map_dio’:
./arch/x86/include/asm/current.h:17:17: error: passing argument 1 of ‘get_user_pages’ makes integer from pointer without a cast [-Werror]
 #define current get_current()
                 ^
/home/owen/CrystalHD/crystalhd/driver/linux/crystalhd_misc.c:655:23: note: in expansion of macro ‘current’
  res = get_user_pages(current, current->mm, uaddr, nr_pages, rw == READ,
                       ^
In file included from /home/owen/CrystalHD/crystalhd/driver/linux/crystalhd_lnx.h:34:0,
                 from /home/owen/CrystalHD/crystalhd/driver/linux/crystalhd_misc.c:30:
include/linux/mm.h:1253:6: note: expected ‘long unsigned int’ but argument is of type ‘struct task_struct *’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
In file included from include/linux/mutex.h:13:0,
                 from include/linux/kernfs.h:13,
                 from include/linux/sysfs.h:15,
                 from include/linux/kobject.h:21,
                 from include/linux/device.h:17,
                 from /home/owen/CrystalHD/crystalhd/driver/linux/crystalhd_misc.c:27:
./arch/x86/include/asm/current.h:17:17: error: passing argument 2 of ‘get_user_pages’ makes integer from pointer without a cast [-Werror]
 #define current get_current()
                 ^
/home/owen/CrystalHD/crystalhd/driver/linux/crystalhd_misc.c:655:32: note: in expansion of macro ‘current’
  res = get_user_pages(current, current->mm, uaddr, nr_pages, rw == READ,
                                ^
In file included from /home/owen/CrystalHD/crystalhd/driver/linux/crystalhd_lnx.h:34:0,
                 from /home/owen/CrystalHD/crystalhd/driver/linux/crystalhd_misc.c:30:
include/linux/mm.h:1253:6: note: expected ‘long unsigned int’ but argument is of type ‘struct mm_struct *’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
/home/owen/CrystalHD/crystalhd/driver/linux/crystalhd_misc.c:655:62: error: passing argument 5 of ‘get_user_pages’ makes pointer from integer without a cast [-Werror]
  res = get_user_pages(current, current->mm, uaddr, nr_pages, rw == READ,
                                                              ^
In file included from /home/owen/CrystalHD/crystalhd/driver/linux/crystalhd_lnx.h:34:0,
                 from /home/owen/CrystalHD/crystalhd/driver/linux/crystalhd_misc.c:30:
include/linux/mm.h:1253:6: note: expected ‘struct page **’ but argument is of type ‘int’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
/home/owen/CrystalHD/crystalhd/driver/linux/crystalhd_misc.c:655:8: error: too many arguments to function ‘get_user_pages’
  res = get_user_pages(current, current->mm, uaddr, nr_pages, rw == READ,
        ^
In file included from /home/owen/CrystalHD/crystalhd/driver/linux/crystalhd_lnx.h:34:0,
                 from /home/owen/CrystalHD/crystalhd/driver/linux/crystalhd_misc.c:30:
include/linux/mm.h:1253:6: note: declared here
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
/home/owen/CrystalHD/crystalhd/driver/linux/crystalhd_misc.c: In function ‘crystalhd_unmap_dio’:
/home/owen/CrystalHD/crystalhd/driver/linux/crystalhd_misc.c:754:5: error: implicit declaration of function ‘page_cache_release’ [-Werror=implicit-function-declaration]
     page_cache_release(page);
     ^
cc1: all warnings being treated as errors
make[2]: *** [/home/owen/CrystalHD/crystalhd/driver/linux/crystalhd_misc.o] Error 1
make[1]: *** [_module_/home/owen/CrystalHD/crystalhd/driver/linux] Error 2
make: *** [all] Error 2

I will downgrade to 4.4 and try again there.