From: Vladimir 'phcoder' Serbinenko Date: Thu, 23 Jun 2011 02:08:37 +0000 (+0200) Subject: merge mainline into 4096 X-Git-Tag: 2.00~1217^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a5edbcb3a1573abb93013a4481e5a2f6c75f4439;p=thirdparty%2Fgrub.git merge mainline into 4096 --- a5edbcb3a1573abb93013a4481e5a2f6c75f4439 diff --cc grub-core/disk/i386/pc/biosdisk.c index 6e48fff43,3baf20717..f28aa8b8e --- a/grub-core/disk/i386/pc/biosdisk.c +++ b/grub-core/disk/i386/pc/biosdisk.c @@@ -510,12 -503,10 +512,12 @@@ grub_biosdisk_rw (int cmd, grub_disk_t /* Return the number of sectors which can be read safely at a time. */ static grub_size_t -get_safe_sectors (grub_disk_addr_t sector, grub_uint32_t sectors) +get_safe_sectors (grub_disk_t disk, grub_disk_addr_t sector) { grub_size_t size; - grub_uint32_t offset; + grub_uint64_t offset; + struct grub_biosdisk_data *data = disk->data; + grub_uint32_t sectors = data->sectors; /* OFFSET = SECTOR % SECTORS */ grub_divmod64 (sector, sectors, &offset); diff --cc grub-core/kern/emu/hostdisk.c index f082ada89,bb528d9bc..e53a39c39 --- a/grub-core/kern/emu/hostdisk.c +++ b/grub-core/kern/emu/hostdisk.c @@@ -884,11 -914,9 +928,10 @@@ grub_util_biosdisk_read (grub_disk_t di sectors that are read together with the MBR in one read. It should only remap the MBR, so we split the read in two parts. -jochen */ - if (nread (fd, buf, GRUB_DISK_SECTOR_SIZE) != GRUB_DISK_SECTOR_SIZE) + if (nread (fd, buf, (1 << disk->log_sector_size)) + != (1 << disk->log_sector_size)) { grub_error (GRUB_ERR_READ_ERROR, "cannot read `%s'", map[disk->id].device); - close (fd); return grub_errno; }