rpms/grub/devel grub-fedora-9.patch,1.6,1.7 grub.spec,1.69,1.70

Peter Jones (pjones) fedora-extras-commits at redhat.com
Tue Mar 18 23:10:43 UTC 2008


Author: pjones

Update of /cvs/extras/rpms/grub/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv3969

Modified Files:
	grub-fedora-9.patch grub.spec 
Log Message:
* Tue Mar 18 2008 Peter Jones <pjones at redhat.com> - 0.97-29
- Remove all the prot_mode_mem code from EFI loader on x86_64.


grub-fedora-9.patch:

Index: grub-fedora-9.patch
===================================================================
RCS file: /cvs/extras/rpms/grub/devel/grub-fedora-9.patch,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- grub-fedora-9.patch	6 Mar 2008 23:12:47 -0000	1.6
+++ grub-fedora-9.patch	18 Mar 2008 23:10:35 -0000	1.7
@@ -11510,6 +11510,9 @@
 +libgrubefi_a_CFLAGS = $(RELOC_FLAGS) -nostdinc
 +
 +endif
+diff --git a/efi/e2fs.c b/efi/e2fs.c
+new file mode 100644
+index 0000000..e69de29
 diff --git a/efi/efichainloader.c b/efi/efichainloader.c
 new file mode 100644
 index 0000000..016636c
@@ -26615,10 +26618,10 @@
 +
 diff --git a/efi/x86_64/loader/linux.c b/efi/x86_64/loader/linux.c
 new file mode 100644
-index 0000000..f0fa412
+index 0000000..2108260
 --- /dev/null
 +++ b/efi/x86_64/loader/linux.c
-@@ -0,0 +1,822 @@
+@@ -0,0 +1,797 @@
 +/*
 + *  GRUB  --  GRand Unified Bootloader
 + *  Copyright (C) 2006  Free Software Foundation, Inc.
@@ -26659,7 +26662,6 @@
 +static unsigned long linux_mem_size;
 +static int loaded;
 +static void *real_mode_mem;
-+static void *prot_mode_mem;
 +static void *initrd_mem;
 +static void *mmap_buf;
 +static grub_efi_uintn_t real_mode_pages;
@@ -26722,12 +26724,6 @@
 +      real_mode_mem = 0;
 +    }
 +
-+  if (prot_mode_mem)
-+    {
-+      grub_efi_free_pages ((grub_addr_t) prot_mode_mem, prot_mode_pages);
-+      prot_mode_mem = 0;
-+    }
-+
 +  if (initrd_mem)
 +    {
 +      grub_efi_free_pages ((grub_addr_t) initrd_mem, initrd_pages);
@@ -26769,7 +26765,6 @@
 +
 +  /* Initialize the memory pointers with NULL for convenience.  */
 +  real_mode_mem = 0;
-+  prot_mode_mem = 0;
 +  mmap_buf = 0;
 +
 +  /* Read the memory map temporarily, to find free space.  */
@@ -26832,16 +26827,6 @@
 +      goto fail;
 +    }
 +
-+  /* Next, find free pages for the protected mode code.  */
-+  /* XXX what happens if anything is using this address?  */
-+  prot_mode_mem = grub_efi_allocate_pages (0x100000, prot_mode_pages);
-+  if (! prot_mode_mem)
-+    {
-+      errnum = ERR_WONT_FIT;
-+      grub_printf ("cannot allocate protected mode pages");
-+      goto fail;
-+    }
-+
 +  grub_free (mmap);
 +  return 1;
 +
@@ -27364,15 +27349,8 @@
 +    addr_max = linux_mem_size;
 +  addr_max &= ~((1 << 12)-1);
 +
-+  /* Linux 2.3.xx has a bug in the memory range check, so avoid
-+     the last page.
-+     Linux 2.2.xx has a bug in the memory range check, which is
-+     worse than that of Linux 2.3.xx, so avoid the last 64kb.  */
-+  //addr_max -= 0x10000;
-+
 +  /* Usually, the compression ratio is about 50%.  */
