linux/drivers
Jeremy Fitzhardinge 8965c1c095 paravirt: clean up lazy mode handling
Currently, the set_lazy_mode pv_op is overloaded with 5 functions:
 1. enter lazy cpu mode
 2. leave lazy cpu mode
 3. enter lazy mmu mode
 4. leave lazy mmu mode
 5. flush pending batched operations

This complicates each paravirt backend, since it needs to deal with
all the possible state transitions, handling flushing, etc. In
particular, flushing is quite distinct from the other 4 functions, and
seems to just cause complication.

This patch removes the set_lazy_mode operation, and adds "enter" and
"leave" lazy mode operations on mmu_ops and cpu_ops.  All the logic
associated with enter and leaving lazy states is now in common code
(basically BUG_ONs to make sure that no mode is current when entering
a lazy mode, and make sure that the mode is current when leaving).
Also, flush is handled in a common way, by simply leaving and
re-entering the lazy mode.

The result is that the Xen, lguest and VMI lazy mode implementations
are much simpler.

Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Cc: Andi Kleen <ak@suse.de>
Cc: Zach Amsden <zach@vmware.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Avi Kivity <avi@qumranet.com>
Cc: Anthony Liguory <aliguori@us.ibm.com>
Cc: "Glauber de Oliveira Costa" <glommer@gmail.com>
Cc: Jun Nakajima <jun.nakajima@intel.com>
2007-10-16 11:51:29 -07:00
..
acorn/char
acpi Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 2007-10-12 15:49:37 -07:00
amba Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
ata [libata] struct pci_dev related cleanups 2007-10-12 14:55:47 -04:00
atm [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
auxdisplay
base PM: merge device power-management source files 2007-10-12 14:51:12 -07:00
block [S390] Remove obsolete recommendation for 8M ramdisk size. 2007-10-12 16:13:09 +02:00
bluetooth
cdrom [POWERPC] iSeries: Move detection of virtual cdroms 2007-10-11 20:40:47 +10:00
char paravirt: refactor struct paravirt_ops into smaller pv_*_ops 2007-10-16 11:51:29 -07:00
clocksource
connector [NET]: make netlink user -> kernel interface synchronious 2007-10-10 21:15:29 -07:00
cpufreq Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 2007-10-12 15:49:37 -07:00
crypto [CRYPTO] sha: Add header file for SHA definitions 2007-10-10 16:55:50 -07:00
dio
dma
edac Drivers: clean up direct setting of the name of a kset 2007-10-12 14:51:02 -07:00
eisa Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
fc4
firewire Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
firmware Driver core: rename ktype_edd and ktype_efivar 2007-10-12 14:51:12 -07:00
hid
hwmon drivers/firmware: const-ify DMI API and internals 2007-10-09 20:22:20 -04:00
i2c Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
ide Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
ieee1394 Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
infiniband Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
input Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 2007-10-12 15:49:37 -07:00
isdn Merge branch 'isdn-cleanups' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6 2007-10-12 15:03:35 -07:00
kvm
leds leds: Update Cobalt Qube series front LED support 2007-10-11 22:24:00 +01:00
lguest paravirt: clean up lazy mode handling 2007-10-16 11:51:29 -07:00
macintosh
mca
md kobjects: fix up improper use of the kobject name field 2007-10-12 14:51:02 -07:00
media cdev: remove unneeded setting of cdev names 2007-10-12 14:51:02 -07:00
message [NET]: Nuke SET_MODULE_OWNER macro. 2007-10-10 16:51:13 -07:00
mfd
misc Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
mmc Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 2007-10-12 15:49:37 -07:00
mtd
net Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 2007-10-12 15:49:37 -07:00
nubus
of
oprofile
parisc [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
parport
pci Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2007-10-12 15:50:23 -07:00
pcmcia Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
pnp drivers/firmware: const-ify DMI API and internals 2007-10-09 20:22:20 -04:00
power Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
ps3
rapidio
rtc
s390 Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 2007-10-12 15:49:37 -07:00
sbus
scsi Merge branch 'upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev 2007-10-12 16:16:41 -07:00
serial Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2007-10-11 21:55:47 -07:00
sh
sn
spi Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
ssb [SSB]: Sparse fixes. 2007-10-10 16:52:21 -07:00
tc
telephony
uio
usb Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 2007-10-12 15:49:37 -07:00
video Convert from class_device to device for drivers/video 2007-10-12 14:51:04 -07:00
w1 Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
xen
zorro
Kconfig [SSB]: add Sonics Silicon Backplane bus support 2007-10-10 16:51:36 -07:00
Makefile [SSB]: add Sonics Silicon Backplane bus support 2007-10-10 16:51:36 -07:00