From kernel 2.6.26rc2, SetPageReserved and ClearPageReserved changed from macros to inline functions, that are generated using macros (among which SETPAGEFLAG). The functions were redefined because they don't exist as macros, and then preventing compilation. This patch allows to compile the quickcam/qce-ga/qc-usb module on kernels 2.6.26rc2 and later. An other fix could use #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26). Signed-off-by: Guillaume Bedot --- qc-usb-0.6.6.orig/qc-memory.c 2008-05-27 16:41:19.000000000 +0200 +++ qc-usb-0.6.6/qc-memory.c 2008-05-27 16:41:35.000000000 +0200 @@ -81,12 +81,14 @@ #define pte_offset(pmd,adr) pte_offset_map(pmd,adr) /* Emulation for a kernel using the new rmap-vm */ #endif /* Fix by Michele Balistreri */ +#ifndef SETPAGEFLAG #ifndef SetPageReserved #define SetPageReserved(p) mem_map_reserve(p) #endif #ifndef ClearPageReserved #define ClearPageReserved(p) mem_map_unreserve(p) #endif +#endif /* }}} */ /* {{{ [fold] kvirt_to_pa(): obtain physical address from virtual address obtained by vmalloc() */