-+  addr_min = (grub_addr_t) prot_mode_mem + ((prot_mode_pages * 3) << 12);
-+  grub_dprintf(__func__, "prot_mode_mem=%p prot_mode_pages=%lu\n", prot_mode_mem, prot_mode_pages);
++  addr_min = 0;
 +
 +  /* Find the highest address to put the initrd.  */
 +  mmap_size = find_mmap_size ();
@@ -35684,7 +35662,7 @@
 +#endif
 +
 diff --git a/stage2/builtins.c b/stage2/builtins.c
-index 3e08a86..aa85529 100644
+index 3e08a86..7a5a2b0 100644
 --- a/stage2/builtins.c
 +++ b/stage2/builtins.c
 @@ -131,62 +131,97 @@ disk_read_print_func (int sector, int offset, int length)
@@ -35782,7 +35760,7 @@
 -  int num_sectors = 0;
 -  int num_entries = 0;
 -  int last_length = 0;
- 
+-
 -  auto void disk_read_blocklist_func (int sector, int offset, int length);
 -  
 -  /* Collect contiguous blocks into one entry as many as possible,
@@ -35815,7 +35793,7 @@
 -	      num_sectors = 0;
 -	    }
 -	}
--
+ 
 -      if (offset > 0)
 -	{
 -	  grub_printf("%s%d[%d-%d]", num_entries ? "," : "",
@@ -36297,25 +36275,27 @@
  	{
  	  char *str;
  
-@@ -927,12 +1136,12 @@ displaymem_func (char *arg, int flags)
- 	  grub_printf ("   %s:  Base Address:  0x%x X 4GB + 0x%x,\n"
- 		       "      Length:   0x%x X 4GB + 0x%x bytes\n",
- 		       str,
+@@ -924,15 +1133,10 @@ displaymem_func (char *arg, int flags)
+ 	    str = "Usable RAM";
+ 	  else
+ 	    str = "Reserved";
+-	  grub_printf ("   %s:  Base Address:  0x%x X 4GB + 0x%x,\n"
+-		       "      Length:   0x%x X 4GB + 0x%x bytes\n",
+-		       str,
 -		       (unsigned long) (map->BaseAddr >> 32),
 -		       (unsigned long) (map->BaseAddr & 0xFFFFFFFF),
 -		       (unsigned long) (map->Length >> 32),
 -		       (unsigned long) (map->Length & 0xFFFFFFFF));
-+		       (unsigned int) (map->BaseAddr >> 32),
-+		       (unsigned int) (map->BaseAddr & 0xFFFFFFFF),
-+		       (unsigned int) (map->Length >> 32),
-+		       (unsigned int) (map->Length & 0xFFFFFFFF));
- 
+-
 -	  map = ((struct AddrRangeDesc *) (((int) map) + 4 + map->size));
++	  grub_printf ("   %s:  Base Address: 0x%lx Length: 0x%lx bytes\n",
++	  		str, map->BaseAddr, map->Length);
++
 +	  map = ((struct AddrRangeDesc *) (((unsigned long) map) + 4 + map->size));
  	}
      }
  
-@@ -1009,6 +1218,7 @@ static struct builtin builtin_dump =
+@@ -1009,6 +1213,7 @@ static struct builtin builtin_dump =
    };
  #endif /* GRUB_UTIL */
  
@@ -36323,7 +36303,7 @@
  
  static char embed_info[32];
  /* embed */
-@@ -1143,6 +1353,7 @@ static struct builtin builtin_embed =
+@@ -1143,6 +1348,7 @@ static struct builtin builtin_embed =
    " is a drive, or in the \"bootloader\" area if DEVICE is a FFS partition."
    " Print the number of sectors which STAGE1_5 occupies if successful."
  };
@@ -36331,7 +36311,7 @@
  
  
  /* fallback */
