Commit graph

582 commits

Author SHA1 Message Date
Vladimir 'phcoder' Serbinenko
5bfb6e71e8 features support 2011-04-05 15:05:53 +02:00
Vladimir 'phcoder' Serbinenko
b38a498394 BPB patching support (untested) 2011-04-05 14:40:15 +02:00
Vladimir 'phcoder' Serbinenko
850e937329 Increase LVM implementation robustness in order not to crash on
configurations like pvmove. Previously code assumed that in some places
	only lvs or only pvs are used whereas it seems that they are used
	interchangeably.

	* grub-core/disk/lvm.c (read_node): New function.
	(read_lv): Use read_node.
	(grub_lvm_scan_device): Use only first mirror on pvmove'd lvs.
	Match volumes only at the end when all lvs are found. Take both
	pvs (first) and lvs (second) into account.
	* include/grub/lvm.h (grub_lvm_segment): Merge fields stripe_* and
	mirror_* into node_*. All users updated.
	(grub_lvm_stripe): Merge this ...
	(grub_lvm_mirror): ... and this ...
	(grub_lvm_node): ... into this. All users updated.
2011-04-03 16:28:14 +02:00
Vladimir 'phcoder' Serbinenko
6f33215394 * grub-core/disk/lvm.c (grub_lvm_scan_device): Print errors on the end
of function to allow further scanning for LVMs.
2011-04-03 15:57:44 +02:00
Vladimir 'phcoder' Serbinenko
829ea451a4 * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_read): Don't close
on failed seek as it breaks open fd reusage.
2011-04-03 15:45:20 +02:00
Colin Watson
2cccc747ac Store the loopback device as data on loopback grub_disk structures,
rather than the file it points to.  This fixes use of freed memory
if an existing loopback device is replaced.

* grub-core/disk/loopback.c (grub_loopback_open): Store dev in
disk->data, not dev->file.
(grub_loopback_read): Adjust file assignment to match.
Fixes Ubuntu bug #742967.
2011-04-01 17:04:10 +01:00
Colin Watson
186ae367af * grub-core/disk/loopback.c (grub_cmd_loopback): Fix a memory leak
when replacing an existing device.
2011-04-01 15:35:09 +01:00
Vladimir 'phcoder' Serbinenko
cfed2ad097 Fix incorrect types in jfs.c. This enables >2TiB disks and fixes some
memory corruptions.

	* grub-core/fs/jfs.c (struct grub_jfs_diropen): Interpret bytes as
	unsigned.
	(grub_jfs_lookup_symlink): Make ino a grub_uint32_t rather than int.
	(grub_jfs_blkno): Use 64-bit quantities for block sectors.
	(grub_jfs_read_inode): Likewise.
	(grub_jfs_opendir): Likewise. Remove now useless casts.
	(grub_jfs_getent): Likewise.
	Make ino a grub_uint32_t rather than int.
	(grub_jfs_mount): Ensure that blksize and log2_blksize are consistent.
	(grub_jfs_read_file): Use 64-bit quantities when necessary. Replace
	division and module with bit operations.
	(grub_jfs_find_file): Make ino a grub_uint32_t.
	(grub_jfs_lookup_symlink): Likewise. Use 64-bit quantities
