Merge branch 'fix/hda' into for-linus
[cascardo/linux.git] / arch / powerpc / boot / gunzip_util.c
index 8a97adf..ef2aed0 100644 (file)
@@ -78,6 +78,7 @@ void gunzip_start(struct gunzip_state *state, void *src, int srclen)
                        fatal("inflateInit2 returned %d\n\r", r);
        }
 
+       state->s.total_in = hdrlen;
        state->s.next_in = src + hdrlen;
        state->s.avail_in = srclen - hdrlen;
 }
@@ -142,7 +143,8 @@ void gunzip_exactly(struct gunzip_state *state, void *dst, int dstlen)
 
        len  = gunzip_partial(state, dst, dstlen);
        if (len < dstlen)
-               fatal("gunzip_block: ran out of data\n\r");
+               fatal("\n\rgunzip_exactly: ran out of data!"
+                               " Wanted %d, got %d.\n\r", dstlen, len);
 }
 
 /**
@@ -192,13 +194,10 @@ int gunzip_finish(struct gunzip_state *state, void *dst, int dstlen)
 {
        int len;
 
+       len = gunzip_partial(state, dst, dstlen);
+
        if (state->s.workspace) {
-               len = gunzip_partial(state, dst, dstlen);
                zlib_inflateEnd(&state->s);
-       } else {
-               /* uncompressed image */
-               len = min(state->s.avail_in, (unsigned)dstlen);
-               memcpy(dst, state->s.next_in, len);
        }
 
        return len;