MFC r199749:

Use only lower byte of sectors_intr IDENTIFY word as sector count.
This fixes SET_MULTI error during boot on devices supporting less then
16 sectors per interrupt.
This commit is contained in:
Alexander Motin 2009-11-26 14:50:01 +00:00
parent 70f426fe84
commit 052c5232f5
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/stable/8/; revision=199831

View File

@ -397,7 +397,7 @@ ad_init(device_t dev)
/* use multiple sectors/interrupt if device supports it */
if (ad_version(atadev->param.version_major)) {
int secsperint = max(1, min(atadev->param.sectors_intr, 16));
int secsperint = max(1, min(atadev->param.sectors_intr & 0xff, 16));
if (!ata_controlcmd(dev, ATA_SET_MULTI, 0, 0, secsperint))
atadev->max_iosize = secsperint * DEV_BSIZE;