Index: sys/boot/i386/libi386/biosdisk.c =================================================================== --- sys/boot/i386/libi386/biosdisk.c (wersja 212170) +++ sys/boot/i386/libi386/biosdisk.c (kopia robocza) @@ -214,11 +214,6 @@ /* sequence 0, 0x80 */ for (base = 0; base <= 0x80; base += 0x80) { for (unit = base; (nbdinfo < MAXBDDEV); unit++) { - /* check the BIOS equipment list for number of fixed disks */ - if((base == 0x80) && - (nfd >= *(unsigned char *)PTOV(BIOS_NUMDRIVES))) - break; - bdinfo[nbdinfo].bd_unit = unit; bdinfo[nbdinfo].bd_flags = (unit < 0x80) ? BD_FLOPPY : 0; Index: sys/boot/i386/zfsboot/zfsboot.c =================================================================== --- sys/boot/i386/zfsboot/zfsboot.c (wersja 212302) +++ sys/boot/i386/zfsboot/zfsboot.c (kopia robocza) @@ -103,6 +103,8 @@ #define TYPE_MAXHARD TYPE_DA #define TYPE_FD 2 +#define MAXBDDEV 31 + #define OPT_SET(opt) (1 << (opt)) #define OPT_CHECK(opt) ((opts) & OPT_SET(opt)) @@ -667,7 +669,7 @@ * will find any other available pools and it may fill in missing * vdevs for the boot pool. */ - for (i = 0; i < *(unsigned char *)PTOV(BIOS_NUMDRIVES); i++) { + for (i = 0; i < MAXBDDEV; i++) { if ((i | DRV_HARD) == *(uint8_t *)PTOV(ARGS)) continue; Index: sys/boot/zfs/zfs.c =================================================================== --- sys/boot/zfs/zfs.c (wersja 212333) +++ sys/boot/zfs/zfs.c (kopia robocza) @@ -45,6 +45,8 @@ #include "zfsimpl.c" +#define MAXBDDEV 31 + static int zfs_open(const char *path, struct open_file *f); static int zfs_write(struct open_file *f, void *buf, size_t size, size_t *resid); static int zfs_close(struct open_file *f); @@ -402,7 +404,7 @@ * diskN, diskNpM or diskNsM. */ zfs_init(); - for (unit = 0; unit < 32 /* XXX */; unit++) { + for (unit = 0; unit < MAXBDDEV; unit++) { sprintf(devname, "disk%d:", unit); fd = open(devname, O_RDONLY); if (fd == -1)