alistair23-linux/arch/powerpc/include/asm
Scott Wood d30f6e4800 KVM: PPC: booke: category E.HV (GS-mode) support
Chips such as e500mc that implement category E.HV in Power ISA 2.06
provide hardware virtualization features, including a new MSR mode for
guest state.  The guest OS can perform many operations without trapping
into the hypervisor, including transitions to and from guest userspace.

Since we can use SRR1[GS] to reliably tell whether an exception came from
guest state, instead of messing around with IVPR, we use DO_KVM similarly
to book3s.

Current issues include:
 - Machine checks from guest state are not routed to the host handler.
 - The guest can cause a host oops by executing an emulated instruction
   in a page that lacks read permission.  Existing e500/4xx support has
   the same problem.

Includes work by Ashish Kalra <Ashish.Kalra@freescale.com>,
Varun Sethi <Varun.Sethi@freescale.com>, and
Liu Yu <yu.liu@freescale.com>.

Signed-off-by: Scott Wood <scottwood@freescale.com>
[agraf: remove pt_regs usage]
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>
2012-04-08 12:51:19 +03:00
..
8xx_immap.h powerpc: Fix multicast problem in fs_enet driver 2011-04-21 16:59:30 -07:00
abs_addr.h powerpc: Remove FW_FEATURE ISERIES from arch code 2012-03-21 11:16:11 +11:00
agp.h
asm-compat.h powerpc: Emulate most Book I instructions in emulate_step() 2010-06-22 19:40:29 +10:00
asm-offsets.h
async_tx.h
atomic.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
auxvec.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
backlight.h
barrier.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
bitops.h powerpc: Fix atomic_xxx_return barrier semantics 2011-11-17 16:26:07 +11:00
bitsperlong.h
bootx.h
btext.h
bug.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
bugs.h
byteorder.h
cache.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
cacheflush.h
cell-pmu.h
cell-regs.h
checksum.h powerpc: Add 64bit csum_and_copy_to_user 2010-09-02 14:07:30 +10:00
clk_interface.h
cmpxchg.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
code-patching.h
compat.h compat: sync compat_stats with statfs. 2011-10-28 14:58:53 +02:00
cpm.h Fix common misspellings 2011-03-31 11:26:23 -03:00
cpm1.h Fix common misspellings 2011-03-31 11:26:23 -03:00
cpm2.h
cputable.h powerpc/e500: split CPU_FTRS_ALWAYS/CPU_FTRS_POSSIBLE 2012-04-08 12:50:54 +03:00
cputhreads.h powerpc: Convert old cpumask API into new one 2011-05-04 15:22:59 +10:00
cputime.h Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-01-06 17:58:22 -08:00
current.h
dbdma.h
dbell.h KVM: PPC: booke: category E.HV (GS-mode) support 2012-04-08 12:51:19 +03:00
dcr-generic.h
dcr-mmio.h
dcr-native.h
dcr-regs.h
dcr.h
debug.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
delay.h
device.h powerpc/eeh: Introduce EEH device 2012-03-09 11:39:29 +11:00
disassemble.h
div64.h
dma-mapping.h PowerPC: adapt for dma_map_ops changes 2012-03-28 16:36:33 +02:00
dma.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
edac.h
eeh.h powerpc/eeh: pseries platform config space access in EEH 2012-03-09 11:39:51 +11:00
eeh_event.h powerpc/eeh: Replace pci_dn with eeh_dev for EEH aux components 2012-03-09 11:39:46 +11:00
ehv_pic.h irq_domain/powerpc: Use common irq_domain structure instead of irq_host 2012-02-14 14:06:50 -07:00
elf.h treewide: fix potentially dangerous trailing ';' in #defined values/expressions 2011-07-21 14:10:00 +02:00
emergency-restart.h
emulated_ops.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
epapr_hcalls.h powerpc/epapr: add "memory" as a clobber to all hypercalls 2012-03-29 08:14:14 -05:00
errno.h
exception-64e.h powerpc/book3e-64: use a separate TLB handler when linear map is bolted 2011-06-29 17:47:48 +10:00
exception-64s.h powerpc: Rework lazy-interrupt handling 2012-03-09 13:25:06 +11:00
exec.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
fadump.h fadump: Invalidate registration and release reserved memory for general use. 2012-02-23 10:50:02 +11:00
fb.h
fcntl.h
feature-fixups.h powerpc: Use new CPU feature bit to select 2.06 tlbie 2011-05-04 15:19:26 +10:00
firmware.h powerpc: Remove FW_FEATURE ISERIES from arch code 2012-03-21 11:16:11 +11:00
fixmap.h
floppy.h powerpc/irq: Remove IRQF_DISABLED 2011-11-08 14:51:46 +11:00
fs_pd.h
fsl_85xx_cache_sram.h powerpc/85xx: add cache-sram support 2010-10-14 00:54:38 -05:00
fsl_gtm.h
fsl_guts.h powerpc/8xxx: remove 85xx/86xx restrictions from fsl_guts.h 2012-03-29 08:14:07 -05:00
fsl_hcalls.h powerpc: introduce ePAPR embedded hypervisor hcall interface 2011-06-27 08:30:19 -05:00
fsl_ifc.h powerpc/fsl: Add support for Integrated Flash Controller 2012-01-04 15:41:22 -06:00
fsl_lbc.h powerpc/85xx: Add lbc suspend support for PM 2011-11-24 02:01:40 -06:00
ftrace.h powerpc/ftrace: Implement raw syscall tracepoints on PowerPC 2011-05-26 13:38:57 +10:00
futex.h powerpc: Fix atomic_xxx_return barrier semantics 2011-11-17 16:26:07 +11:00
gpio.h
grackle.h
hardirq.h
heathrow.h
highmem.h highmem: kill all __kmap_atomic() 2012-03-20 21:48:30 +08:00
hugetlb.h powerpc: Define/use HUGETLB_NEED_PRELOAD insead of complicated #if 2011-12-07 16:26:24 +11:00
hvcall.h KVM: PPC: Handle some PAPR hcalls in the kernel 2011-07-12 13:16:55 +03:00
hvconsole.h
hvcserver.h
hvsi.h powerpc/hvsi: Fix conflict with old HVSI driver 2011-07-01 13:10:21 +10:00
hw_breakpoint.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
hw_irq.h powerpc: Rework lazy-interrupt handling 2012-03-09 13:25:06 +11:00
hydra.h Update broken web addresses in arch directory. 2010-10-18 11:03:21 +02:00
i8259.h irq_domain/powerpc: Use common irq_domain structure instead of irq_host 2012-02-14 14:06:50 -07:00
ibmebus.h
ide.h
immap_cpm2.h
immap_qe.h powerpc: fix warning when compiling immap_qe.h 2011-01-12 18:02:46 -06:00
io-defs.h
io-workarounds.h powerpc/pci: Make IO workarounds init implicit when first bus is registered 2011-04-27 14:18:31 +10:00
io.h treewide: Fix typos in various parts of the kernel, and fix some comments. 2011-12-02 14:57:31 +01:00
io_event_irq.h powerpc/pseries: Add support for IO event interrupts 2011-05-06 13:19:01 +10:00
ioctl.h
ioctls.h tty: add TIOCVHANGUP to allow clean tty shutdown of all ttys 2011-02-17 14:16:30 -08:00
iommu.h powerpc: Random little legacy iSeries removal tidy ups 2012-03-28 11:33:23 +11:00
ipcbuf.h
ipic.h
irq.h powerpc: Remove NO_IRQ_IGNORE 2012-03-28 11:32:01 +11:00
irq_regs.h
irqflags.h powerpc: Rework lazy-interrupt handling 2012-03-09 13:25:06 +11:00
jump_label.h static keys: Introduce 'struct static_key', static_key_true()/false() and static_key_slow_[inc|dec]() 2012-02-24 10:05:59 +01:00
Kbuild powerpc: Use rwsem.h from generic location 2011-12-16 14:39:48 +11:00
kdebug.h
kdump.h powerpc: Rename mapping based RELOCATABLE to DYNAMIC_MEMSTART for BookE 2011-12-20 10:20:19 -05:00
kexec.h powerpc: Cleanup crash/kexec code 2011-12-08 14:02:23 +11:00
keylargo.h Typos: change aditional to additional. 2012-02-21 11:40:36 +01:00
kgdb.h kgdb,ppc: Individual register get/set for ppc 2010-10-29 13:14:42 -05:00
kmap_types.h kdb: core for kgdb back end (2 of 2) 2010-05-20 21:04:21 -05:00
kprobes.h Fix common misspellings 2011-03-31 11:26:23 -03:00
kvm.h KVM: PPC: Rename MMIO register identifiers 2012-03-05 14:52:41 +02:00
kvm_44x.h KVM: PPC: booke: add sregs support 2011-05-22 08:47:53 -04:00
kvm_asm.h KVM: PPC: booke: category E.HV (GS-mode) support 2012-04-08 12:51:19 +03:00
kvm_book3s.h KVM: PPC: factor out lpid allocator from book3s_64_mmu_hv 2012-04-08 12:51:02 +03:00
kvm_book3s_32.h KVM: PPC: Use get/set for to_svcpu to help preemption 2012-03-05 14:52:30 +02:00
kvm_book3s_64.h KVM: PPC: Allow for read-only pages backing a Book3S HV guest 2012-03-05 14:52:38 +02:00
kvm_book3s_asm.h KVM: PPC: Implement H_CEDE hcall for book3s_hv in real-mode code 2011-09-25 19:52:30 +03:00
kvm_booke.h KVM: PPC: factor out lpid allocator from book3s_64_mmu_hv 2012-04-08 12:51:02 +03:00
kvm_booke_hv_asm.h KVM: PPC: booke: category E.HV (GS-mode) support 2012-04-08 12:51:19 +03:00
kvm_fpu.h powerpc: Remove fpscr use from [kvm_]cvt_{fd,df} 2010-09-02 14:07:32 +10:00
kvm_host.h KVM: PPC: booke: category E.HV (GS-mode) support 2012-04-08 12:51:19 +03:00
kvm_para.h kvmclock: Add functions to check if the host has stopped the vm 2012-04-08 12:48:59 +03:00
kvm_ppc.h KVM: PPC: booke: category E.HV (GS-mode) support 2012-04-08 12:51:19 +03:00
libata-portmap.h
linkage.h
local.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
lppaca.h powerpc: Remove the remaining CONFIG_PPC_ISERIES pieces 2012-03-21 11:16:12 +11:00
lv1call.h powerpc/ps3: Fix hcall lv1_read_repository_node 2011-12-08 14:05:55 +11:00
machdep.h powerpc: Remove NO_IRQ_IGNORE 2012-03-28 11:32:01 +11:00
macio.h treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
mc146818rtc.h
mediabay.h
mman.h
mmu-8xx.h
mmu-40x.h
mmu-44x.h
mmu-book3e.h KVM: PPC: booke: category E.HV (GS-mode) support 2012-04-08 12:51:19 +03:00
mmu-hash32.h
mmu-hash64.h Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-03-28 14:41:36 -07:00
mmu.h powerpc: Hugetlb for BookE 2011-09-20 09:19:40 +10:00
mmu_context.h powerpc: Add Initiate Coprocessor Store Word (icswx) support 2011-05-04 15:19:26 +10:00
mmzone.h Fix node_start/end_pfn() definition for mm/page_cgroup.c 2011-06-27 14:13:09 -07:00
module.h
mpc5xxx.h
mpc6xx.h
mpc8xx.h
mpc52xx.h powerpc/5200: add mpc5200_psc_ac97_gpio_reset 2010-08-06 20:49:18 -06:00
mpc52xx_psc.h powerpc/5200: add mpc5200_psc_ac97_gpio_reset 2010-08-06 20:49:18 -06:00
mpc5121.h powerpc/5121: shared DIU framebuffer support 2010-08-01 17:06:44 -06:00
mpc8260.h
mpic.h Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-03-21 18:55:10 -07:00
mpic_msgr.h powerpc: add support for MPIC message register API 2012-03-16 16:15:28 -05:00
msgbuf.h
msi_bitmap.h
mutex.h
nvram.h powerpc/nvram: Generalize code for OS partitions in NVRAM 2011-03-04 18:19:04 +11:00
ohare.h
opal.h powerpc/powernv: Update OPAL interfaces 2011-12-07 18:02:02 +11:00
oprofile_impl.h
paca.h powerpc: Rework lazy-interrupt handling 2012-03-09 13:25:06 +11:00
page.h powerpc: Define virtual-physical translations for RELOCATABLE 2011-12-20 10:21:34 -05:00
page_32.h dma-mapping: rename ARCH_KMALLOC_MINALIGN to ARCH_DMA_MINALIGN 2010-08-11 08:59:21 -07:00
page_64.h powerpc: Only define HAVE_ARCH_HUGETLB_UNMAPPED_AREA if PPC_MM_SLICES 2011-12-07 16:26:21 +11:00
param.h
parport.h
pasemi_dma.h Fix common misspellings 2011-03-31 11:26:23 -03:00
pci-bridge.h powerpc/eeh: Remove eeh information from pci_dn 2012-03-28 11:31:57 +11:00
pci.h powerpc/PCI: compute I/O space bus-to-resource offset consistently 2012-03-20 10:41:44 -07:00
percpu.h powerpc: Optimise per cpu accesses on 64bit 2010-07-09 11:28:30 +10:00
perf_event.h perf: Drop the skip argument from perf_arch_fetch_regs_caller 2010-06-08 23:31:27 +02:00
perf_event_fsl_emb.h
perf_event_server.h powerpc/perf: Fix instruction address sampling on 970 and Power4 2012-03-28 11:33:24 +11:00
pgalloc-32.h
pgalloc-64.h
pgalloc.h mm, powerpc: move the RCU page-table freeing into generic code 2011-05-25 08:39:16 -07:00
pgtable-ppc32.h mm: remove pte_*map_nested() 2010-10-26 16:52:08 -07:00
pgtable-ppc64-4k.h
pgtable-ppc64-64k.h
pgtable-ppc64.h powerpc: Whitespace fix to include/asm/pgtable-ppc64.h 2011-06-29 17:48:16 +10:00
pgtable.h powerpc: Add pgprot_cached_noncoherent() 2011-11-25 14:32:52 +11:00
pmac_feature.h Fix common misspellings 2011-03-31 11:26:23 -03:00
pmac_low_i2c.h
pmac_pfunc.h
pmc.h
pmi.h
poll.h
posix_types.h powerpc: Use generic posix_types.h 2012-02-14 12:01:29 -08:00
ppc-opcode.h KVM: PPC: Implement MMIO emulation support for Book3S HV guests 2012-03-05 14:52:37 +02:00
ppc-pci.h Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-03-23 14:02:12 -07:00
ppc4xx.h
ppc_asm.h powerpc: Fix register clobbering when accumulating stolen time 2012-03-09 10:55:16 +11:00
processor.h KVM: PPC: booke: category E.HV (GS-mode) support 2012-04-08 12:51:19 +03:00
prom.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
ps3.h
ps3av.h
ps3fb.h
ps3gpu.h
ps3stor.h
pSeries_reconfig.h powerpc/pseries: Introduce pSeries_reconfig_notify() 2011-06-29 17:48:22 +10:00
pte-8xx.h
pte-40x.h
pte-44x.h
pte-book3e.h powerpc: Hugetlb for BookE 2011-09-20 09:19:40 +10:00
pte-common.h powerpc: Don't write protect kernel text with CONFIG_DYNAMIC_FTRACE enabled 2011-04-18 13:08:21 +10:00
pte-fsl-booke.h
pte-hash32.h
pte-hash64-4k.h
pte-hash64-64k.h treewide: fix a few typos in comments 2011-05-10 10:16:21 +02:00
pte-hash64.h
ptrace.h powerpc: Implement GET_IP/SET_IP 2012-02-14 15:01:38 +11:00
qe.h doc: fix broken references 2011-09-27 18:08:04 +02:00
qe_ic.h powerpc: qe_ic: Rename get_irq_desc_data and get_irq_desc_chip 2011-03-30 15:38:02 +02:00
reg.h KVM: PPC: booke: category E.HV (GS-mode) support 2012-04-08 12:51:19 +03:00
reg_8xx.h
reg_a2.h powerpc: Add early debug for WSP platforms 2011-05-06 13:32:41 +10:00
reg_booke.h KVM: PPC: booke: category E.HV (GS-mode) support 2012-04-08 12:51:19 +03:00
reg_fsl_emb.h
resource.h
rheap.h
rio.h powerpc/fsl_rio: Fix compile error when CONFIG_FSL_RIO not set 2011-06-02 15:29:08 -05:00
rtas.h Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
rtc.h
runlatch.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
scom.h powerpc: Add SCOM infrastructure 2011-04-20 17:01:19 +10:00
seccomp.h
sections.h powerpc: Copy down exception vectors after feature fixups 2011-11-16 14:47:54 +11:00
sembuf.h
serial.h
setjmp.h
setup.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
sfp-machine.h Revert "endian: #define __BYTE_ORDER" 2010-05-26 08:30:15 -07:00
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h
smp.h powerpc: Random little legacy iSeries removal tidy ups 2012-03-28 11:33:23 +11:00
smu.h treewide: fix potentially dangerous trailing ';' in #defined values/expressions 2011-07-21 14:10:00 +02:00
socket.h net: Add framework to allow sending packets with customized CRC. 2012-02-24 01:37:35 -08:00
sockios.h
sparsemem.h powerpc: Fix oops when echoing bad values to /sys/devices/system/memory/probe 2011-09-20 15:53:23 +10:00
spinlock.h powerpc: Remove the remaining CONFIG_PPC_ISERIES pieces 2012-03-21 11:16:12 +11:00
spinlock_types.h
spu.h Merge branch 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-01-08 12:19:57 -08:00
spu_csa.h
spu_info.h
spu_priv1.h Fix common misspellings 2011-03-31 11:26:23 -03:00
sstep.h
stat.h
statfs.h
string.h
swab.h
swiotlb.h
switch_to.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
synch.h powerpc: Fix atomic_xxx_return barrier semantics 2011-11-17 16:26:07 +11:00
syscall.h powerpc/ftrace: Implement raw syscall tracepoints on PowerPC 2011-05-26 13:38:57 +10:00
syscalls.h
systbl.h Cross Memory Attach 2011-10-31 17:30:44 -07:00
tce.h powerpc/powernv: Add TCE SW invalidation support 2011-11-25 14:32:57 +11:00
termbits.h tty: Add EXTPROC support for LINEMODE 2010-08-10 13:47:39 -07:00
termios.h
thread_info.h powerpc: Rework runlatch code 2012-03-09 10:55:02 +11:00
time.h powerpc: Remove FW_FEATURE ISERIES from arch code 2012-03-21 11:16:11 +11:00
timex.h
tlb.h mm, powerpc: move the RCU page-table freeing into generic code 2011-05-25 08:39:16 -07:00
tlbflush.h powerpc/mm: Standardise on MMU_NO_CONTEXT 2011-04-20 16:59:20 +10:00
topology.h cpu: convert 'cpu' and 'machinecheck' sysdev_class to a regular subsystem 2011-12-21 14:29:42 -08:00
trace.h
tsi108.h
tsi108_irq.h
tsi108_pci.h
types.h Merge branch 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-01-08 12:19:57 -08:00
uaccess.h
ucc.h
ucc_fast.h
ucc_slow.h
ucontext.h
udbg.h powerpc: Random little legacy iSeries removal tidy ups 2012-03-28 11:33:23 +11:00
uic.h
unaligned.h
uninorth.h Revert wrong fixes for common misspellings 2011-04-26 23:31:11 -07:00
unistd.h Cross Memory Attach 2011-10-31 17:30:44 -07:00
user.h
vdso.h
vdso_datapage.h Fix common misspellings 2011-03-31 11:26:23 -03:00
vga.h
vio.h powerpc+sparc/vio: Modernize driver registration 2012-03-28 11:33:24 +11:00
wsp.h powerpc: Add WSP platform 2011-05-06 13:32:35 +10:00
xics.h irq_domain/powerpc: Use common irq_domain structure instead of irq_host 2012-02-14 14:06:50 -07:00
xilinx_intc.h
xilinx_pci.h
xmon.h
xor.h