On my MacBook Air lfb_size is 4M, which makes the bitshit overflow, meaning we fall back to efifb unnecessarily.
Cast to u64 to avoid the overflow. Signed-off-by: Tom Gundersen <t...@jklm.no> Reviewed-by: David Herrmann <dh.herrm...@gmail.com> Cc: Geert Uytterhoeven <ge...@linux-m68k.org> Cc: H. Peter Anvin <h...@zytor.com> Cc: Ingo Molnar <mi...@kernel.org> Cc: Stephen Warren <swar...@nvidia.com>, Cc: Stephen Warren <swar...@wwwdotorg.org> Cc: Thomas Gleixner <t...@linutronix.de> --- v2: use (__u64) rather than (unsigned long). This is strictly speaking not necessary, but as David poited out it makes it more obvious that we we won't have problems on 32bit. v3: remove superfluous parens and use (u64) rather than (__64) as this is not shared by userspace. arch/x86/kernel/sysfb_simplefb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kernel/sysfb_simplefb.c b/arch/x86/kernel/sysfb_simplefb.c index 22513e9..4ebd636 100644 --- a/arch/x86/kernel/sysfb_simplefb.c +++ b/arch/x86/kernel/sysfb_simplefb.c @@ -72,7 +72,7 @@ __init int create_simplefb(const struct screen_info *si, * the part that is occupied by the framebuffer */ len = mode->height * mode->stride; len = PAGE_ALIGN(len); - if (len > si->lfb_size << 16) { + if (len > (u64)si->lfb_size << 16) { printk(KERN_WARNING "sysfb: VRAM smaller than advertised\n"); return -EINVAL; } -- 1.8.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/