linux/drivers
Arnd Bergmann b4a69fede2 mtd: sh_flctl: pass FIFO as physical address
commit 1873315fb1 upstream.

By convention, the FIFO address we pass using dmaengine_slave_config
is a physical address in the form that is understood by the DMA
engine, as a dma_addr_t, phys_addr_t or resource_size_t.

The sh_flctl driver however passes a virtual __iomem address that
gets cast to dma_addr_t in the slave driver. This happens to work
on shmobile because that platform sets up an identity mapping for
its MMIO regions, but such code is not portable to other platforms,
and prevents us from ever changing the platform mapping or reusing
the driver on other architectures like ARM64 that might not have the
mapping.

We also get a warning about a type mismatch for the case that
dma_addr_t is wider than a pointer, i.e. when CONFIG_LPAE is set:

drivers/mtd/nand/sh_flctl.c: In function 'flctl_setup_dma':
drivers/mtd/nand/sh_flctl.c:163:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  cfg.dst_addr = (dma_addr_t)FLDTFIFO(flctl);

This changes the driver to instead pass the physical address of
the FIFO that is extracted from the MMIO resource, making the
code more portable and avoiding the warning.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-02-25 11:03:46 +01:00
..
accessibility
acpi ACPI: sbshc: remove raw pointer from printk() message 2018-02-16 20:09:47 +01:00
amba
android binder: check for binder_thread allocation failure in binder_poll() 2018-02-25 11:03:38 +01:00
ata ahci: Add Intel Cannon Lake PCH-H PCI ID 2018-02-16 20:09:42 +01:00
atm atm: horizon: Fix irq release error 2017-12-16 10:33:55 +01:00
auxdisplay
base drivers: base: cacheinfo: fix boot error message when acpi is enabled 2018-01-31 12:06:08 +01:00
bcma bcma: use (get|put)_device when probing/removing device driver 2017-03-12 06:37:30 +01:00
block pktcdvd: Fix pkt_setup_dev() error path 2018-02-16 20:09:47 +01:00
bluetooth Bluetooth: btusb: Restore QCA Rome suspend/resume fix with a "rewritten" version 2018-02-16 20:09:46 +01:00
bus sunxi-rsb: Include OF based modalias in device uevent 2018-01-10 09:27:09 +01:00
cdrom
char hwrng: core - sleep interruptible in read 2018-01-17 09:35:28 +01:00
clk clk: tegra: Fix cclk_lp divisor register 2017-12-20 10:04:59 +01:00
clocksource clockevents/drivers/cs5535: Improve resilience to spurious interrupts 2017-10-27 10:23:17 +02:00
connector
cpufreq cpufreq: Add Loongson machine dependencies 2018-02-03 17:04:27 +01:00
cpuidle cpuidle: fix broadcast control when broadcast can not be entered 2017-12-25 14:22:15 +01:00
crypto crypto: caam - fix endless loop when DECO acquire fails 2018-02-16 20:09:45 +01:00
dca
devfreq PM / devfreq: Propagate error from devfreq_add_device() 2018-02-22 15:44:58 +01:00
dio
dma dmaengine: jz4740: disable/unprepare clk if probe fails 2018-02-25 11:03:41 +01:00
dma-buf
edac EDAC, octeon: Fix an uninitialized variable warning 2018-02-16 20:09:47 +01:00
eisa
extcon extcon: palmas: Check the parent instance to prevent the NULL 2017-11-21 09:21:18 +01:00
firewire firewire: net: fix fragmented datagram_size off-by-one 2016-11-10 16:36:35 +01:00
firmware efi/esrt: Cleanup bad memory map log messages 2017-12-20 10:04:56 +01:00
fmc
fpga
gpio gpio: intel-mid: Fix build warning when !CONFIG_PM 2018-02-25 11:03:42 +01:00
gpu drm/armada: fix leak of crtc structure 2018-02-25 11:03:41 +01:00
hid HID: quirks: Fix keyboard + touchpad on Toshiba Click Mini not working 2018-02-16 20:09:46 +01:00
hsi
hv x86/retpoline/hyperv: Convert assembler indirect jumps 2018-01-23 19:50:13 +01:00
hwmon hwmon: (pmbus) Use 64bit math for DIRECT format values 2018-02-03 17:04:28 +01:00
hwspinlock
hwtracing intel_th: pci: Add Gemini Lake support 2017-12-20 10:04:54 +01:00
i2c i2c: riic: fix restart condition 2017-12-16 10:33:53 +01:00
ide
idle
iio iio: light: fix improper return value 2017-11-30 08:37:27 +00:00
infiniband RDMA/cma: Make sure that PSN is not over max allowed 2018-02-25 11:03:39 +01:00
input Input: trackpoint - force 3 buttons if 0 button is reported 2018-01-31 12:06:11 +01:00
iommu iommu/arm-smmu-v3: Don't free page table ops twice 2018-01-17 09:35:25 +01:00
ipack
irqchip irqchip/crossbar: Fix incorrect type of register size 2017-12-16 10:33:52 +01:00
isdn isdn: icn: remove a #warning 2018-02-25 11:03:42 +01:00
leds leds: ktd2692: avoid harmless maybe-uninitialized warning 2017-05-14 13:32:55 +02:00
lguest
lightnvm
macintosh
mailbox mailbox: handle empty message in tx_tick 2017-08-06 19:19:41 -07:00
mcb
md md: avoid warning for 32-bit sector_t 2018-02-25 11:03:44 +01:00
media pwc: hide unused label 2018-02-25 11:03:45 +01:00
memory ARM: OMAP2+: gpmc-onenand: propagate error on initialization failure 2017-12-16 10:33:51 +01:00
memstick
message mptfusion: hide unused seq_mpt_print_ioc_summary function 2018-02-25 11:03:45 +01:00
mfd mfd: twl6040: Fix child-node lookup 2018-01-02 20:33:20 +01:00
misc cxl: Check if vphb exists before iterating over AFU devices 2017-12-25 14:22:08 +01:00
mmc mmc: sdhci-of-esdhc: add/remove some quirks according to vendor version 2018-01-31 12:06:09 +01:00
mtd mtd: sh_flctl: pass FIFO as physical address 2018-02-25 11:03:46 +01:00
net amd-xgbe: Fix unused suspend handlers build warning 2018-02-25 11:03:46 +01:00
nfc nfc: fdp: fix NULL pointer dereference 2017-08-06 19:19:40 -07:00
ntb ntb_transport: fix bug calculating num_qps_mw 2017-08-30 10:19:29 +02:00
nubus
nvdimm libnvdimm, namespace: make 'resource' attribute only readable by root 2017-11-30 08:37:23 +00:00
nvme nvme: Fix managing degraded controllers 2018-02-16 20:09:47 +01:00
nvmem nvmem: imx-ocotp: Fix wrong register size 2017-08-06 19:19:46 -07:00
of of: device: Export of_device_{get_modalias, uvent_modalias} to modules 2017-07-27 15:06:09 -07:00
oprofile
parisc parisc: Hide Diva-built-in serial aux and graphics card 2018-01-02 20:33:20 +01:00
parport parisc, parport_gsc: Fixes for printk continuation lines 2017-06-17 06:39:37 +02:00
pci PCI: layerscape: Fix MSG TLP drop setting 2018-01-31 12:06:08 +01:00
pcmcia
perf
phy phy: work around 'phys' references to usb-nop-xceiv devices 2018-01-23 19:50:16 +01:00
pinctrl pinctrl: sunxi: Fix A80 interrupt pin bank 2018-02-25 11:03:39 +01:00
platform platform/x86: intel_mid_thermal: Fix suspend handlers unused warning 2018-02-25 11:03:42 +01:00
pnp
power power: reset: zx-reboot: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE 2018-02-03 17:04:25 +01:00
powercap
pps
ps3
ptp
pwm pwm: pca9685: Fix period change with same duty cycle 2017-03-15 09:57:14 +08:00
rapidio
ras
regulator regulator: fan53555: fix I2C device ids 2017-11-02 09:40:50 +01:00
remoteproc
reset
rpmsg
rtc rtc-opal: Fix handling of firmware error codes, prevent busy loops 2018-02-22 15:44:59 +01:00
s390 s390/dasd: prevent prefix I/O error 2018-02-25 11:03:40 +01:00
sbus
scsi SCSI: initio: remove duplicate module device table 2018-02-25 11:03:45 +01:00
sfi
sh
sn
soc
spi spi: sun4i: disable clocks in the remove function 2018-02-25 11:03:41 +01:00
spmi spmi: Include OF based modalias in device uevent 2017-07-27 15:06:10 -07:00
ssb ssb: mark ssb_bus_register as __maybe_unused 2018-02-25 11:03:44 +01:00
staging staging: ste_rmi4: avoid unused function warnings 2018-02-25 11:03:45 +01:00
target target/user: Fix cast from pointer to phys_addr_t 2018-02-25 11:03:46 +01:00
tc
thermal thermal: spear: use __maybe_unused for PM functions 2018-02-25 11:03:44 +01:00
thunderbolt
tty tty: hvc_xen: hide xen_console_remove when unused 2018-02-25 11:03:46 +01:00
uio
usb usb: musb/ux500: remove duplicate check for dma_is_compatible 2018-02-25 11:03:45 +01:00
uwb uwb: ensure that endpoint is interrupt 2017-10-12 11:27:35 +02:00
vfio vfio-pci: Handle error from pci_iomap 2017-08-06 19:19:46 -07:00
vhost vhost_net: stop device during reset owner 2018-02-16 20:09:38 +01:00
video fbdev: auo_k190x: avoid unused function warnings 2018-02-25 11:03:46 +01:00
virt
virtio virtio_balloon: prevent uninitialized variable use 2018-02-25 11:03:42 +01:00
vlynq
vme vme: Fix wrong pointer utilization in ca91cx42_slave_get 2017-01-19 20:17:21 +01:00
w1 w1: ds2490: USB transfer buffers need to be DMAable 2017-03-12 06:37:29 +01:00
watchdog watchdog: imx2_wdt: restore previous timeout after suspend+resume 2018-02-16 20:09:45 +01:00
xen xen: XEN_ACPI_PROCESSOR is Dom0-only 2018-02-25 11:03:41 +01:00
zorro
Kconfig
Makefile usb: build drivers/usb/common/ when USB_SUPPORT is set 2018-02-25 11:03:38 +01:00