DragonFlyBSD Kernel Audit
DF-1925 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/raid/tws/tws_hdm.c b/sys/dev/raid/tws/tws_hdm.c
--- a/sys/dev/raid/tws/tws_hdm.c
+++ b/sys/dev/raid/tws/tws_hdm.c
@@ -470,9 +470,13 @@
 
     tws_assert_soft_reset(sc);
 
+    {
+    int _endt = TWS_LOCAL_TIME + TWS_RESET_TIMEOUT;
     do {
         reg = tws_read_reg(sc, TWS_I2O0_SCRPD3, 4);
+        if (TWS_LOCAL_TIME > _endt) break;
     } while ( reg & TWS_BIT13 );
+    }
 
     endt = TWS_LOCAL_TIME + TWS_RESET_TIMEOUT;
     do {