[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: loop-AES 1.4d crypto swap => __alloc_pages: 0-order allocation failed (gfp=0x20/0) from c882256e
Hank Leininger wrote:
> On 2001-09-25, "peter k." <spam-goes-to-dev-null@gmx.net> wrote:
>
> > yesterday i configured my box to use swap over loop-AES....
> > if i cat /dev/zero > blah now on another loop-AES encrypted device (not
> > on the swap device of course) "__alloc_pages: 0-order allocation failed
> > (gfp=0x20/0) from c882256e" starts and keeps appearing when the kernel
> > wants to start swapping until it panics within the process of the loop
> > device i was cat'ing to....i guess this error is caused by loop-AES
>
> Funny, I was just about to post about something similar...
>
> I've found that I cannot use the latest loop-AES on 2.4.9 (at least) with a
> partition-backed loop device larger than 2 GB. The stock loop driver in
> 2.4.9 works fine with large (dozens of GBs) loop devices, but the loop-AES
> driver causes kernel panics. Using loop-AES, losetup'ing (with or without
> encryption) a 10-20 GB partition and then trying to mke2fs /dev/loop0 will
> result in a panic. A 2 GB partition is rock solid. A 2.2 GB partition
> will successfully mkfs and mount, but then trying to dd if=/dev/zero
> of=/mnt/testfile will cause a panic once the file passes the 2 GB mark.
Can both of you try this patch, and try to repeat the problem.
cd loop-AES-v1.4d
patch -p0 < filename
make
Regards,
Jari Ruusu <jari.ruusu@pp.inet.fi>
--- loop.c-2.4.diff.old Sun Sep 2 21:33:01 2001
+++ loop.c-2.4.diff Tue Sep 25 21:51:28 2001
@@ -261,12 +261,12 @@
+ memset(bh, 0, sizeof(struct buffer_head));
+ bh->b_page = p;
+ } else {
-+ bh = kmem_cache_alloc(bh_cachep, SLAB_ATOMIC);
++ bh = kmem_cache_alloc(bh_cachep, SLAB_NOIO);
+ if(!bh) {
+ return((struct buffer_head *)0);
+ }
+ memset(bh, 0, sizeof(struct buffer_head));
-+ bh->b_page = alloc_page(GFP_ATOMIC);
++ bh->b_page = alloc_page(GFP_NOIO);
+ if(!bh->b_page) {
+ kmem_cache_free(bh_cachep, bh);
+ return((struct buffer_head *)0);
Linux-crypto: cryptography in and on the Linux system
Archive: http://mail.nl.linux.org/linux-crypto/