lkml.org 
[lkml]   [2017]   [Oct]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] fs/cachefiles: Fix a possible sleep-in-atomic bug in cachefiles_printk_object
    Date
    The kernel may sleep under a write spinlock, and the function call path is:
    cachefiles_mark_object_active (acquire the spinlock)
    cachefiles_printk_object
    kmalloc(GFP_NOIO) --> may sleep

    To fix it, GFP_NOIO is replaced with GFP_ATOMIC.
    This bug is found by my static analysis tool and my code review.

    Signed-off-by: Jia-Ju Bai <baijiaju1990@163.com>
    ---
    fs/cachefiles/namei.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c
    index 3978b32..39e1504 100644
    --- a/fs/cachefiles/namei.c
    +++ b/fs/cachefiles/namei.c
    @@ -83,7 +83,7 @@ static noinline void cachefiles_printk_object(struct cachefiles_object *object,
    {
    u8 *keybuf;

    - keybuf = kmalloc(CACHEFILES_KEYBUF_SIZE, GFP_NOIO);
    + keybuf = kmalloc(CACHEFILES_KEYBUF_SIZE, GFP_ATOMIC);
    if (object)
    __cachefiles_printk_object(object, "", keybuf);
    if (xobject)
    --
    1.7.9.5

    \
     
     \ /
      Last update: 2017-10-09 05:02    [W:4.550 / U:0.656 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site