lkml.org 
[lkml]   [2012]   [Feb]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 2/2] video:uvesafb: Fix oops when uvesafb try to execute NX-protected page

    commit 5bd5a452662bc37c54fb6828db1a3faf87e6511c add NX protection for kernel
    data. So on many machine (like my machine Aspire 4741 and other three machines I
    have tested) this commit will make the BIOS NX, then when uvesafb use PMI and
    try to execute NX-protected page, Oops!
    This patch try to resolve it!
    (I have try to let uvesafb_pan_display use v86d to do pan, but it works very
    very bad, so I give it up)

    Signed-off-by: Wang YanQing <udknight@gmail.com>
    ---
    drivers/video/uvesafb.c | 6 ++++++
    1 files changed, 6 insertions(+), 0 deletions(-)

    diff --git a/drivers/video/uvesafb.c b/drivers/video/uvesafb.c
    index e7f69ef..f7e326f 100644
    --- a/drivers/video/uvesafb.c
    +++ b/drivers/video/uvesafb.c
    @@ -23,6 +23,7 @@
    #include <video/uvesafb.h>
    #ifdef CONFIG_X86
    #include <video/vga.h>
    +#include <linux/pci.h>
    #endif
    #ifdef CONFIG_MTRR
    #include <asm/mtrr.h>
    @@ -812,11 +813,16 @@ static int __devinit uvesafb_vbe_init(struct fb_info *info)

    par->nocrtc = nocrtc;
    #ifdef CONFIG_X86_32
    + if (check_pcibios_enabled()) {
    par->pmi_setpal = pmi_setpal;
    par->ypan = ypan;

    if (par->pmi_setpal || par->ypan)
    uvesafb_vbe_getpmi(task, par);
    + } else {
    + par->pmi_setpal = par->ypan = 0;
    + printk(KERN_WARNING "uvesafb: PCI BIOS is NX, can't use PMI. Use redraw instead\n");
    + }
    #else
    /* The protected mode interface is not available on non-x86. */
    par->pmi_setpal = par->ypan = 0;
    --
    1.7.3.4


    \
     
     \ /
      Last update: 2012-02-27 02:07    [W:0.031 / U:1.556 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site