• Nicolai Stange's avatar
    kernel/kcov: unproxify debugfs file's fops · df4565f9
    Nicolai Stange authored
    Since commit 49d200de ("debugfs: prevent access to removed files'
    private data"), a debugfs file's file_operations methods get proxied
    through lifetime aware wrappers.
    
    However, only a certain subset of the file_operations members is supported
    by debugfs and ->mmap isn't among them -- it appears to be NULL from the
    VFS layer's perspective.
    
    This behaviour breaks the /sys/kernel/debug/kcov file introduced
    concurrently with commit 5c9a8750 ("kernel: add kcov code coverage").
    
    Since that file never gets removed, there is no file removal race and thus,
    a lifetime checking proxy isn't needed.
    
    Avoid the proxying for /sys/kernel/debug/kcov by creating it via
    debugfs_create_file_unsafe() rather than debugfs_create_file().
    
    Fixes: 49d200de ("debugfs: prevent access to removed files' private data")
    Fixes: 5c9a8750 ("kernel: add kcov code coverage")
    Reported-by: default avatarSasha Levin <sasha.levin@oracle.com>
    Signed-off-by: default avatarNicolai Stange <nicstange@gmail.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    df4565f9
kcov.c 6.64 KB