2011-04-01 15:53:06 +02:00
Colin Watson
05d2ed3277 * grub-core/normal/menu_entry.c (run): Quieten uninitialised
warning.  (This was in fact always initialised before use, but GCC
  wasn't smart enough to prove that.)
* grub-core/script/lexer.c (grub_script_lexer_yywrap): Likewise.
2011-04-01 11:43:51 +01:00
Vladimir 'phcoder' Serbinenko
91dc607330 * grub-core/kern/x86_64/efi/callwrap.S (efi_wrap_0): Preserve 16-byte
stack alignment.
	(efi_wrap_1): Likewise.
	(efi_wrap_2): Likewise.
	(efi_wrap_3): Likewise.
	(efi_wrap_4): Likewise.
	(efi_wrap_5): Likewise.
	(efi_wrap_6): Likewise.
	(efi_wrap_10): Likewise.
	Based on information by: Red Hat/Peter Jones.
2011-03-31 16:48:36 +02:00
Colin Watson
a8afc1d12c * grub-core/mmap/efi/mmap.c (grub_mmap_unregister): Remove
set-but-not-used variable.
2011-03-31 12:25:10 +01:00
Vladimir 'phcoder' Serbinenko
241e41f55c * grub-core/disk/raid.c (insert_array): Add few potentially
useful grub_util_info.
	(grub_raid_register): Likewise.
2011-03-30 16:54:11 +02:00
Vladimir 'phcoder' Serbinenko
56445fb2b4 * grub-core/kern/emu/getroot.c (grub_util_get_grub_dev) [__linux__]:
Preserve partition number in mdadm code path.
2011-03-30 16:37:10 +02:00
Vladimir 'phcoder' Serbinenko
c871b1c6d0 * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_get_grub_dev): Add
few potentially useful grub_util_info.
2011-03-30 13:13:25 +02:00
Vladimir 'phcoder' Serbinenko
87d1aa1927 * grub-core/disk/lvm.c (grub_lvm_scan_device): Remove spurious \n. 2011-03-30 13:02:39 +02:00
Vladimir 'phcoder' Serbinenko
5d8031749e * grub-core/term/at_keyboard.c (set_scancodes)
[!GRUB_MACHINE_MIPS_YEELOONG && !GRUB_MACHINE_QEMU]: Use scancode set 1.
2011-03-30 09:26:23 +02:00
Vladimir 'phcoder' Serbinenko
fc18f6a3cb * util/grub.d/10_linux.in: Skip vmlinux-* on x86 platforms. 2011-03-29 19:47:34 +02:00
Colin Watson
61d7156b94 * grub-core/disk/loopback.c (GRUB_MOD_INIT): Stop documenting
removed -p option.
2011-03-29 18:00:23 +01:00
Vladimir 'phcoder' Serbinenko
9e4d19e0d3 * grub-core/kern/emu/hostdisk.c (find_partition_start)
[HAVE_DIOCGDINFO]: Add safety checks.
2011-03-29 15:00:23 +02:00
Colin Watson
b4db4f39f0 * grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): If
real_sb->size is zero (e.g. RAID-0), get the disk size from
real_sb->data_size instead.
Fixes Ubuntu bug #743136.
2011-03-29 10:51:58 +01:00
Vladimir 'phcoder' Serbinenko
35e5f84c18 * grub-core/normal/misc.c (grub_normal_print_device_info): Use correct
printf clauses for printing size and start.
2011-03-29 11:25:04 +02:00
Vladimir 'phcoder' Serbinenko
d2e29d81a9 * grub-core/fs/ext2.c (grub_ext2_read_inode): Fix an overflow.
Reported and tested by: Timothy Nikkel.
2011-03-29 10:56:14 +02:00
Vladimir 'phcoder' Serbinenko
ed5587afea * grub-core/term/gfxterm.c (dirty_region_add): Move core part to ...
(dirty_region_add_real): ... this.
	(dirty_region_add): Don't discard margin refresh when performing
	scheduled repaint.
2011-03-29 08:33:28 +02:00
Vladimir 'phcoder' Serbinenko
a1dc717c58 * grub-core/lib/relocator.c (allocate_regstart)
[!DEBUG_RELOCATOR_NOMEM_DPRINTF]: Avoid grub_dprintf since not all
	terminals are capabple of malloc-free operation.
	(allocate_inreg) [!DEBUG_RELOCATOR_NOMEM_DPRINTF]: Likewise.
	(malloc_in_range) [!DEBUG_RELOCATOR_NOMEM_DPRINTF]: Likewise.
