Yinghai Lu
d97b07c54f
initramfs: support initramfs that is bigger than 2GiB
...
Now with 64bit bzImage and kexec tools, we support ramdisk that size is
bigger than 2g, as we could put it above 4G.
Found compressed initramfs image could not be decompressed properly. It
turns out that image length is int during decompress detection, and it
will become < 0 when length is more than 2G. Furthermore, during
decompressing len as int is used for inbuf count, that has problem too.
Change len to long, that should be ok as on 32 bit platform long is
32bits.
Tested with following compressed initramfs image as root with kexec.
gzip, bzip2, xz, lzma, lzop, lz4.
run time for populate_rootfs():
size name Nehalem-EX Westmere-EX Ivybridge-EX
9034400256 root_img : 26s 24s 30s
3561095057 root_img.lz4 : 28s 27s 27s
3459554629 root_img.lzo : 29s 29s 28s
3219399480 root_img.gz : 64s 62s 49s
2251594592 root_img.xz : 262s 260s 183s
2226366598 root_img.lzma: 386s 376s 277s
2901482513 root_img.bz2 : 635s 599s
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Rashika Kheria <rashika.kheria@gmail.com>
Cc: Josh Triplett <josh@joshtriplett.org>
Cc: Kyungsik Lee <kyungsik.lee@lge.com>
Cc: P J P <ppandit@redhat.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: "Daniel M. Weeks" <dan@danweeks.net>
Cc: Alexandre Courbot <acourbot@nvidia.com>
Cc: Jan Beulich <JBeulich@suse.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-08-08 15:57:26 -07:00
..
asymmetric_keys
X.509: Need to export x509_request_asymmetric_key()
2014-08-03 12:54:48 +01:00
async_tx
Merge commit 'dmaengine-3.13-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/dmaengine
2013-11-16 12:02:36 +05:30
842.c
ablk_helper.c
crypto: ablk_helper - Replace memcpy with struct assignment
2013-10-07 14:16:57 +08:00
ablkcipher.c
crypto: skcipher - Use eseqiv even on UP machines
2013-10-30 09:51:45 +08:00
aead.c
aes_generic.c
crypto: make tables used from assembler __visible
2013-08-14 20:42:03 +10:00
af_alg.c
crypto: af_alg - properly label AF_ALG socket
2014-07-31 21:54:00 +08:00
ahash.c
crypto: hash - Add real ahash walk interface
2014-05-21 20:56:12 +08:00
algapi.c
crypto: fips - only panic on bad/missing crypto mod signatures
2014-07-03 21:38:32 +08:00
algboss.c
crypto: algboss - Hold ref count on larval
2013-06-25 19:15:17 +08:00
algif_hash.c
net: update consumers of MSG_MORE to recognize MSG_SENDPAGE_NOTLAST
2013-11-29 16:32:54 -05:00
algif_skcipher.c
net: update consumers of MSG_MORE to recognize MSG_SENDPAGE_NOTLAST
2013-11-29 16:32:54 -05:00
ansi_cprng.c
crypto: ansi_cprng - Fix off by one error in non-block size request
2013-09-24 06:02:23 +10:00
anubis.c
api.c
crypto: api - Fix race condition in larval lookup
2013-09-08 14:33:50 +10:00
arc4.c
authenc.c
crypto: authenc - Find proper IV address in ablkcipher callback
2013-11-28 22:16:23 +08:00
authencesn.c
crypto: authencesn - Simplify key parsing
2013-10-16 20:56:25 +08:00
blkcipher.c
crypto: allow blkcipher walks over AEAD data
2014-03-10 20:17:11 +08:00
blowfish_common.c
blowfish_generic.c
camellia_generic.c
crypto: camellia_generic - replace commas by semicolons and adjust code alignment
2013-08-21 21:08:33 +10:00
cast5_generic.c
cast6_generic.c
cast_common.c
crypto: make tables used from assembler __visible
2013-08-14 20:42:03 +10:00
cbc.c
ccm.c
crypto: ccm - Fix handling of zero plaintext when computing mac
2013-11-28 22:25:17 +08:00
chainiv.c
arch: Mass conversion of smp_mb__*()
2014-04-18 14:20:48 +02:00
cipher.c
cmac.c
crypto: add CMAC support to CryptoAPI
2013-04-25 21:01:47 +08:00
compress.c
crc32.c
crc32c_generic.c
CRC32C: Add soft module dependency to load other accelerated crc32c modules
2014-02-25 19:45:04 +08:00
crct10dif_common.c
crypto: crct10dif - Add fallback for broken initrds
2013-09-12 15:31:34 +10:00
crct10dif_generic.c
crypto: crct10dif - Add fallback for broken initrds
2013-09-12 15:31:34 +10:00
cryptd.c
crypto: Resolve shadow warnings
2014-08-01 22:35:55 +08:00
crypto_null.c
crypto: export NULL algorithms defines
2014-03-21 21:54:26 +08:00
crypto_user.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6 into next
2014-06-07 19:44:40 -07:00
crypto_wq.c
crypto: crypto_wq - Fix late crypto work queue initialization
2014-03-21 21:54:28 +08:00
ctr.c
cts.c
deflate.c
des_generic.c
crypto: des_3des - add x86-64 assembly implementation
2014-06-20 21:27:58 +08:00
drbg.c
crypto: drbg - fix failure of generating multiple of 2**16 bytes
2014-08-01 22:36:14 +08:00
ecb.c
eseqiv.c
crypto: Resolve shadow warnings
2014-08-01 22:35:55 +08:00
fcrypt.c
crypto: fcrypt - Fix bitoperation for compilation with clang
2013-09-02 20:32:58 +10:00
fips.c
gcm.c
crypto: Resolve shadow warnings
2014-08-01 22:35:55 +08:00
gf128mul.c
ghash-generic.c
hash_info.c
crypto: provide single place for hash algo information
2013-10-25 17:14:03 -04:00
hmac.c
internal.h
crypto: algboss - Hold ref count on larval
2013-06-25 19:15:17 +08:00
Kconfig
Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
2014-08-05 10:05:29 -07:00
khazad.c
krng.c
lrw.c
lz4.c
crypto: add lz4 Cryptographic API
2013-07-09 10:33:30 -07:00
lz4hc.c
crypto: add lz4 Cryptographic API
2013-07-09 10:33:30 -07:00
lzo.c
crypto: lzo - use kvfree() helper
2014-06-25 21:51:53 +08:00
Makefile
crypto: drbg - Use Kconfig to ensure at least one RNG option is set
2014-07-04 22:15:08 +08:00
md4.c
md5.c
memneq.c
crypto: memneq - fix for archs without efficient unaligned access
2013-12-09 20:09:12 +08:00
michael_mic.c
pcbc.c
pcompress.c
pcrypt.c
crypto: pcrypt - Fix wrong usage of rcu_dereference()
2013-12-05 21:28:42 +08:00
proc.c
ripemd.h
rmd128.c
rmd160.c
rmd256.c
rmd320.c
rng.c
salsa20_generic.c
scatterwalk.c
crypto: scatterwalk - Add support for calculating number of SG elements
2013-08-21 21:27:58 +10:00
seed.c
seqiv.c
crypto: Resolve shadow warnings
2014-08-01 22:35:55 +08:00
serpent_generic.c
sha1_generic.c
sha256_generic.c
crypto: sha256 - Expose SHA256 generic routine to be callable externally.
2013-04-03 09:06:31 +08:00
sha512_generic.c
crypto: sha512_generic - set cra_driver_name
2013-05-28 15:43:04 +08:00
shash.c
crypto: LLVMLinux: aligned-attribute.patch
2014-06-07 11:44:39 -07:00
tcrypt.c
crypto: Resolve shadow warnings
2014-08-01 22:35:55 +08:00
tcrypt.h
crypto: tcrypt - Added speed tests for AEAD crypto alogrithms in tcrypt test suite
2013-12-20 20:06:25 +08:00
tea.c
testmgr.c
crypto: testmgr - add missing spaces to drbg error strings
2014-08-01 22:36:13 +08:00
testmgr.h
crypto: testmgr - use chunks smaller than algo block size in chunk tests
2014-08-01 22:36:11 +08:00
tgr192.c
twofish_common.c
twofish_generic.c
vmac.c
wp512.c
xcbc.c
xor.c
xts.c
zlib.c
initramfs: support initramfs that is bigger than 2GiB
2014-08-08 15:57:26 -07:00