hptmv ( Highpoint RocketRaid 1820a ) corrupts fs on shutdown -p

Steven Hartland killing at multiplay.co.uk
Tue Jun 21 12:49:42 GMT 2005


>Submitter-Id:	current-users
>Originator:	Steven Hartland <killing at multiplay.co.uk>
>Organization:	Multiplay
>Confidential:	no
>Synopsis:	hptmv ( Highpoint RocketRaid 1820a ) corrupts fs on shutdown -p
>Severity:	serious
>Priority:	high
>Category:	kern
>Class:		sw-bug
>Release:	FreeBSD 5.4-RELEASE-p2 i386
>Environment:
System: FreeBSD r2d2.multiplay.co.uk 5.4-RELEASE-p2 FreeBSD 5.4-RELEASE-p2 #5: Tue Jun 21 13:29:02 UTC 2005 root at r2d2.multiplay.co.uk:/.usr/i386/src/sys/i386/compile/MPUK_SMP_200HZ i386


>Description:
	When shutting down with power off e.g. shutdown -p now a machine with a
	Highpoint RocketRaid 1820a ( more than likely the 1820 as well ) corrupts
	the FS bad enough to force recorvery in single user mode.
	The problem occurs because the disk flush is async and no time is given
	for this to happen.

>How-To-Repeat:
	Shutdown a box with a hptmv based controller with power off.

>Fix:

	Apply the following patch which adds a 5 second delay after calling flush.
	Note: the fix is only relavent for i386 as there is no source for amd64,
	which is also affected. I've informed Highpoint of the issue but as yet
	no updated driver has been released.

--- entry.c.orig	Tue Jun 21 13:23:05 2005
+++ entry.c	Tue Jun 21 13:27:38 2005
@@ -2157,6 +2157,10 @@
 		return (EINVAL);
 
-	EVENTHANDLER_DEREGISTER(shutdown_final, pAdapter->eh);
 	FlushAdapter(pAdapter);
+
+	/* give the flush some time to happen */
+	DELAY( 1000 * 1000 * 5 );
+
+	EVENTHANDLER_DEREGISTER(shutdown_final, pAdapter->eh);
 
 	return 0;




More information about the freebsd-stable mailing list