The kunmap_atomic() has a BUILD_BUG_ON(__same_type((__addr), struct page *)) which does __builtin_types_compatible_p(typeof(a), typeof(b)). The problem is that Sparse considers "void *" compatible with "struct page *" so the BUILD_BUG_ON() triggers but GCC says they are not compatible (which is the desired behavior for the kernel). regards, dan carpenter