static const struct font_desc *font;
 static u32 efi_x, efi_y;
 static u64 fb_base;
-static pgprot_t fb_prot;
+static bool fb_wb;
 static void *efi_fb;
 
 /*
        if (!earlycon_console || !(earlycon_console->flags & CON_ENABLED))
                return 0;
 
-       if (pgprot_val(fb_prot) == pgprot_val(PAGE_KERNEL))
-               efi_fb = memremap(fb_base, screen_info.lfb_size, MEMREMAP_WB);
-       else
-               efi_fb = memremap(fb_base, screen_info.lfb_size, MEMREMAP_WC);
+       efi_fb = memremap(fb_base, screen_info.lfb_size,
+                         fb_wb ? MEMREMAP_WB : MEMREMAP_WC);
 
        return efi_fb ? 0 : -ENOMEM;
 }
 
 static __ref void *efi_earlycon_map(unsigned long start, unsigned long len)
 {
+       pgprot_t fb_prot;
+
        if (efi_fb)
                return efi_fb + start;
 
+       fb_prot = fb_wb ? PAGE_KERNEL : pgprot_writecombine(PAGE_KERNEL);
        return early_memremap_prot(fb_base + start, len, pgprot_val(fb_prot));
 }
 
        if (screen_info.capabilities & VIDEO_CAPABILITY_64BIT_BASE)
                fb_base |= (u64)screen_info.ext_lfb_base << 32;
 
-       if (opt && !strcmp(opt, "ram"))
-               fb_prot = PAGE_KERNEL;
-       else
-               fb_prot = pgprot_writecombine(PAGE_KERNEL);
+       fb_wb = opt && !strcmp(opt, "ram");
 
        si = &screen_info;
        xres = si->lfb_width;