[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: oskit-mach: vm_map_copyout crash
From: |
Roland McGrath |
Subject: |
Re: oskit-mach: vm_map_copyout crash |
Date: |
Tue, 6 Nov 2001 17:22:46 -0500 (EST) |
No, that doesn't quite make sense. The mflags argument to
oskit_skbufio_mem_alloc uses OSENV_* flag bits, not GFP_* flag bits.
kmalloc needs GFP_* flag bits. However, note the assert early in
oskit_skbufio_mem_alloc, so you know mflags is always just OSENV_NONBLOCKING.
So just calling it with GFP_ATOMIC seems more or less correct.
The assert ensures that no other flags (e.g. OSAENV_ISADA_MEM) are there,
so no other flags should be needed in the allocation.
Perhaps the problem is "#define GFP_ATOMIC 0" in <oskit/io/skbufio.h>? I
don't know why that's there. But if skbuff_mem.c is using 0 instead of the
actual GFP_ATOMIC bit value, that would explain your problem, right?
Try changing that kmalloc call to use __GFP_HIGH instead (that's what
GFP_ATOMIC is defined to in oskit/linux/src/include/linux/mm.h).
You should definitely post to oskit-users about what that #define is doing
there. (But note that one of the key guys is out of town right now.)
Re: oskit-mach: vm_map_copyout crash, Roland McGrath, 2001/11/05