lkml.org 
[lkml]   [2012]   [Jan]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] hpwdt: clean up set_memory_x call for 32 bit
    Date
    1. addess has to be page aligned.
    2. set_memory_x uses page size argument, not size.
    Bug causes with following commit:
    commit da28179b4e90dda56912ee825c7eaa62fc103797
    Author: Mingarelli, Thomas <Thomas.Mingarelli@hp.com>
    Date: Mon Nov 7 10:59:00 2011 +0100

    watchdog: hpwdt: Changes to handle NX secure bit in 32bit path

    commit e67d668e147c3b4fec638c9e0ace04319f5ceccd upstream.

    This patch makes use of the set_memory_x() kernel API in order
    to make necessary BIOS calls to source NMIs.

    Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
    ---
    drivers/watchdog/hpwdt.c | 4 ++--
    1 files changed, 2 insertions(+), 2 deletions(-)

    diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c
    index 9cb60df..7f04d37 100644
    --- a/drivers/watchdog/hpwdt.c
    +++ b/drivers/watchdog/hpwdt.c
    @@ -216,7 +216,7 @@ static int __devinit cru_detect(unsigned long map_entry,

    cmn_regs.u1.reax = CRU_BIOS_SIGNATURE_VALUE;

    - set_memory_x((unsigned long)bios32_entrypoint, (2 * PAGE_SIZE));
    + set_memory_x((unsigned long)bios32_entrypoint & PAGE_MASK, 2);
    asminline_call(&cmn_regs, bios32_entrypoint);

    if (cmn_regs.u1.ral != 0) {
    @@ -235,7 +235,7 @@ static int __devinit cru_detect(unsigned long map_entry,
    cru_rom_addr =
    ioremap(cru_physical_address, cru_length);
    if (cru_rom_addr) {
    - set_memory_x((unsigned long)cru_rom_addr, cru_length);
    + set_memory_x((unsigned long)cru_rom_addr & PAGE_MASK, cru_length >> PAGE_SHIFT);
    retval = 0;
    }
    }
    --
    1.7.4.1


    \
     
     \ /
      Last update: 2012-01-16 05:09    [W:0.021 / U:0.092 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site