lkml.org 
[lkml]   [2018]   [Sep]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.18 099/158] MIPS: Fix ISA virt/bus conversion for non-zero PHYS_OFFSET
    Date
    4.18-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Paul Burton <paul.burton@mips.com>

    [ Upstream commit 0494d7ffdcebc6935410ea0719b24ab626675351 ]

    isa_virt_to_bus() & isa_bus_to_virt() claim to treat ISA bus addresses
    as being identical to physical addresses, but they fail to do so in the
    presence of a non-zero PHYS_OFFSET.

    Correct this by having them use virt_to_phys() & phys_to_virt(), which
    consolidates the calculations to one place & ensures that ISA bus
    addresses do indeed match physical addresses.

    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Patchwork: https://patchwork.linux-mips.org/patch/20047/
    Cc: James Hogan <jhogan@kernel.org>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Cc: Vladimir Kondratiev <vladimir.kondratiev@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    arch/mips/include/asm/io.h | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    --- a/arch/mips/include/asm/io.h
    +++ b/arch/mips/include/asm/io.h
    @@ -141,14 +141,14 @@ static inline void * phys_to_virt(unsign
    /*
    * ISA I/O bus memory addresses are 1:1 with the physical address.
    */
    -static inline unsigned long isa_virt_to_bus(volatile void * address)
    +static inline unsigned long isa_virt_to_bus(volatile void *address)
    {
    - return (unsigned long)address - PAGE_OFFSET;
    + return virt_to_phys(address);
    }

    -static inline void * isa_bus_to_virt(unsigned long address)
    +static inline void *isa_bus_to_virt(unsigned long address)
    {
    - return (void *)(address + PAGE_OFFSET);
    + return phys_to_virt(address);
    }

    #define isa_page_to_bus page_to_phys

    \
     
     \ /
      Last update: 2018-09-18 01:19    [W:4.103 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site