-@@ -1233,14 +1444,15 @@ find_func (char *arg, int flags)
+@@ -1233,14 +1439,15 @@ find_func (char *arg, int flags)
    for (drive = 0x80; drive < 0x88; drive++)
      {
        unsigned long part = 0xFFFFFF;
@@ -36350,7 +36330,7 @@
  	{
  	  if (type != PC_SLICE_TYPE_NONE
  	      && ! IS_PC_SLICE_TYPE_BSD (type)
-@@ -1679,6 +1891,7 @@ static struct builtin builtin_ifconfig =
+@@ -1679,6 +1886,7 @@ static struct builtin builtin_ifconfig =
  };
  #endif /* SUPPORT_NETBOOT */
  
@@ -36358,7 +36338,7 @@
  
  /* impsprobe */
  static int
-@@ -1706,6 +1919,7 @@ static struct builtin builtin_impsprobe =
+@@ -1706,6 +1914,7 @@ static struct builtin builtin_impsprobe =
    " configuration table and boot the various CPUs which are found into"
    " a tight loop."
  };
@@ -36366,7 +36346,7 @@
  
  
  /* initrd */
-@@ -1738,8 +1952,82 @@ static struct builtin builtin_initrd =
+@@ -1738,8 +1947,82 @@ static struct builtin builtin_initrd =
    " appropriate parameters in the Linux setup area in memory."
  };
  
@@ -36449,7 +36429,7 @@
  static int
  install_func (char *arg, int flags)
  {
-@@ -1747,8 +2035,12 @@ install_func (char *arg, int flags)
+@@ -1747,8 +2030,12 @@ install_func (char *arg, int flags)
    char *stage1_buffer = (char *) RAW_ADDR (0x100000);
    char *stage2_buffer = stage1_buffer + SECTOR_SIZE;
    char *old_sect = stage2_buffer + SECTOR_SIZE;
@@ -36464,7 +36444,7 @@
    /* XXX: Probably SECTOR_SIZE is reasonable.  */
    char *config_filename = stage2_second_buffer + SECTOR_SIZE;
    char *dummy = config_filename + SECTOR_SIZE;
-@@ -1757,10 +2049,11 @@ install_func (char *arg, int flags)
+@@ -1757,10 +2044,11 @@ install_func (char *arg, int flags)
    int src_drive, src_partition, src_part_start;
    int i;
    struct geometry dest_geom, src_geom;
@@ -36478,7 +36458,7 @@
    /* Point to the location of the name of a configuration file in Stage 2.  */
    char *config_file_location;
    /* If FILE is a Stage 1.5?  */
-@@ -1769,68 +2062,18 @@ install_func (char *arg, int flags)
+@@ -1769,68 +2057,18 @@ install_func (char *arg, int flags)
    int is_open = 0;
    /* If LBA is forced?  */
    int is_force_lba = 0;
@@ -36552,7 +36532,7 @@
    /* First, check the GNU-style long option.  */
    while (1)
      {
-@@ -1862,10 +2105,10 @@ install_func (char *arg, int flags)
+@@ -1862,10 +2100,10 @@ install_func (char *arg, int flags)
    addr = skip_to (0, file);
  
    /* Get the installation address.  */
@@ -36565,7 +36545,7 @@
        ptr = addr;
        errnum = 0;
      }
-@@ -1961,17 +2204,17 @@ install_func (char *arg, int flags)
+@@ -1961,17 +2199,17 @@ install_func (char *arg, int flags)
        = 0x9090;
    
    /* Read the first sector of Stage 2.  */
@@ -36587,7 +36567,7 @@
    
    /* Check for the version of Stage 2.  */
    if (*((short *) (stage2_second_buffer + STAGE2_VER_MAJ_OFFS))
-@@ -1987,27 +2230,27 @@ install_func (char *arg, int flags)
+@@ -1987,27 +2225,27 @@ install_func (char *arg, int flags)
  
    /* If INSTALLADDR is not specified explicitly in the command-line,
       determine it by the Stage 2 id.  */
@@ -36622,7 +36602,7 @@
  	  || (*((int *) (i - 4)) & 0x80000000)
  	  || *((unsigned short *) i) >= 0xA00
  	  || *((short *) (i + 2)) == 0)
-@@ -2021,13 +2264,13 @@ install_func (char *arg, int flags)
+@@ -2021,13 +2259,13 @@ install_func (char *arg, int flags)
        i -= 8;
      }
  
@@ -36639,7 +36619,7 @@
    if (! grub_read (dummy, -1))
      goto fail;
    
