In Linux 5.1, the ZRAM block driver has changed its default compressor from "lzo" to "lzo-rle" to enhance LZO compression support. However, crash does not support the improved LZO algorithm, resulting in failure when reading memory.

      change default compressor : ce82f19fd5809f0cf87ea9f753c5cc65ca0673d6

The issue was discovered when using the extension 'gcore' to generate a process coredump, which was found to be incomplete and unable to be opened properly with gdb.
This patch is for Crash-utility tool, it enables the Crash-utility to support decompression of the "lzo-rle" compression algorithm used in zram. The patch has been tested with vmcore files from kernel version 5.4, and successfully allows reading of memory compressed with the zram compression algorithm.

Testing: 
========

before apply this patch : 
      crash> gcore -v 0 1 
      gcore: WARNING: only the lzo compressor is supported 
      gcore: WARNING: only the lzo compressor is supported 
      gcore: WARNING: only the lzo compressor is supported
after: 
      crash> gcore -v 0 
      1 Saved core.1.init 

Changelog: 
========== 
v2: keep the "if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)" related code of the copied kernel code, but change the "if defined" macro into a runtime check .
v3: set a default value of HAVE_EFFICIENT_UNALIGNED_ACCESS depending on architecture, for no ikconfig kernels.
v4: avoid checking CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS every call;move "include lzorle_decompress.h" to diskdump.c from def.h

Patch: 
==========

See attachment.



Thanks and regards,
Yulong