[PATCH] i386: PARAVIRT: Consistently wrap paravirt ops callsites to make them patchable
[PATCH] i386: PARAVIRT: Consistently wrap paravirt ops callsites to make them patchable

Wrap a set of interesting paravirt_ops calls in a wrapper which makes
the callsites available for patching.  Unfortunately this is pretty
ugly because there's no way to get gcc to generate a function call,
but also wrap just the callsite itself with the necessary labels.

This patch supports functions with 0-4 arguments, and either void or
returning a value.  64-bit arguments must be split into a pair of
32-bit arguments (lower word first).  Small structures are returned in
registers.

Signed-off-by: Jeremy Fitzhardinge <b3f594e10a9edcf5413cf1190121d45078c62290@xensource.com>
Signed-off-by: Andi Kleen <0474aee45985f5ae829f53849df476200e876990@suse.de>
Cc: Rusty Russell <df9728c9e5104131c08c7adb03af425394842596@rustcorp.com.au>
Cc: Zachary Amsden <9de8c4480303b5335cd2a33eefe814615ba3612a@vmware.com>
Cc: Anthony Liguori <6e1a438cfe5a6c9e2165665f8c2258849ccc43f0@codemonkey.ws>

TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,TeamVee-Kanas/android_kernel_samsung_kanas