-@@ -2110,7 +2353,7 @@ install_func (char *arg, int flags)
+@@ -2110,7 +2348,7 @@ install_func (char *arg, int flags)
  	  /* Skip the first sector.  */
  	  grub_seek (SECTOR_SIZE);
  	  
@@ -36648,7 +36628,7 @@
  	  if (grub_read (stage2_buffer, SECTOR_SIZE) != SECTOR_SIZE)
  	    goto fail;
  	  
-@@ -2180,7 +2423,7 @@ install_func (char *arg, int flags)
+@@ -2180,7 +2418,7 @@ install_func (char *arg, int flags)
  	  else
  #endif /* GRUB_UTIL */
  	    {
@@ -36657,7 +36637,7 @@
  		goto fail;
  	    }
  	}
-@@ -2202,7 +2445,7 @@ install_func (char *arg, int flags)
+@@ -2202,7 +2440,7 @@ install_func (char *arg, int flags)
  	  goto fail;
  	}
  
@@ -36666,7 +36646,7 @@
  	{
  	  fclose (fp);
  	  errnum = ERR_WRITE;
-@@ -2229,7 +2472,7 @@ install_func (char *arg, int flags)
+@@ -2229,7 +2467,7 @@ install_func (char *arg, int flags)
  	goto fail;
  
        if (! devwrite (stage2_first_sector - src_part_start, 1,
@@ -36675,7 +36655,7 @@
  	goto fail;
  
        if (! devwrite (stage2_second_sector - src_part_start, 1,
-@@ -2322,6 +2565,7 @@ static struct builtin builtin_ioprobe =
+@@ -2322,6 +2560,7 @@ static struct builtin builtin_ioprobe =
    "ioprobe DRIVE",
    "Probe I/O ports used for the drive DRIVE."
  };
@@ -36683,7 +36663,7 @@
  
  
  /* kernel */
-@@ -2456,6 +2700,7 @@ static struct builtin builtin_makeactive =
+@@ -2456,6 +2695,7 @@ static struct builtin builtin_makeactive =
    " This command is limited to _primary_ PC partitions on a hard disk."
  };
  
@@ -36691,7 +36671,7 @@
  
  /* map */
  /* Map FROM_DRIVE to TO_DRIVE.  */
-@@ -2519,6 +2764,7 @@ static struct builtin builtin_map =
+@@ -2519,6 +2759,7 @@ static struct builtin builtin_map =
    " when you chain-load some operating systems, such as DOS, if such an"
    " OS resides at a non-first drive."
  };
@@ -36699,7 +36679,7 @@
  
  
  #ifdef USE_MD5_PASSWORDS
-@@ -2579,6 +2825,7 @@ static struct builtin builtin_md5crypt =
+@@ -2579,6 +2820,7 @@ static struct builtin builtin_md5crypt =
  };
  #endif /* USE_MD5_PASSWORDS */
  
@@ -36707,7 +36687,7 @@
  
  /* module */
  static int
-@@ -2656,6 +2903,7 @@ static struct builtin builtin_modulenounzip =
+@@ -2656,6 +2898,7 @@ static struct builtin builtin_modulenounzip =
    "The same as `module', except that automatic decompression is"
    " disabled."
  };
@@ -36715,7 +36695,7 @@
  
  
  /* pager [on|off] */
