Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

bus: mvebu-mbus: fix __iomem on register pointers

The save_cpu_target functions should take "u32 __iomem *", not a
plain "u32 *" as it is passed to register access functions. Fix
the following warnings by adding the annotation:

drivers/bus/mvebu-mbus.c:739:17: warning: incorrect type in argument 2 (different address spaces)
drivers/bus/mvebu-mbus.c:739:17: expected void volatile [noderef] <asn:2>*addr
drivers/bus/mvebu-mbus.c:739:17: got unsigned int [usertype] *
drivers/bus/mvebu-mbus.c:741:17: warning: incorrect type in argument 2 (different address spaces)
drivers/bus/mvebu-mbus.c:741:17: expected void volatile [noderef] <asn:2>*addr
drivers/bus/mvebu-mbus.c:741:17: got unsigned int [usertype] *
drivers/bus/mvebu-mbus.c:742:17: warning: incorrect type in argument 2 (different address spaces)
drivers/bus/mvebu-mbus.c:742:17: expected void volatile [noderef] <asn:2>*addr
drivers/bus/mvebu-mbus.c:742:17: got unsigned int [usertype] *
drivers/bus/mvebu-mbus.c:744:17: warning: incorrect type in argument 2 (different address spaces)
drivers/bus/mvebu-mbus.c:744:17: expected void volatile [noderef] <asn:2>*addr
drivers/bus/mvebu-mbus.c:744:17: got unsigned int [usertype] *
drivers/bus/mvebu-mbus.c:790:17: warning: incorrect type in argument 2 (different address spaces)
drivers/bus/mvebu-mbus.c:790:17: expected void volatile [noderef] <asn:2>*addr
drivers/bus/mvebu-mbus.c:790:17: got unsigned int [usertype] *
drivers/bus/mvebu-mbus.c:792:17: warning: incorrect type in argument 2 (different address spaces)
drivers/bus/mvebu-mbus.c:792:17: expected void volatile [noderef] <asn:2>*addr
drivers/bus/mvebu-mbus.c:792:17: got unsigned int [usertype] *

Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>

authored by

Ben Dooks and committed by
Gregory CLEMENT
fce7b5ae d705c1a6

+5 -5
+4 -4
drivers/bus/mvebu-mbus.c
··· 117 117 unsigned int (*win_remap_offset)(const int win); 118 118 void (*setup_cpu_target)(struct mvebu_mbus_state *s); 119 119 int (*save_cpu_target)(struct mvebu_mbus_state *s, 120 - u32 *store_addr); 120 + u32 __iomem *store_addr); 121 121 int (*show_cpu_target)(struct mvebu_mbus_state *s, 122 122 struct seq_file *seq, void *v); 123 123 }; ··· 728 728 729 729 static int 730 730 mvebu_mbus_default_save_cpu_target(struct mvebu_mbus_state *mbus, 731 - u32 *store_addr) 731 + u32 __iomem *store_addr) 732 732 { 733 733 int i; 734 734 ··· 780 780 781 781 static int 782 782 mvebu_mbus_dove_save_cpu_target(struct mvebu_mbus_state *mbus, 783 - u32 *store_addr) 783 + u32 __iomem *store_addr) 784 784 { 785 785 int i; 786 786 ··· 796 796 return 4; 797 797 } 798 798 799 - int mvebu_mbus_save_cpu_target(u32 *store_addr) 799 + int mvebu_mbus_save_cpu_target(u32 __iomem *store_addr) 800 800 { 801 801 return mbus_state.soc->save_cpu_target(&mbus_state, store_addr); 802 802 }
+1 -1
include/linux/mbus.h
··· 66 66 } 67 67 #endif 68 68 69 - int mvebu_mbus_save_cpu_target(u32 *store_addr); 69 + int mvebu_mbus_save_cpu_target(u32 __iomem *store_addr); 70 70 void mvebu_mbus_get_pcie_mem_aperture(struct resource *res); 71 71 void mvebu_mbus_get_pcie_io_aperture(struct resource *res); 72 72 int mvebu_mbus_get_dram_win_info(phys_addr_t phyaddr, u8 *target, u8 *attr);