lkml.org 
[lkml]   [2021]   [Oct]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 34/75] alpha: Declare virt_to_phys and virt_to_bus parameter as pointer to volatile
    Date
    From: Guenter Roeck <linux@roeck-us.net>

    [ Upstream commit 35a3f4ef0ab543daa1725b0c963eb8c05e3376f8 ]

    Some drivers pass a pointer to volatile data to virt_to_bus() and
    virt_to_phys(), and that works fine. One exception is alpha. This
    results in a number of compile errors such as

    drivers/net/wan/lmc/lmc_main.c: In function 'lmc_softreset':
    drivers/net/wan/lmc/lmc_main.c:1782:50: error:
    passing argument 1 of 'virt_to_bus' discards 'volatile'
    qualifier from pointer target type

    drivers/atm/ambassador.c: In function 'do_loader_command':
    drivers/atm/ambassador.c:1747:58: error:
    passing argument 1 of 'virt_to_bus' discards 'volatile'
    qualifier from pointer target type

    Declare the parameter of virt_to_phys and virt_to_bus as pointer to
    volatile to fix the problem.

    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/alpha/include/asm/io.h | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    diff --git a/arch/alpha/include/asm/io.h b/arch/alpha/include/asm/io.h
    index 9995bed6e92e..204c4fb69ee1 100644
    --- a/arch/alpha/include/asm/io.h
    +++ b/arch/alpha/include/asm/io.h
    @@ -61,7 +61,7 @@ extern inline void set_hae(unsigned long new_hae)
    * Change virtual addresses to physical addresses and vv.
    */
    #ifdef USE_48_BIT_KSEG
    -static inline unsigned long virt_to_phys(void *address)
    +static inline unsigned long virt_to_phys(volatile void *address)
    {
    return (unsigned long)address - IDENT_ADDR;
    }
    @@ -71,7 +71,7 @@ static inline void * phys_to_virt(unsigned long address)
    return (void *) (address + IDENT_ADDR);
    }
    #else
    -static inline unsigned long virt_to_phys(void *address)
    +static inline unsigned long virt_to_phys(volatile void *address)
    {
    unsigned long phys = (unsigned long)address;

    @@ -112,7 +112,7 @@ static inline dma_addr_t __deprecated isa_page_to_bus(struct page *page)
    extern unsigned long __direct_map_base;
    extern unsigned long __direct_map_size;

    -static inline unsigned long __deprecated virt_to_bus(void *address)
    +static inline unsigned long __deprecated virt_to_bus(volatile void *address)
    {
    unsigned long phys = virt_to_phys(address);
    unsigned long bus = phys + __direct_map_base;
    --
    2.33.0


    \
     
     \ /
      Last update: 2021-10-04 15:08    [W:4.066 / U:0.220 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site