-@@ -2815,8 +3063,8 @@ parttype_func (char *arg, int flags)
+@@ -2815,8 +3058,8 @@ parttype_func (char *arg, int flags)
  {
    int new_type;
    unsigned long part = 0xFFFFFF;
@@ -36726,7 +36706,7 @@
    char mbr[512];
  
    /* Get the drive and the partition.  */
-@@ -2853,8 +3101,15 @@ parttype_func (char *arg, int flags)
+@@ -2853,8 +3096,15 @@ parttype_func (char *arg, int flags)
    /* Look for the partition.  */
    while (next_partition (current_drive, 0xFFFFFF, &part, &type,
  			 &start, &len, &offset, &entry,
@@ -36743,7 +36723,7 @@
        if (part == current_partition)
  	{
  	  /* Found.  */
-@@ -2982,8 +3237,8 @@ static struct builtin builtin_pause =
+@@ -2982,8 +3232,8 @@ static struct builtin builtin_pause =
    "Print MESSAGE, then wait until a key is pressed."
  };
  
@@ -36753,7 +36733,7 @@
  /* quit */
  static int
  quit_func (char *arg, int flags)
-@@ -3002,7 +3257,7 @@ static struct builtin builtin_quit =
+@@ -3002,7 +3252,7 @@ static struct builtin builtin_quit =
    "quit",
    "Exit from the GRUB shell."
  };
@@ -36762,7 +36742,7 @@
  
  
  #ifdef SUPPORT_NETBOOT
-@@ -3217,146 +3472,179 @@ static struct builtin builtin_rootnoverify =
+@@ -3217,146 +3467,179 @@ static struct builtin builtin_rootnoverify =
  };
  
  
@@ -37063,7 +37043,7 @@
  #else /* ! SUPPORT_DISKLESS && ! GRUB_UTIL */
    errnum = ERR_UNRECOGNIZED;
    return 1;
-@@ -3368,10 +3656,14 @@ static struct builtin builtin_savedefault =
+@@ -3368,10 +3651,14 @@ static struct builtin builtin_savedefault =
    "savedefault",
    savedefault_func,
    BUILTIN_CMDLINE,
@@ -37082,7 +37062,7 @@
  };
  
  
-@@ -3527,6 +3819,7 @@ static struct builtin builtin_serial =
+@@ -3527,6 +3814,7 @@ static struct builtin builtin_serial =
  };
  #endif /* SUPPORT_SERIAL */
  
@@ -37090,7 +37070,7 @@
  
  /* setkey */
  struct keysym
-@@ -3612,50 +3905,47 @@ static struct keysym keysym_table[] =
+@@ -3612,50 +3900,47 @@ static struct keysym keysym_table[] =
    {"delete",		0,		0x7f,	0,	0x53}
  };
  
@@ -37175,7 +37155,7 @@
    to_key = arg;
    from_key = skip_to (0, to_key);
  
-@@ -3973,7 +4263,7 @@ setup_func (char *arg, int flags)
+@@ -3973,7 +4258,7 @@ setup_func (char *arg, int flags)
  
    /* The prefix was determined.  */
    grub_sprintf (stage2, "%s%s", prefix, "/stage2");
@@ -37184,7 +37164,7 @@
    *real_config_filename = 0;
  
    /* Check if stage2 exists.  */
-@@ -4083,9 +4373,10 @@ static struct builtin builtin_setup =
+@@ -4083,9 +4368,10 @@ static struct builtin builtin_setup =
    " partition where GRUB images reside, specify the option `--stage2'"
    " to tell GRUB the file name under your OS."
  };
@@ -37196,7 +37176,7 @@
  /* terminal */
  static int
  terminal_func (char *arg, int flags)
-@@ -4244,17 +4535,21 @@ terminal_func (char *arg, int flags)
+@@ -4244,17 +4530,21 @@ terminal_func (char *arg, int flags)
   end:
    current_term = term_table + default_term;
    current_term->flags = term_flags;
@@ -37223,7 +37203,7 @@
    
    return 0;
  }
-@@ -4264,7 +4559,7 @@ static struct builtin builtin_terminal =
+@@ -4264,7 +4554,7 @@ static struct builtin builtin_terminal =
    "terminal",
    terminal_func,
    BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
@@ -37232,7 +37212,7 @@
    "Select a terminal. When multiple terminals are specified, wait until"
    " you push any key to continue. If both console and serial are specified,"
    " the terminal to which you input a key first will be selected. If no"
-@@ -4276,7 +4571,7 @@ static struct builtin builtin_terminal =
+@@ -4276,7 +4566,7 @@ static struct builtin builtin_terminal =
    " seconds. The option --lines specifies the maximum number of lines."
    " The option --silent is used to suppress messages."
  };
@@ -37241,7 +37221,7 @@
  
  
  #ifdef SUPPORT_SERIAL
-@@ -4462,6 +4757,7 @@ static struct builtin builtin_testload =
+@@ -4462,6 +4752,7 @@ static struct builtin builtin_testload =
    " step is to try loading a kernel."
  };
  
@@ -37249,7 +37229,7 @@
  
  /* testvbe MODE */
  static int
