⬢ DragonFlyBSD Kernel Audit
DF-4078 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/raid/mps/mps.c
+++ b/sys/dev/raid/mps/mps.c
@@ mps_reinit @@
 	/* restart will reload the event masks clobbered by the reset, and
 	 * then enable the port.
 	 */
-	mps_reregister_events(sc);
+	if (mps_reregister_events(sc) != 0)
+		mps_printf(sc, "%s event re-registration failed; "
+		    "port enable may never fire\n", __func__);
@@ mps_reregister_events @@
 	error = mps_map_command(sc, cm);
+	if (error == EINPROGRESS)
+		error = 0;
 
 	mps_dprint(sc, MPS_TRACE, "%s finished with error %d\n", __func__, error);
@@ mps_read_config_page @@
 	} else {
-		error = mps_wait_command(sc, cm, 0);
+		error = mps_wait_command(sc, cm, 60);