Mailing List Archive

[xen-3.4-testing] PV-GRUB: Fix gzip support and iso support on x86_64
# HG changeset patch
# User Keir Fraser <keir.fraser@citrix.com>
# Date 1268158384 0
# Node ID 0e9f112a7349a43faacad1953f285fcabaf7efe4
# Parent 70c3ccb34e5185cc816b6c733c0be639f14ba362
PV-GRUB: Fix gzip support and iso support on x86_64

Signed-off-by: Samuel Thibault <sthibault@debian.org>
xen-unstable changeset: 21007:6450dfb7737f
xen-unstable date: Mon Mar 08 19:09:23 2010 +0000
---
stubdom/grub.patches/99minios | 57 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 57 insertions(+)

diff -r 70c3ccb34e51 -r 0e9f112a7349 stubdom/grub.patches/99minios
--- a/stubdom/grub.patches/99minios Tue Mar 09 18:12:36 2010 +0000
+++ b/stubdom/grub.patches/99minios Tue Mar 09 18:13:04 2010 +0000
@@ -1493,3 +1493,70 @@ diff -u -p -r1.5 fsys_xfs.c
#else
/* This is slower but this works on all x86 architectures. */
__asm__("xchgb %b0, %h0" \
+--- grub.orig/stage2/gunzip.c 2010-03-07 23:03:34.000000000 +0100
++++ grub/stage2/gunzip.c 2010-03-07 23:05:36.000000000 +0100
+@@ -141,7 +141,7 @@
+ static int gzip_filemax;
+ static int gzip_fsmax;
+ static int saved_filepos;
+-static unsigned long gzip_crc;
++static unsigned int gzip_crc;
+
+ /* internal extra variables for use of inflate code */
+ static int block_type;
+@@ -157,7 +157,7 @@
+ * Linear allocator.
+ */
+
+-static unsigned long linalloc_topaddr;
++static unsigned int linalloc_topaddr;
+
+ static void *
+ linalloc (int size)
+@@ -253,7 +253,7 @@
+
+ typedef unsigned char uch;
+ typedef unsigned short ush;
+-typedef unsigned long ulg;
++typedef unsigned int ulg;
+
+ /*
+ * Window Size
+@@ -316,8 +316,8 @@
+ return 0;
+ }
+
+- gzip_crc = *((unsigned long *) buf);
+- gzip_fsmax = gzip_filemax = *((unsigned long *) (buf + 4));
++ gzip_crc = *((unsigned int *) buf);
++ gzip_fsmax = gzip_filemax = *((unsigned int *) (buf + 4));
+
+ initialize_tables ();
+
+diff -ur grub.orig/stage2/fsys_iso9660.c grub-upstream/stage2/fsys_iso9660.c
+--- grub.orig/stage2/fsys_iso9660.c 2010-03-07 23:39:00.000000000 +0100
++++ grub/stage2/fsys_iso9660.c 2010-03-07 23:39:56.000000000 +0100
+@@ -43,7 +43,7 @@
+
+ /* iso fs inode data in memory */
+ struct iso_inode_info {
+- unsigned long file_start;
++ unsigned int file_start;
+ };
+
+ #define ISO_SUPER \
+@@ -88,12 +88,12 @@
+ if (byte_len <= 0)
+ return 1;
+
+- sector += (byte_offset >> sector_size_lg2);
+- byte_offset &= (buf_geom.sector_size - 1);
+ asm volatile ("shl%L0 %1,%0"
+ : "=r"(sector)
+ : "Ic"((int8_t)(ISO_SECTOR_BITS - sector_size_lg2)),
+ "0"(sector));
++ sector += (byte_offset >> sector_size_lg2);
++ byte_offset &= (buf_geom.sector_size - 1);
+
+ #if !defined(STAGE1_5)
+ if (disk_read_hook && debug)

_______________________________________________
Xen-changelog mailing list
Xen-changelog@lists.xensource.com
http://lists.xensource.com/xen-changelog