-@@ -4566,6 +4862,7 @@ static struct builtin builtin_testvbe =
+@@ -4566,6 +4857,7 @@ static struct builtin builtin_testvbe =
    "testvbe MODE",
    "Test the VBE mode MODE. Hit any key to return."
  };
@@ -37257,7 +37237,7 @@
  
  
  #ifdef SUPPORT_NETBOOT
-@@ -4598,6 +4895,15 @@ static struct builtin builtin_tftpserver =
+@@ -4598,6 +4890,15 @@ static struct builtin builtin_tftpserver =
  static int
  timeout_func (char *arg, int flags)
  {
@@ -37273,7 +37253,7 @@
    if (! safe_parse_maxint (&arg, &grub_timeout))
      return 1;
  
-@@ -4661,6 +4967,7 @@ static struct builtin builtin_unhide =
+@@ -4661,6 +4962,7 @@ static struct builtin builtin_unhide =
    " partition type code."
  };
  
@@ -37281,7 +37261,7 @@
  
  /* uppermem */
  static int
-@@ -4790,11 +5097,15 @@ static struct builtin builtin_vbeprobe =
+@@ -4790,11 +5092,15 @@ static struct builtin builtin_vbeprobe =
    "Probe VBE information. If the mode number MODE is specified, show only"
    " the information about only the mode."
  };
@@ -37297,7 +37277,7 @@
    &builtin_blocklist,
    &builtin_boot,
  #ifdef SUPPORT_NETBOOT
-@@ -4802,6 +5113,7 @@ struct builtin *builtin_table[] =
+@@ -4802,6 +5108,7 @@ struct builtin *builtin_table[] =
  #endif /* SUPPORT_NETBOOT */
    &builtin_cat,
    &builtin_chainloader,
@@ -37305,7 +37285,7 @@
    &builtin_cmp,
    &builtin_color,
    &builtin_configfile,
-@@ -4813,14 +5125,21 @@ struct builtin *builtin_table[] =
+@@ -4813,14 +5120,21 @@ struct builtin *builtin_table[] =
  #ifdef SUPPORT_NETBOOT
    &builtin_dhcp,
  #endif /* SUPPORT_NETBOOT */
@@ -37327,7 +37307,7 @@
    &builtin_fstest,
    &builtin_geometry,
    &builtin_halt,
-@@ -4830,27 +5149,35 @@ struct builtin *builtin_table[] =
+@@ -4830,27 +5144,35 @@ struct builtin *builtin_table[] =
  #ifdef SUPPORT_NETBOOT
    &builtin_ifconfig,
  #endif /* SUPPORT_NETBOOT */
@@ -37365,7 +37345,7 @@
  #ifdef SUPPORT_NETBOOT
    &builtin_rarp,
  #endif /* SUPPORT_NETBOOT */
-@@ -4862,23 +5189,32 @@ struct builtin *builtin_table[] =
+@@ -4862,23 +5184,32 @@ struct builtin *builtin_table[] =
  #ifdef SUPPORT_SERIAL
    &builtin_serial,
  #endif /* SUPPORT_SERIAL */


Index: grub.spec
===================================================================
RCS file: /cvs/extras/rpms/grub/devel/grub.spec,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -r1.69 -r1.70
--- grub.spec	6 Mar 2008 23:12:47 -0000	1.69
+++ grub.spec	18 Mar 2008 23:10:35 -0000	1.70
@@ -1,6 +1,6 @@
 Name: grub
 Version: 0.97
-Release: 28%{?dist}
+Release: 29%{?dist}
 Summary: GRUB - the Grand Unified Boot Loader.
 Group: System Environment/Base
 License: GPLv2+
@@ -89,6 +89,9 @@
 %{_datadir}/grub
 
 %changelog
+* Tue Mar 18 2008 Peter Jones <pjones at redhat.com> - 0.97-29
+- Remove all the prot_mode_mem code from EFI loader on x86_64.
+
 * Thu Mar 06 2008 Peter Jones <pjones at redhat.com> - 0.97-28
 - Fix FAT/VFAT directory searching.
 - Don't artificially limit the kernel's location to lowmem.




More information about the fedora-extras-commits mailing list