Re: [GIT PULL 0/2] EFI fixes for v4.11

Ard Biesheuvel
2017-04-05T10:14:12Z

On 5 April 2017 at 11:08, Bartlomiej Zolnierkiewicz
<b.zolnierkie@samsung.com> wrote:
>
> Hi,
>
> On Tuesday, April 04, 2017 04:27:42 PM Ard Biesheuvel wrote:
>> Hello all,
>>
>> Please pull these fixes for EFI framebuffer support on ARM/arm64 systems.
>>
>> The following changes since commit 822f5845f710e57d7e2df1fd1ee00d6e19d334fe:
>>
>> efi/esrt: Cleanup bad memory map log messages (2017-03-17 18:53:12 +0000)
>>
>> are available in the git repository at:
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git tags/efi-urgent
>>
>> for you to fetch changes up to e73c2811538bd36ec1340d01bafdc080af31914e:
>>
>> efifb: Avoid reconfiguration of BAR that covers the framebuffer (2017-04-04 15:56:43 +0100)
>>
>> ----------------------------------------------------------------
>> Two fixes related to the EFI framebuffer driver:
>> - Ignore Graphics Output Protocol (GOP) implementations that are marked as
>> BLT-only -- the framebuffer base address is invalid in this case, and the
>> Blt() method is not accessible to the kernel.
>> - If the GOP framebuffer base address coincides with a memory BAR of a PCI
>> device that has memory decoding enabled, claim the memory resource so that
>> the PCI core will not attempt to move it later on.
>>
>> ----------------------------------------------------------------
>> Ard Biesheuvel (1):
>> efifb: Avoid reconfiguration of BAR that covers the framebuffer
>
> This patch breaks build if PCI support is not enabled:
>
> drivers/video/fbdev/efifb.c: In function ‘claim_efifb_bar’:
> drivers/video/fbdev/efifb.c:386:2: error: implicit declaration of function ‘pci_claim_resource’ [-Werror=implicit-function-declaration]
>
> (x86 ifdefs are not enough, the patch should also check for PCI support)
>
> Also please cc: linux-fbdev mailing list & me on fbdev related patches.
>

Thanks for the report. The patch was tested successfully on an
impressive list of configurations by kbuild test robot, but
apparently, none of those has PCI disabled.

Ingo, since you have queued this already, how would you like to
proceed? I don't think we need anything beyond

diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
index 758960b6aec9..b827a8113e26 100644
--- a/drivers/video/fbdev/efifb.c
+++ b/drivers/video/fbdev/efifb.c
@@ -364,7 +364,7 @@ static struct platform_driver efifb_driver = {

builtin_platform_driver(efifb_driver);

-#ifndef CONFIG_X86
+#if defined(CONFIG_PCI) && !defined(CONFIG_X86)

static bool pci_bar_found; /* did we find a BAR matching the efifb base? */

--
Ard.