Hi David, In 2.4.19, arch/ia64/kernel/perfmon.c, I noticed that pfm_smpl_buffer_alloc doesn't seem to be freeing the vma structure it allocates if there's an error. Here's a trivial patch to fix it: --- arch/ia64/kernel/perfmon.c 5 Jul 2002 06:17:29 -0000 1.1.7.1 +++ arch/ia64/kernel/perfmon.c 29 Aug 2002 23:29:06 -0000 @@ -647,15 +647,14 @@ psb = kmalloc(sizeof(*psb), GFP_KERNEL); if (psb == NULL) { DBprintk(("Can't allocate sampling buffer descriptor\n")); - pfm_rvfree(smpl_buf, size); - return -ENOMEM; + goto kmalloc_fail; } /* allocate vma */ vma = kmem_cache_alloc(vm_area_cachep, SLAB_KERNEL); if (!vma) { DBprintk(("Cannot allocate vma\n")); - goto error; + goto kmem_cache_alloc_fail; } /* * partially initialize the vma for the sampling buffer @@ -750,9 +749,12 @@ return 0; -error: - pfm_rvfree(smpl_buf, size); + error: + kmem_cache_free(vm_area_cachep, vma); + kmem_cache_alloc_fail: kfree(psb); + kmalloc_fail: + pfm_rvfree(smpl_buf, size); return -ENOMEM; } The patch compiles but it hasn't been tested. Cheers, KingsleyReceived on Thu Aug 29 18:33:58 2002
This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:10 EST