Hi,
Attached patch makes the PV block driver for 32bit PV guests working on
64bit PV Dom0.
In the io/blkif.h, the 'id' field of
struct blkif_request is 64bit, but on a LP32 system it's aligned on
32bits, while it'll be aligned to 64bits on a LP64 system. So on LP64 there'll
be 4 bytes of padding between handle and id. The same is true for
struct blkif_response: it's 11 bytes long, so will be aligned differently
in the ring between a 32 and 64bit systems.
In order to fix this, attached patch introduces in the public headers,
blkif_request/blkif_response, blkif_x86_32_request/blkif_x86_32_response
and blkif_x86_64_request/blkif_x86_64_response.
NetBSD is doing so io/blkif.h in the public headers, while Linux
does so in include/xen/blkif.h in the linux sources. But the result is
the same ...
Successfully tested with the combinations:
64bit Dom0 32bit PAE PV guest
NetBSD Linux
Linux NetBSD
The combinations 64bit Dom0, 64bit PV DomU works with and without this patch.
Signed-off-by: Christoph Egger <Christoph.Egger@xxxxxxx>
--
AMD Saxony, Dresden, Germany
Operating System Research Center
Legal Information:
AMD Saxony Limited Liability Company & Co. KG
Sitz (Geschäftsanschrift):
Wilschdorfer Landstr. 101, 01109 Dresden, Deutschland
Registergericht Dresden: HRA 4896
vertretungsberechtigter Komplementär:
AMD Saxony LLC (Sitz Wilmington, Delaware, USA)
Geschäftsführer der AMD Saxony LLC:
Dr. Hans-R. Deppe, Thomas McCoy
public_blkif.diff
Description: Text Data
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|