linux/arch/arm
Christoffer Dall 45e96ea6b3 KVM: ARM: Handle I/O aborts
When the guest accesses I/O memory this will create data abort
exceptions and they are handled by decoding the HSR information
(physical address, read/write, length, register) and forwarding reads
and writes to QEMU which performs the device emulation.

Certain classes of load/store operations do not support the syndrome
information provided in the HSR.  We don't support decoding these (patches
are available elsewhere), so we report an error to user space in this case.

This requires changing the general flow somewhat since new calls to run
the VCPU must check if there's a pending MMIO load and perform the write
after userspace has made the data available.

Reviewed-by: Will Deacon <will.deacon@arm.com>
Reviewed-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <c.dall@virtualopensystems.com>
2013-01-23 13:29:17 -05:00
..
boot ARM: arm-soc fixes for 3.8-rc 2013-01-08 18:53:56 -08:00
common Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm 2013-01-09 08:58:57 -08:00
configs arm: mvebu: Use dw-apb-uart instead of ns16650 as UART driver 2013-01-06 17:41:14 +00:00
crypto
include KVM: ARM: Handle I/O aborts 2013-01-23 13:29:17 -05:00
kernel KVM: ARM: World-switch implementation 2013-01-23 13:29:12 -05:00
kvm KVM: ARM: Handle I/O aborts 2013-01-23 13:29:17 -05:00
lib
mach-at91
mach-bcm
mach-bcm2835
mach-clps711x
mach-cns3xxx
mach-davinci ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-dove ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-ebsa110
mach-ep93xx
mach-exynos ARM: EXYNOS: skip the clock initialization for exynos5440 2013-01-05 08:32:55 -08:00
mach-footbridge
mach-gemini
mach-h720x
mach-highbank ARM: highbank: save and restore L2 cache and GIC on suspend 2013-01-07 21:08:26 -08:00
mach-imx Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm 2013-01-09 08:58:57 -08:00
mach-integrator
mach-iop13xx ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-iop32x
mach-iop33x
mach-ixp4xx
mach-kirkwood ARM: arm-soc fixes for 3.8-rc 2013-01-08 18:53:56 -08:00
mach-ks8695 ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-l7200/include/mach
mach-lpc32xx
mach-mmp ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-msm ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-mv78xx0 ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-mvebu
mach-mxs Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-12-18 09:58:09 -08:00
mach-netx
mach-nomadik ARM: nomadik: bump the IRQ numbers again 2013-01-03 23:42:07 +01:00
mach-omap1 ARM: arm-soc fixes for 3.8-rc 2013-01-08 18:53:56 -08:00
mach-omap2 ARM: arm-soc fixes for 3.8-rc 2013-01-08 18:53:56 -08:00
mach-orion5x ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-picoxcell
mach-prima2 ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-pxa ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-realview ARM: 7607/1: realview: fix private peripheral memory base for EB rev. B boards 2012-12-20 10:42:00 +00:00
mach-rpc
mach-s3c24xx ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-s3c64xx ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-s3c2410
mach-s3c2412
mach-s3c2440
mach-s5p64x0 ARM: S5P64X0: Add I2S clkdev support 2012-12-19 09:49:29 -08:00
mach-s5pc100 ARM: S5PC100: Add I2S clkdev support 2012-12-19 09:49:29 -08:00
mach-s5pv210 ARM: S5PV210: Avoid passing the clks through platform data 2012-12-19 09:49:29 -08:00
mach-sa1100 ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-shark
mach-shmobile
mach-socfpga
mach-spear3xx
mach-spear6xx
mach-spear13xx
mach-sunxi sunxi: Change the machine compatible string. 2012-12-23 18:20:15 +01:00
mach-tegra ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-u300 ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-ux500 ARM: ux500: add pinctrl address resources 2012-12-26 01:59:54 +01:00
mach-versatile ARM: 7610/1: versatile: bump IRQ numbers 2013-01-02 10:35:06 +00:00
mach-vexpress ARM: 7609/1: disable errata work-arounds which access secure registers 2013-01-02 10:35:05 +00:00
mach-vt8500
mach-w90x900
mach-zynq
mm ARM: Section based HYP idmap 2013-01-23 13:29:09 -05:00
net
nwfpe
oprofile
plat-iop
plat-omap ARM: arm-soc fixes for 3.8-rc 2013-01-08 18:53:56 -08:00
plat-orion
plat-pxa ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
plat-s3c24xx
plat-samsung ARM: arm-soc fixes for 3.8-rc 2013-01-08 18:53:56 -08:00
plat-spear
plat-versatile
tools
vfp
xen
Kconfig KVM: ARM: Initial skeleton to compile KVM support 2013-01-23 13:29:10 -05:00
Kconfig-nommu
Kconfig.debug
Makefile KVM: ARM: Initial skeleton to compile KVM support 2013-01-23 13:29:10 -05:00