Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Nov 2009 14:06:15 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r199749 - head/sys/dev/ata
Message-ID:  <200911241406.nAOE6FdR018858@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Tue Nov 24 14:06:15 2009
New Revision: 199749
URL: http://svn.freebsd.org/changeset/base/199749

Log:
  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.

Modified:
  head/sys/dev/ata/ata-disk.c

Modified: head/sys/dev/ata/ata-disk.c
==============================================================================
--- head/sys/dev/ata/ata-disk.c	Tue Nov 24 13:44:53 2009	(r199748)
+++ head/sys/dev/ata/ata-disk.c	Tue Nov 24 14:06:15 2009	(r199749)
@@ -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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200911241406.nAOE6FdR018858>