Andrei Borzenkov
7b386b7031
efidisk: move device path helpers in core for efinet
2015-05-07 20:37:16 +03:00
Andrei Borzenkov
527eeeeee6
core: add LVM RAID1 support
...
Closes 44534.
2015-03-19 21:30:27 +03:00
Vladimir Serbinenko
87ec3b7fa9
Don't continue to query block-size if disk doesn't have it.
...
Stops poluting screen with a lot of "block-size: exception -21".
2015-03-03 20:50:37 +01:00
Vladimir Serbinenko
67a6a9512a
raid6: Optimize by removing division.
2015-02-26 22:07:22 +01:00
Vladimir Serbinenko
f76c98b79e
dmraid_nvidia: Fix division by 0 and missing byte-swap.
2015-02-26 22:06:19 +01:00
Vladimir Serbinenko
94f701a826
crypto: restrict cipher block size to power of 2.
...
All current ciphers have blocks which are power of 2 and it's
unlikely to change. Other block length would be tricky to handle anyway.
This restriction allows avoiding extra divisions.
2015-02-26 22:04:40 +01:00
Vladimir Serbinenko
967e5aa591
ofdisk: Exclude floppies from scanning.
...
It causes similar hang as CD on at least the qemu.
2015-02-21 16:16:48 +01:00
Andrei Borzenkov
8f5ebb1245
diskfilter_make_raid: more memory leaks in failure path
2015-02-15 10:14:07 +03:00
Vladimir Serbinenko
2ae9457e6e
disk/lvm: Use zalloc to ensure that segments are initialised to sane value.
...
Reported by: EmanueL Czirai.
2015-02-14 20:31:00 +01:00
Andrei Borzenkov
fc535b32b9
diskfilter: fix double free of lv names for mdraid
...
Avoid micro-optimization in grub_diskfilter_make_raid and make sure
name and fullname are independent strings. This avoids need to special
case it everywhere else.
Also fix memory leak in failure case in grub_diskfilter_make_raid.
Closes: 41582
2015-02-14 19:08:58 +03:00
Andrei Borzenkov
e27fdbd686
diskfilter: fix crash in validate_lv for mdraid arrays
...
Commit 750f4bacd3
put LV validation before
actual vg assignment. Make grub_diskfilter_make_raid to assign ->vg as
happens in other cases for consistency. Also clean up redundant code and add
explicit NULL lv->vg check in validate_lv.
Also fix segment validation in validate_lv; it became obvious when crash
was fixed.
Closes: 44199
2015-02-14 17:56:01 +03:00
Vladimir Serbinenko
9ee5ae1fae
Document intentional fallthroughs.
...
Found by: Coverity scan.
2015-01-27 17:17:58 +01:00
Vladimir Serbinenko
d1130afa5f
biosdisk: Add missing cast.
...
Found by: Coverity scan.
2015-01-24 21:50:30 +01:00
Vladimir Serbinenko
7656b72b17
disk/geli: Add missing free.
...
Found by: Coverity scan.
2015-01-24 21:47:51 +01:00
Vladimir Serbinenko
6f43e350ed
disk/geli: Add missing seek success check.
...
Found by: Coverity scan.
2015-01-24 21:46:23 +01:00
Vladimir Serbinenko
f2baeb194b
disk/diskfilter: Add missing lv presence check.
...
Found by: Coverity scan.
2015-01-24 21:44:27 +01:00
Vladimir Serbinenko
4c7337bfe9
disk/cryptodisk: Add missing error check.
...
Found by: Coverity scan.
2015-01-24 21:38:22 +01:00
Vladimir Serbinenko
2a8200bba8
disk/ahci: Fix device_map_range argument.
...
Argument is not used on x86, hence it's gone unnoticed.
Found by: Coverity scan.
2015-01-24 21:37:28 +01:00
Vladimir Serbinenko
7d97335942
disk/AFsplitter: check argument validity before doing any allocs.
...
This avoids possible memory leaks.
Found by: Coverity scan.
2015-01-24 21:33:30 +01:00
Vladimir Serbinenko
7d027b4d3e
efidisk: Return the determined root disk even if partition is unknown.
2015-01-24 19:53:13 +01:00
Andrey Borzenkov
2f73d2733c
accept also hdX as alias to native Xen disk name
...
To be compatible with legacy pv-grub, sort disks by increasing order of handle
value. This allows reusing legacy pv-grub menu.lst which is using hdX names.
Suggested-By: Michael Chang <mchang@suse.com>
Closes: 44026
2015-01-23 19:52:45 +03:00
Vladimir Serbinenko
750f4bacd3
* grub-core/disk/diskfilter.c: Validate volumes to avoid division by zero.
2015-01-21 17:42:13 +01:00
Vladimir Serbinenko
4200ad44fe
* grub-core/disk/i386/pc/biosdisk.c: Check disk size sanity.
2015-01-21 17:42:12 +01:00
Vladimir Serbinenko
f1959b1695
* grub-core/disk/ieee1275/nand.c (grub_nand_open): Check block size
...
validity.
2015-01-21 17:42:11 +01:00
Vladimir Serbinenko
935863518f
grub_dmraid_nv_detect: Do not divide by zero.
2015-01-21 17:42:11 +01:00
Vladimir Serbinenko
f27ccb584c
grub_ata_setaddress: Check that geometry is sane when using CHS addressing.
2015-01-21 17:42:10 +01:00
Vladimir Serbinenko
1dfe3f973e
* grub-core/disk/AFSplitter.c (AF_merge): Check that mdlen is not 0.
2015-01-21 17:42:10 +01:00
Kris Moore
ba3031f996
Support GELI v6 and v7
2015-01-19 21:56:41 +03:00
Andrei Borzenkov
bbbcb791ed
grub-core/disk/geli.c: fix memory leaks in error paths
...
CID: 73813, 73710
2014-11-28 22:23:30 +03:00
Andrei Borzenkov
ea44693fc8
grub-core/disk/luks.c: fix use after free and memory leaks
...
configure_ciphers:
- several memory leaks where allocated ciphers were not freed. CID: 73813,
73710
- use after free. It is probably quite innocent as grub is single threaded,
but could potentially be a problem with memory allocator debugger turned on.
CID: 73730
luks_recover_key:
- memory leak. CID: 73854
2014-11-28 21:12:00 +03:00
Andrey Borzenkov
954fe77163
cleanup: grub_cpu_to_XXX_compile_time for constants
...
This tries to catch all cases where grub_cpu_to_XXX was used for constant
expressions (including sizeof).
2014-09-22 20:47:10 +04:00
Vladimir Serbinenko
0af3ae2d8b
* grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Add
...
safety to avoid triggerring VirtualBox bug.
2014-08-10 11:27:13 +02:00
Colin Watson
c4badfe836
Improve LVM "logical_volumes" string matching
...
* grub-core/disk/lvm.c (grub_lvm_detect): Search for
"logical_volumes" block a little more accurately.
2014-04-10 14:42:41 +01:00
Colin Watson
24024dac7f
Fix partmap, cryptodisk, and abstraction handling in grub-mkconfig.
...
Commit 588744d0dc
caused grub-mkconfig
no longer to be forgiving of trailing spaces on grub-probe output
lines, which among other things means that util/grub.d/10_linux.in
no longer detects LVM. To fix this, make grub-probe's output
delimiting more consistent. As a bonus, this improves the coverage
of the -0 option.
Fixes Debian bug #735935 .
* grub-core/disk/cryptodisk.c
(grub_util_cryptodisk_get_abstraction): Add a user-data argument.
* grub-core/disk/diskfilter.c (grub_diskfilter_get_partmap):
Likewise.
* include/grub/cryptodisk.h (grub_util_cryptodisk_get_abstraction):
Update prototype.
* include/grub/diskfilter.h (grub_diskfilter_get_partmap): Likewise.
* util/grub-install.c (push_partmap_module, push_cryptodisk_module,
probe_mods): Adjust for extra user-data arguments.
* util/grub-probe.c (do_print, probe_partmap, probe_cryptodisk_uuid,
probe_abstraction): Use configured delimiter. Update callers.
2014-03-31 14:48:46 +01:00
Vladimir Serbinenko
d0949e3747
* grub-core/disk/ahci.c: Ignore NPORTS field and rely on PI
...
exclusively.
2014-02-20 10:11:43 +01:00
Vladimir Serbinenko
9abbaae7cd
* grub-core/disk/ahci.c: Increase timeout. Some SSDs take up to
...
7 seconds to recover if last poweroff was bad.
2014-01-29 23:50:49 +01:00
Vladimir Serbinenko
d6b94c5eb2
* grub-core/disk/ahci.c: Properly handle transactions with no
...
transferred data.
2014-01-29 23:49:51 +01:00
Vladimir Serbinenko
07ea8daa86
* grub-core/disk/ahci.c: Add safety cleanups.
2014-01-29 23:46:17 +01:00
Vladimir Serbinenko
3142b2feac
* grub-core/disk/ahci.c: Allocate and clean space for all possible 32
...
slots to avoid pointing to uninited area.
2014-01-29 23:45:18 +01:00
Vladimir Serbinenko
4686e163f2
* grub-core/disk/ahci.c: Do not enable I/O decoding and keep
...
enabling busmaster for the end.
2014-01-29 23:43:25 +01:00
Vladimir Serbinenko
dc3286ade4
* grub-core/disk/efi/efidisk.c (name_devices): Skip Apple ghosts.
2013-12-24 20:32:14 +01:00
Colin Watson
16f7455b04
* configure.ac: Fix spelling.
...
* grub-core/commands/parttool.c: Fix grammar.
* grub-core/disk/ldm.c: Use consistent capitalisation for "LDM
Embedding Partition".
2013-12-23 13:32:35 +00:00
Vladimir Serbinenko
80b29fc9b4
* grub-core/disk/raid6_recover.c (grub_raid_block_mulx): Use grub_size_t
...
for size.
2013-12-21 14:16:49 +01:00
Vladimir Serbinenko
6e327fcd4c
* grub-core/disk/lvm.c: Use grub_size_t for sizes and grub_ssize_t
...
for pointer difference.
2013-12-21 14:15:04 +01:00
Aleš Nesrsta
b9f03772b5
* grub-core/disk/usbms.c: Retry on unknown errors.
...
Reuse the same tag on retries.
2013-12-18 19:00:45 +01:00
Vladimir Serbinenko
18e76955be
Use %I64 and not %ll when using OS printf if compiling for windows.
2013-12-17 16:04:47 +01:00
Vladimir Serbinenko
cc6fb517de
Remove practice of assigning random const pointers to device id.
...
This is not required as cache code already checks driver id as well.
2013-12-16 14:49:11 +01:00
Vladimir Serbinenko
8ae6704517
* grub-core/disk/loopback.c: Use sequential IDs rather than pointer.
...
In case of quick removal of loopback and adding another one it may
get same ID, confusing the cache system.
2013-12-15 14:31:21 +01:00
Vladimir Serbinenko
6f5f3337d8
* grub-core/disk/cryptodisk.c: Rename "n" to "last_cryptodisk_id".
2013-12-15 14:21:14 +01:00
Vladimir Serbinenko
7e47e27bd8
Add gcc_struct to all packed structures when compiling with mingw.
...
Just "packed" doesn't always pack the way we expect.
2013-12-15 14:14:30 +01:00
Vladimir Serbinenko
6dc3337774
Fix definition of grub_efi_hard_drive_device_path. Take care that
...
existing code would work even if by some reason bogus definition is
used by EFI implementations.
2013-12-14 22:04:02 +01:00
Vladimir Serbinenko
219401b8b9
* include/grub/efi/api.h (grub_efi_device_path): Define length as
...
unaligned u16 rather than u8[2].
2013-12-11 15:54:01 +01:00
Vladimir Serbinenko
234d93464a
* grub-core/disk/ieee1275/ofdisk.c: Remove variable length arrays.
...
* grub-core/net/drivers/ieee1275/ofnet.c: Likewise.
2013-12-04 08:10:01 +01:00
Vladimir Serbinenko
1e4b358720
Add PCI command activation to all PCI drivers as required for coreboot
...
and maybe some other firmwares.
2013-11-26 14:21:11 +01:00
Vladimir Serbinenko
ddb3efc906
* grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_open): Ensure
...
at compile time that enough of scratch size is available.
2013-11-22 12:00:10 +01:00
Ian Campbell
7d400406a7
* grub-core/disk/uboot/ubootdisk.c: Include SCSI disks.
2013-11-17 15:38:09 +01:00
Vladimir Serbinenko
e6a6182d95
Decrease stack usage in mdraid 0.9x.
...
We have only 92K of stack and using over 4K per frame is wasteful
* grub-core/disk/mdraid_linux.c (grub_mdraid_detect): Allocate on heap
rather than stack.
2013-11-16 16:16:48 +01:00
Vladimir Serbinenko
c7995256e4
* grub-core/disk/xen/xendisk.c (grub_xendisk_fini): Set state to
...
"1" prior to handoff.
Reported by: M A Young.
2013-11-14 22:42:54 +01:00
Vladimir Serbinenko
7d5116251d
* grub-core/disk/diskfilter.c (grub_diskfilter_make_raid): Make
...
level / 3 division explicitly unsigned. Saves few bytes.
2013-11-13 09:40:16 +01:00
Vladimir Serbinenko
431e57a797
* grub-core/disk/cryptodisk.c (luks_script_get): Adapt to new procfs
...
API.
2013-11-12 16:01:19 +01:00
Vladimir Serbinenko
c35fcdc0b7
* grub-core/disk/AFSplitter.c: Remove variable length arrays.
...
* grub-core/disk/cryptodisk.c: Likewise.
* grub-core/disk/geli.c: Likewise.
* grub-core/disk/luks.c: Likewise.
2013-11-12 02:48:02 +01:00
Vladimir Serbinenko
9612ebc00e
Add new ports: i386-xen and x86_64-xen. This allows running GRUB in
...
XEN PV environment and load kernels.
2013-11-09 21:29:11 +01:00
Vladimir Serbinenko
7f084087b2
* grub-core/net/net.c (grub_net_route_unregister): Remove unused
...
function.
* grub-core/loader/i386/xnu.c (hextoval): Likewise.
* grub-core/disk/geli.c (ascii2hex): Likewise.
2013-11-07 19:31:22 +01:00
Vladimir Serbinenko
5d17fd0fec
* grub-core/disk/geli.c (geli_rekey): Fix error return type.
2013-11-07 00:57:21 +01:00
Vladimir Serbinenko
ac35a0f792
* grub-core/disk/usbms.c (grub_usbms_cbi_cmd): Fix error type.
...
(grub_usbms_cbi_reset): Likewise.
(grub_usbms_bo_reset): Likewise.
(grub_usbms_reset): Likewise.
(grub_usbms_attach): Likewise.
(grub_usbms_transfer_cbi): Likewise.
2013-11-07 00:55:17 +01:00
Vladimir Serbinenko
a1dcc2cb98
* grub-core/disk/ahci.c (grub_ahci_pciinit): Detect ATAPI devices.
...
* grub-core/disk/ata.c (grub_ata_identify): Use atapi_identify if
device is known to be ATAPI.
2013-11-03 13:52:36 +01:00
Vladimir Serbinenko
203f53fbbe
* grub-core/disk/efi/efidisk.c (grub_efidisk_readwrite): Remove unused
...
variable.
2013-11-02 18:50:39 +01:00
Vladimir Serbinenko
cb72aa1809
Rewrite blocklist functions in order to get progress when
...
reading large extents and decrease amount of blocklist hook calls.
2013-11-01 23:28:03 +01:00
Vladimir Serbinenko
5177391ebe
* include/grub/emu/hostdisk.h: Add proper declaration for grub_host_init
...
and grub_hostfs_init.
2013-10-28 13:33:12 +01:00
Vladimir Serbinenko
442b86de32
Move grub_disk_write out of kernel into disk.mod.
2013-10-27 15:44:55 +01:00
Vladimir Serbinenko
428295739e
* grub-core/disk/raid6_recover.c: Use unsigned arithmetics when
...
appropriate.
2013-10-25 22:51:03 +02:00
Vladimir 'phcoder' Serbinenko
0f7c00c1c6
* grub-core/disk/efi/efidisk.c (grub_efidisk_get_device_name): Handle
...
CD-ROM in case when it's declared as having subpartitions.
2013-10-19 02:23:08 +02:00
Vladimir 'phcoder' Serbinenko
3cd910a212
* grub-core/disk/ldm.c: Rename variables and arguments to prevent
...
shadowing.
* grub-core/kern/disk.c: Likewise.
* grub-core/kern/misc.c: Likewise.
* include/grub/parser.h: Likewise.
* include/grub/script_sh.h: Likewise.
* include/grub/zfs/zfs.h: Likewise.
2013-10-18 16:54:57 +02:00
Vladimir 'phcoder' Serbinenko
7b3aca00fa
* grub-core/disk/luks.c (configure_ciphers): Fix spurious warning.
2013-10-18 16:51:08 +02:00
Vladimir 'phcoder' Serbinenko
757e3eb7c3
* grub-core/disk/dmraid_nvidia.c: Fix potentially uninited "layout".
2013-10-18 16:36:09 +02:00
Vladimir 'phcoder' Serbinenko
e012736478
* grub-core/disk/geli.c (grub_util_get_geli_uuid): Close handle after
...
read.
2013-10-15 17:55:20 +02:00
Vladimir 'phcoder' Serbinenko
20d535419f
* grub-core/disk/cryptodisk.c: Use grub_util_fd_strerror instead
...
of strerror.
2013-10-15 17:52:43 +02:00
Andrey Borzenkov
44016e527a
* grub-core/disk/efi/efidisk.c (grub_efidisk_get_device_name):
...
Handle CD-ROMs.
2013-10-14 17:06:39 +02:00
Vladimir 'phcoder' Serbinenko
b73249d260
Make grub_util_fd_seek match behaviour of other grub_util_fd_* and
...
fseeko.
2013-10-14 12:47:09 +02:00
Vladimir 'phcoder' Serbinenko
6de292cb9b
Define GRUB_UTIL_FD_O_* and always use them with grub_util_fd_open.
2013-10-14 02:11:59 +02:00
Vladimir 'phcoder' Serbinenko
bf25f87931
Make cryptodisk and diskfilter probe data retrievable programmatically
...
and not just printable.
2013-10-04 01:43:47 +02:00
Vladimir 'phcoder' Serbinenko
7d93298ff6
* grub-core/disk/uboot/ubootdisk.c (uboot_disk_open): Use grub_error
...
properly in case of missing block size.
2013-10-03 23:20:00 +02:00
Vladimir 'phcoder' Serbinenko
a47a78be88
* include/grub/cryptodisk.h (grub_cryptodisk): Use grub_util_fd_t
...
for cheat_fd.
* grub-core/disk/cryptodisk.c (grub_cryptodisk_open): Use grub_util_*
functions.
(grub_cryptodisk_cheat_insert): Likewise.
(grub_cryptodisk_close): Likewise.
2013-09-23 11:58:19 +02:00
Vladimir 'phcoder' Serbinenko
7e518ca84f
Use Winapi on both cygwin and mingw32 to share more code between both.
2013-09-23 11:21:09 +02:00
Vladimir 'phcoder' Serbinenko
63653cfdae
* grub-core/disk/diskfilter.c: Handle non-md UUIDs.
...
* grub-core/disk/lvm.c: Add LVM UUIDs.
* util/getroot.c: Use LVM UUIDs whenever possible.
2013-09-20 20:37:03 +02:00
Colin Watson
607319c9ab
* grub-core/disk/efi/efidisk.c (grub_efidisk_get_device_name_iter):
...
Remove no-longer-true __attribute__ ((unused)) on disk parameter.
2013-09-18 15:43:58 +01:00
Vladimir 'phcoder' Serbinenko
54ea2f4401
* grub-core/disk/ahci.c: Add needed explicit cast.
...
* grub-core/lib/backtrace.c: Likewise.
* grub-core/net/ip.c: Likewise.
* grub-core/net/tcp.c: Likewise.
* grub-core/net/udp.c: Likewise.
2013-08-21 21:02:14 +02:00
Andrey Borzenkov
c6ed362a3f
* grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Remove
...
unused attribute from pull argument.
2013-08-14 20:52:19 +04:00
Grégoire Sutre
418f86c659
Prevent shadowing of stdlib's devname(3) on BSD.
2013-08-12 11:49:33 +02:00
Vladimir 'phcoder' Serbinenko
ae27e4d323
Merge mainline into arm
2013-07-16 18:43:43 +02:00
Andrey Borzenkov
a4c89b1731
* grub-core/disk/diskfilter.c: Forgot to remove comment
...
from previous commit.
2013-06-16 16:35:20 +04:00
Andrey Borzenkov
aa62a5b7f1
* grub-core/disk/diskfilter.c (scan_devices): Iteratively
...
rescan diskfilter devices until nothing new is found.
2013-06-16 16:12:50 +04:00
Vladimir 'phcoder' Serbinenko
96dbe64813
* grub-core/disk/diskfilter.c (insert_array): Fix order to discover
...
ambigouos RAID before discovering RAIDs on top of it.
Reported by: bodom.
2013-06-07 15:41:10 +02:00
Vladimir 'phcoder' Serbinenko
8e71d87482
merge mainline into arm
2013-05-11 10:24:24 +02:00
Leif Lindholm
b385e0723b
Leif's API fixes
2013-05-03 15:07:39 +02:00
Vladimir 'phcoder' Serbinenko
96f33fed86
Make PCI init in i386-qemu port more robust.
2013-04-29 15:09:39 +02:00
Vladimir 'phcoder' Serbinenko
e2f27a8c53
Enforce disabling of firmware disk drivers when native drivers kick in.
2013-04-29 12:16:46 +02:00
Vladimir 'phcoder' Serbinenko
9fb0fd4f35
* grub-core/disk/ahci.c: Fix compilation for amd64 (format warnings).
2013-04-28 15:17:43 +02:00
Vladimir 'phcoder' Serbinenko
c796a107b6
* grub-core/disk/ahci.c (grub_ahci_pciinit): Fix handling of empty
...
ports.
2013-04-27 21:49:14 +02:00
Vladimir 'phcoder' Serbinenko
dc2a6c8b0e
Improve AHCI detection and command issuing.
2013-04-27 17:18:02 +02:00