x86/sysfb: Add support for 64bit EFI lfb_base
authorDavid Herrmann <dh.herrmann@gmail.com>
Tue, 15 Nov 2016 12:01:57 +0000 (13:01 +0100)
committerIngo Molnar <mingo@kernel.org>
Wed, 16 Nov 2016 08:38:22 +0000 (09:38 +0100)
commit9164b4ceb7b492a77c7fe770a4b9d1375c9cd45a
treeb4a665157bc8148a14bfd148a5aeaf4f70b7f90e
parent81bcfe5e48f9b8c42cf547f1c74c7f60c44c34c8
x86/sysfb: Add support for 64bit EFI lfb_base

The screen_info object was extended to support 64-bit lfb_base addresses
in:

  ae2ee627dc87 ("efifb: Add support for 64-bit frame buffer addresses")

However, the x86 simple-framebuffer setup code never made use of it. Fix
it to properly assemble and verify the lfb_base before advertising
simple-framebuffer devices.

In particular, this means if VIDEO_CAPABILITY_64BIT_BASE is set, the
screen_info->ext_lfb_base field will contain the upper 32bit of the
actual lfb_base. Make sure the address is not 0 (i.e., unset), as well as
does not overflow the physical address type.

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matt Fleming <matt.fleming@intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Tom Gundersen <teg@jklm.no>
Link: http://lkml.kernel.org/r/20161115120158.15388-2-dh.herrmann@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/kernel/sysfb_simplefb.c