diff --git a/sys/dev/disk/nata/chipsets/ata-intel.c b/sys/dev/disk/nata/chipsets/ata-intel.c --- a/sys/dev/disk/nata/chipsets/ata-intel.c +++ b/sys/dev/disk/nata/chipsets/ata-intel.c @@ -468,6 +468,8 @@ heads = atadev->param.heads; sectors = atadev->param.sectors; } + if (heads == 0 || sectors == 0) + return; ATA_IDX_OUTB(ch, ATA_SECTOR, (request->u.ata.lba % sectors)+1); ATA_IDX_OUTB(ch, ATA_CYL_LSB, (request->u.ata.lba / (sectors * heads)));