lkml.org 
[lkml]   [2008]   [Jun]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH] nommu: fix kobjsize() for SLOB and SLUB
    Hi Paul,

    On Sun, 1 Jun 2008, Paul Mundt wrote:
    > This still needs to be virt_to_head_page() I think.
    >
    > I don't have my nommu boards at home, so I'll test at the office tomorow
    > morning and let you know.

    I was about to send a patch that fixes some of the kobjsize() abuses to
    use ksize() but then I realized that what we probably should do is
    something like this instead.

    I mean, assuming the BUG_ON bits are bogus, then we should always pass the
    pointer to the allocator. I audited most of the callers and they all seem
    to be really just using kmalloc() for allocation anyway.

    What do you think?

    Pekka

    diff --git a/mm/nommu.c b/mm/nommu.c
    index dca93fc..fc1ff52 100644
    --- a/mm/nommu.c
    +++ b/mm/nommu.c
    @@ -103,22 +103,20 @@ EXPORT_SYMBOL(vmtruncate);
    */
    unsigned int kobjsize(const void *objp)
    {
    - struct page *page;
    -
    /*
    * If the object we have should not have ksize performed on it,
    * return size of 0
    */
    - if (!objp || (unsigned long)objp >= memory_end || !((page = virt_to_page(objp))))
    + if (!objp)
    return 0;

    - if (PageSlab(page))
    - return ksize(objp);
    + if ((unsigned long)objp >= memory_end)
    + return 0;

    - BUG_ON(page->index < 0);
    - BUG_ON(page->index >= MAX_ORDER);
    + if (!virt_to_page(objp))
    + return 0;

    - return (PAGE_SIZE << page->index);
    + return ksize(objp);
    }

    /*

    \
     
     \ /
      Last update: 2008-06-01 11:15    [W:0.032 / U:1.160 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site