Messages in this thread Patch in this message | | | Date | Mon, 1 Jul 2013 13:09:03 -0700 | From | Andrew Morton <> | Subject | Re: [linux-next-20130422] Bug in SLAB? |
| |
On Tue, 7 May 2013 14:28:49 +0000 Christoph Lameter <cl@linux.com> wrote:
> On Tue, 7 May 2013, Tetsuo Handa wrote: > > > > These are exclusively from the module load. So the kernel seems to be > > > clean of large kmalloc's ? > > > > > There are modules (e.g. TOMOYO) which do not check for KMALLOC_MAX_SIZE limit > > and expect kmalloc() larger than KMALLOC_MAX_SIZE bytes to return NULL. > > Dont do that. Please fix these things.
Slab should return NULL for a request greater than KMALLOC_MAX_SIZE. For heaven's sake don't break that!
What's going on with this bug, btw? This:
--- a/mm/slab.c~slab-fix-init_lock_keys +++ a/mm/slab.c @@ -565,7 +565,7 @@ static void init_node_lock_keys(int q) if (slab_state < UP) return; - for (i = 1; i < PAGE_SHIFT + MAX_ORDER; i++) { + for (i = 1; i <= KMALLOC_SHIFT_HIGH; i++) { struct kmem_cache_node *n; struct kmem_cache *cache = kmalloc_caches[i]; still seems to be unapplied.
I've read through the thread trying to work out what the end-user impact of that fix is, but it's all clear as mud. It's possible that the end-user effect is `kernel locks up after printing "Booting the kernel"'. Or maybe not.
And if the above patch does indeed fix something significant, we might need a -stable backport.
Can we get some clarity here please?
| |