[rsbac] bug in rsbac_kmalloc() ?
Amon Ott
ao at rsbac.org
Mon May 24 12:48:55 CEST 2004
On Montag, 10. Mai 2004 14:18, Michal Purzynski wrote:
> looking at rsbac_kmalloc() implementation, i see that memory in case of
2.6 kernel is allocated like this:
>
> kmem_cache_alloc(csizep->cs_cachep, 0)
>
> so flags are `0`. i think it is bad - with preempt turned on flags should
be GFP_ATOMIC. now with `0` flags rsbac_kmalloc() is allowed to sleep,
what can lead to `bad: scheduling while atomic` errors in case of
allocating memory between spinlocks.
>
> i am going to test it with GFP_ATOMIC, and will tell about results.
Any results yet? I will also test with GFP_ATOMIC, but I think I remember
that ATOMIC also checks for locks held. Nasty changes in 2.6.
The 0 was meant to avoid the check and the sleeping, but I might have
misunderstood.
Amon.
--
http://www.rsbac.org - GnuPG: 2048g/5DEAAA30 2002-10-22
More information about the rsbac
mailing list