Re: general protection fault in debugfs_create_files

From: Greg Kroah-Hartman
Date: Thu Jan 31 2019 - 02:01:05 EST


On Thu, Jan 31, 2019 at 02:34:56PM +0900, Tetsuo Handa wrote:
> Hello, again.
>
> syzbot is hitting a similar crash due to debugfs_create_dir() returning -EEXIST.
> Should debugfs_create_dir() return NULL as well? Or should the caller use IS_ERR_OR_NULL() ?
>
> --- a/block/blk-mq-debugfs.c
> +++ b/block/blk-mq-debugfs.c
> @@ -861,6 +861,8 @@ int blk_mq_debugfs_register(struct request_queue *q)
> blk_debugfs_root);
> if (!q->debugfs_dir)
> return -ENOMEM;
> + if (IS_ERR(q->debugfs_dir))
> + printk("debugfs_create_dir=%ld\n", PTR_ERR(q->debugfs_dir));
>
> if (!debugfs_create_files(q->debugfs_dir, q,
> blk_mq_debugfs_queue_attrs))
>

I already posted this patch last Wednesday:
https://lore.kernel.org/lkml/20190123134854.GA25906@xxxxxxxxx/
to solve this problem.

I guess I should queue it up in my tree as well, to handle this issue.
I'll go do that now.

thanks,

greg k-h