2011-03-29 08:20:19 +02:00
Colin Watson
2414872538 * grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): Remove stale
comment.
2011-03-28 15:17:22 +01:00
Colin Watson
f329eda79e * grub-core/disk/raid.c (grub_raid_register): Adjust debug message
to be specific about what kind of RAID device we're scanning for.
2011-03-28 13:23:54 +01:00
Seth Goldberg
c482ad98b3 * grub-core/kern/emu/getroot.c (find_root_device_from_libzfs): Don't return freed string. 2011-03-26 23:22:59 +01:00
Vladimir 'phcoder' Serbinenko
5ee04984d1 * grub-core/fs/iso9660.c (grub_iso9660_label): Rtrim the label. 2011-03-26 14:14:59 +01:00
Vladimir 'phcoder' Serbinenko
f4727da93f Use libgeom on FreeBSD to detect partitions.
* Makefile.util.def (grub-mkimage): Add LIBGEOM to ldadd.
	(grub-mkrelpath): Likewise.
	(grub-script-check): Likewise.
	(grub-editenv): Likewise.
	(grub-mkpasswd-pbkdf2): Likewise.
	(grub-fstest): Likewise.
	(grub-mkfont): Likewise.
	(grub-mkdevicemap): Likewise.
	(grub-probe): Likewise.
	(grub-setup): Likewise.
	(grub-ofpathname): Likewise.
	(grub-mklayout): Likewise.
	(example_unit_test): Likewise.
	(grub-menulst2cfg): Likewise.
	* grub-core/Makefile.core.def (grub-emu): Likewise.
	(grub-emu-lite): Likewise.
	* configure.ac: Check for -lgeom on FreeBSD and set LIBGEOM.
	* grub-core/kern/emu/hostdisk.c [FreeBSD]: Include libgeom.h. Don't
	define HAVE_DIOCGDINFO.
	(follow_geom_up) [FreeBSD]: New function.
	(find_partition_start) [FreeBSD]: Rewritten using follow_geom_up.
	(convert_system_partition_to_system_disk) [FreeBSD]: Likewise.
	(grub_util_biosdisk_get_grub_dev) [FreeBSD]: Use FreeBSD path
	unconditionally of HAVE_DIOCGDINFO.
2011-03-26 12:59:02 +01:00
Vladimir 'phcoder' Serbinenko
82fe6c751b Fix FreeBSD compilation problem.
* grub-core/kern/emu/hostdisk.c (MAJOR) [FreeBSD]: New definition.
	(FLOPPY_MAJOR) [FreeBSD]: Likewise.
2011-03-26 12:49:34 +01:00
Colin Watson
4c6c9431d2 * grub-core/video/fb/video_fb.c (grub_video_fb_get_info_and_fini):
Switch back to page zero before loading a kernel, since some kernel
drivers expect that.
Thanks to: Felix Kuehling.
2011-03-25 00:03:54 +00:00
Vladimir 'phcoder' Serbinenko
c7064d9425 * grub-core/lib/relocator.c (grub_relocator_alloc_chunk_addr)
[DEBUG_RELOCATOR]: Reuse grub_mm_check.
	(grub_relocator_alloc_chunk_align) [DEBUG_RELOCATOR]: Likewise.
2011-03-24 12:45:51 +01:00
Vladimir 'phcoder' Serbinenko
ef6de21af4 * grub-core/lib/relocator.c (allocate_inreg): Avoid dprintf unless
DEBUG_RELOCATOR is defined since gfxterm can't cope with output when
	malloc is disabled.
2011-03-24 12:39:48 +01:00
Vladimir 'phcoder' Serbinenko
8bc66a2ce6 * grub-core/loader/i386/bsdXX.c (grub_freebsd_load_elfmodule): Account
for modules headers when counting the needed allocation size.
2011-03-24 12:28:22 +01:00
Vladimir 'phcoder' Serbinenko
5657722c3c * grub-core/term/gfxterm.c (calculate_normal_character_width): Return 8
if no ASCII character is found to prevent crash.
2011-03-23 20:29:17 +01:00
Alexander Kurtz
41a85f5508 * grub-core/video/bitmap.c (match_extension): Ignore case. 2011-03-23 17:08:56 +01:00
Vladimir 'phcoder' Serbinenko
59e1e5f17b * grub-core/normal/menu_entry.c (init_line): Fix off-by-one error. 2011-03-23 14:18:56 +01:00
Vladimir 'phcoder' Serbinenko
bd4d051a95 * grub-core/script/parser.y: Declare "time" as valid argument. 2011-03-23 13:23:50 +01:00
Vladimir 'phcoder' Serbinenko
537dc9bec6 * grub-core/normal/main.c (GRUB_MOD_INIT): Export pager variable. 2011-03-23 12:40:15 +01:00
Vladimir 'phcoder' Serbinenko
fa3e01bfb5 * grub-core/lib/i386/pc/biosnum.c: Add missing include. 2011-03-23 12:23:42 +01:00
Vladimir 'phcoder' Serbinenko
b1d2840445 * grub-core/disk/usbms.c (grub_usbms_reset): Transform USB-style error
into GRUB-style one.
2011-03-23 12:21:15 +01:00
Vladimir 'phcoder' Serbinenko
e804e7b099 missing file in last change 2011-03-23 12:18:21 +01:00
Vladimir 'phcoder' Serbinenko
2e3e2e0908 * grub-core/bus/usb/usbtrans.c (grub_usb_control_msg): Return usb-style
error and not grub_errno.
	* grub-core/bus/usb/usbhub.c (grub_usb_add_hub): Likewise.
