]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commit
mmc: dw_mmc: use resource_size_t to store physical address
authorArnd Bergmann <arnd@arndb.de>
Thu, 12 Nov 2015 14:14:23 +0000 (15:14 +0100)
committerSeth Forshee <seth.forshee@canonical.com>
Thu, 20 Oct 2016 13:05:25 +0000 (08:05 -0500)
commit1a86d523605b433a7280902329e831861f47d179
tree64e5457a803ce404d48a9414168fc4e642cc8855
parentd0f691175910976c70a0e4a32ffabd2a556902c8
mmc: dw_mmc: use resource_size_t to store physical address

BugLink: http://bugs.launchpad.net/bugs/1627730
commit 260b31643691e8a58683a4ccc3bdf7abfd86f54a upstream.

The dw_mmc driver stores the physical address of the MMIO registers
in a pointer, which requires the use of type casts, and is actually
broken if anyone ever has this device on a 32-bit SoC in registers
above 4GB. Gcc warns about this possibility when the driver is built
with ARM LPAE enabled:

mmc/host/dw_mmc.c: In function 'dw_mci_edmac_start_dma':
mmc/host/dw_mmc.c:702:17: warning: cast from pointer to integer of different size
  cfg.dst_addr = (dma_addr_t)(host->phy_regs + fifo_offset);
                 ^
mmc/host/dw_mmc-pltfm.c: In function 'dw_mci_pltfm_register':
mmc/host/dw_mmc-pltfm.c:63:19: warning: cast to pointer from integer of different size
  host->phy_regs = (void *)(regs->start);

This changes the code to use resource_size_t, which gets rid of the
warning, the bug and the useless casts.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
drivers/mmc/host/dw_mmc-pltfm.c
drivers/mmc/host/dw_mmc.c
include/linux/mmc/dw_mmc.h