]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
powerpc/pseries: Re-organise the oops compression code
authorAruna Balakrishnaiah <aruna@linux.vnet.ibm.com>
Thu, 27 Jun 2013 08:33:04 +0000 (14:03 +0530)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 1 Jul 2013 08:10:49 +0000 (18:10 +1000)
nvram_compress() and zip_oops() is used by the nvram_pstore_write
API to compress oops messages hence re-organise the functions
accordingly to avoid forward declarations.

Signed-off-by: Aruna Balakrishnaiah <aruna@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/platforms/pseries/nvram.c

index 3f0e7d67d7478119ba40582fb1371af5e633ab39..588bab5da8cb55e605eb438ea1086dfcbf331342 100644 (file)
@@ -486,6 +486,58 @@ static int clobbering_unread_rtas_event(void)
                                                NVRAM_RTAS_READ_TIMEOUT);
 }
 
+/* Derived from logfs_compress() */
+static int nvram_compress(const void *in, void *out, size_t inlen,
+                                                       size_t outlen)
+{
+       int err, ret;
+
+       ret = -EIO;
+       err = zlib_deflateInit2(&stream, COMPR_LEVEL, Z_DEFLATED, WINDOW_BITS,
+                                               MEM_LEVEL, Z_DEFAULT_STRATEGY);
+       if (err != Z_OK)
+               goto error;
+
+       stream.next_in = in;
+       stream.avail_in = inlen;
+       stream.total_in = 0;
+       stream.next_out = out;
+       stream.avail_out = outlen;
+       stream.total_out = 0;
+
+       err = zlib_deflate(&stream, Z_FINISH);
+       if (err != Z_STREAM_END)
+               goto error;
+
+       err = zlib_deflateEnd(&stream);
+       if (err != Z_OK)
+               goto error;
+
+       if (stream.total_out >= stream.total_in)
+               goto error;
+
+       ret = stream.total_out;
+error:
+       return ret;
+}
+
+/* Compress the text from big_oops_buf into oops_buf. */
+static int zip_oops(size_t text_len)
+{
+       struct oops_log_info *oops_hdr = (struct oops_log_info *)oops_buf;
+       int zipped_len = nvram_compress(big_oops_buf, oops_data, text_len,
+                                                               oops_data_sz);
+       if (zipped_len < 0) {
+               pr_err("nvram: compression failed; returned %d\n", zipped_len);
+               pr_err("nvram: logging uncompressed oops/panic report\n");
+               return -1;
+       }
+       oops_hdr->version = OOPS_HDR_VERSION;
+       oops_hdr->report_length = (u16) zipped_len;
+       oops_hdr->timestamp = get_seconds();
+       return 0;
+}
+
 #ifdef CONFIG_PSTORE
 static int nvram_pstore_open(struct pstore_info *psi)
 {
@@ -759,58 +811,6 @@ int __init pSeries_nvram_init(void)
 }
 
 
-/* Derived from logfs_compress() */
-static int nvram_compress(const void *in, void *out, size_t inlen,
-                                                       size_t outlen)
-{
-       int err, ret;
-
-       ret = -EIO;
-       err = zlib_deflateInit2(&stream, COMPR_LEVEL, Z_DEFLATED, WINDOW_BITS,
-                                               MEM_LEVEL, Z_DEFAULT_STRATEGY);
-       if (err != Z_OK)
-               goto error;
-
-       stream.next_in = in;
-       stream.avail_in = inlen;
-       stream.total_in = 0;
-       stream.next_out = out;
-       stream.avail_out = outlen;
-       stream.total_out = 0;
-
-       err = zlib_deflate(&stream, Z_FINISH);
-       if (err != Z_STREAM_END)
-               goto error;
-
-       err = zlib_deflateEnd(&stream);
-       if (err != Z_OK)
-               goto error;
-
-       if (stream.total_out >= stream.total_in)
-               goto error;
-
-       ret = stream.total_out;
-error:
-       return ret;
-}
-
-/* Compress the text from big_oops_buf into oops_buf. */
-static int zip_oops(size_t text_len)
-{
-       struct oops_log_info *oops_hdr = (struct oops_log_info *)oops_buf;
-       int zipped_len = nvram_compress(big_oops_buf, oops_data, text_len,
-                                                               oops_data_sz);
-       if (zipped_len < 0) {
-               pr_err("nvram: compression failed; returned %d\n", zipped_len);
-               pr_err("nvram: logging uncompressed oops/panic report\n");
-               return -1;
-       }
-       oops_hdr->version = OOPS_HDR_VERSION;
-       oops_hdr->report_length = (u16) zipped_len;
-       oops_hdr->timestamp = get_seconds();
-       return 0;
-}
-
 /*
  * This is our kmsg_dump callback, called after an oops or panic report
  * has been written to the printk buffer.  We want to capture as much