From 2ee665339b06285a5fd9e36410d1167efc9b0606 Mon Sep 17 00:00:00 2001 From: wdenk Date: Mon, 11 Oct 2004 22:43:02 +0000 Subject: * Patch by Pantelis Antoniou, 14 Sep 2004: Fix early serial hang when CONFIG_SERIAL_MULTI is defined. * Patch by Pantelis Antoniou, 14 Sep 2004: Kick watchdog when bz-decompressing --- lib_generic/bzlib_decompress.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'lib_generic/bzlib_decompress.c') diff --git a/lib_generic/bzlib_decompress.c b/lib_generic/bzlib_decompress.c index a4a16879e..a5750520c 100644 --- a/lib_generic/bzlib_decompress.c +++ b/lib_generic/bzlib_decompress.c @@ -1,4 +1,6 @@ #include +#include +#include #ifdef CONFIG_BZIP2 /*-------------------------------------------------------------*/ @@ -416,6 +418,9 @@ Int32 BZ2_decompress ( DState* s ) while (True) { +#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG) + WATCHDOG_RESET(); +#endif if (nextSym == EOB) break; if (nextSym == BZ_RUNA || nextSym == BZ_RUNB) { @@ -498,6 +503,9 @@ Int32 BZ2_decompress ( DState* s ) if (s->mtfbase[0] == 0) { kk = MTFA_SIZE-1; for (ii = 256 / MTFL_SIZE-1; ii >= 0; ii--) { +#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG) + WATCHDOG_RESET(); +#endif for (jj = MTFL_SIZE-1; jj >= 0; jj--) { s->mtfa[kk] = s->mtfa[s->mtfbase[ii] + jj]; kk--; @@ -560,6 +568,9 @@ Int32 BZ2_decompress ( DState* s ) } while (i != s->origPtr); +#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG) + WATCHDOG_RESET(); +#endif s->tPos = s->origPtr; s->nblock_used = 0; if (s->blockRandomised) { @@ -572,6 +583,9 @@ Int32 BZ2_decompress ( DState* s ) } else { +#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG) + WATCHDOG_RESET(); +#endif /*-- compute the T^(-1) vector --*/ for (i = 0; i < nblock; i++) { uc = (UChar)(s->tt[i] & 0xff); -- cgit v1.2.3