svn commit: r220789 - head/sys/dev/ahci
Alexander Motin
mav at FreeBSD.org
Mon Apr 18 16:00:46 UTC 2011
Author: mav
Date: Mon Apr 18 16:00:46 2011
New Revision: 220789
URL: http://svn.freebsd.org/changeset/base/220789
Log:
Handle ready timeout during polled operation same as done in mvs(4) before.
Modified:
head/sys/dev/ahci/ahci.c
head/sys/dev/ahci/ahci.h
Modified: head/sys/dev/ahci/ahci.c
==============================================================================
--- head/sys/dev/ahci/ahci.c Mon Apr 18 15:55:02 2011 (r220788)
+++ head/sys/dev/ahci/ahci.c Mon Apr 18 16:00:46 2011 (r220789)
@@ -2856,4 +2856,9 @@ ahcipoll(struct cam_sim *sim)
struct ahci_channel *ch = (struct ahci_channel *)cam_sim_softc(sim);
ahci_ch_intr(ch->dev);
+ if (ch->resetting != 0 &&
+ (--ch->resetpolldiv <= 0 || !callout_pending(&ch->reset_timer))) {
+ ch->resetpolldiv = 1000;
+ ahci_reset_to(ch->dev);
+ }
}
Modified: head/sys/dev/ahci/ahci.h
==============================================================================
--- head/sys/dev/ahci/ahci.h Mon Apr 18 15:55:02 2011 (r220788)
+++ head/sys/dev/ahci/ahci.h Mon Apr 18 16:00:46 2011 (r220789)
@@ -414,6 +414,7 @@ struct ahci_channel {
int lastslot; /* Last used slot */
int taggedtarget; /* Last tagged target */
int resetting; /* Hard-reset in progress. */
+ int resetpolldiv; /* Hard-reset poll divider. */
int listening; /* SUD bit is cleared. */
union ccb *frozen; /* Frozen command */
struct callout pm_timer; /* Power management events */
More information about the svn-src-all
mailing list