2011-03-23 12:17:05 +01:00
Vladimir 'phcoder' Serbinenko
ed57e55702 * grub-core/bus/usb/uhci.c (grub_uhci_detect_dev): Return
GRUB_USB_SPEED_NONE in case of failure and not the error code.
2011-03-23 12:13:39 +01:00
Vladimir 'phcoder' Serbinenko
d1611f0163 * grub-core/efiemu/i386/pc/cfgtables.c
(grub_machine_efiemu_init_tables): Make declaration a prototype.
	* grub-core/loader/xnu.c (grub_xnu_lock): Likewise.
	(grub_xnu_unlock): Likewise.
	* grub-core/normal/cmdline.c (grub_cmdline_get/cl_set_pos_all): Likewise.
2011-03-23 12:08:33 +01:00
Vladimir 'phcoder' Serbinenko
7d4e39d65a * grub-core/bus/usb/usb.c (attach_hooks): Make static.
* grub-core/bus/usb/usbhub.c (hubs): Likewise.
	* grub-core/commands/hashsum.c (aliases): Likewise.
	* grub-core/commands/setpci.c (pci_registers): Likewise.
	* grub-core/disk/usbms.c (attach_hook): Likewise.
	* grub-core/fs/zfs/zfs.c (decomp_table): Likewise.
	(zio_checksum_table): Likewise.
	* grub-core/gettext/gettext.c (grub_gettext_msg_list): Likewise.
	* grub-core/gfxmenu/gfxmenu.c (cached_view): Likewise.
	* grub-core/lib/legacy_parse.c (legacy_commands): Likewise.
	* grub-core/lib/relocator.c (leftovers): Likewise.
	(extra_blocks): Likewise.
	* grub-core/loader/i386/bsd.c (relocator): Likewise.
	* grub-core/loader/i386/multiboot_mbi.c (modules): Likewise.
	(modules_last): Likewise.
	* grub-core/loader/i386/xnu.c (table_aliases): Likewise.
	(devices): Likewise.
	* grub-core/loader/multiboot_mbi2.c (modules): Likewise.
	(modules_last): Likewise.
	* grub-core/normal/auth.c (users): Likewise.
	* grub-core/normal/context.c (initial_menu): Likewise.
	(current_menu): Likewise.
	* grub-core/normal/crypto.c (crypto_specs): Likewise.
	* grub-core/term/serial.c (grub_serial_ports): Likewise.
	(grub_serial_terminfo_input_template): Likewise.
	(grub_serial_terminfo_output_template): Likewise.
	(grub_serial_terminfo_input): Likewise.
	(grub_serial_terminfo_output): Likewise.
	(registered): Likewise.
	* grub-core/term/usb_keyboard.c (attach_hook): Likewise.
2011-03-23 12:05:13 +01:00
Vladimir 'phcoder' Serbinenko
40fc46599d * grub-core/video/bochs.c (grub_video_bochs_setup): Use
grub_video_mode_type_t.
	* grub-core/video/cirrus.c (grub_video_cirrus_setup): Likewise.
	* grub-core/video/i386/pc/vbe.c (grub_video_vbe_setup): Likewise.
	* grub-core/video/i386/pc/vga.c (grub_video_vga_setup): Likewise.
2011-03-23 11:54:58 +01:00
Colin Watson
9b43bf396a * grub-core/boot/i386/pc/lnxboot.S (real_code_2): Ensure that the
initial chunk read from the kernel always includes GRUB's multiboot
header, which is now outside the first sector.
2011-03-11 11:51:10 +00:00
Colin Watson
be1a7ce0cf * grub-core/loader/i386/linux.c (find_efi_mmap_size): Page-align
cached mmap_size, so that this works correctly when called multiple
times.
Reported by: Daniel Kahn Gillmor.  Should fix Debian bug #616638.
2011-03-09 17:38:31 +00:00
Szymon Janc
57d75699d6 2011-03-07 Szymon Janc <szymon@janc.net.pl>
* grub-core/fs/zfs/zfs.c (zap_leaf_lookup):
	Set-but-not-used variable removed.
2011-03-07 22:23:06 +01:00