From: Tejun Heo <tj@kernel.org>
To: Vaibhav Jain <vaibhav@linux.vnet.ibm.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
Frederic Barrat <fbarrat@linux.vnet.ibm.com>
Subject: Re: [PATCH] kernfs: Check KERNFS_HAS_RELEASE before calling kernfs_release_file()
Date: Thu, 16 Mar 2017 17:13:29 -0400 [thread overview]
Message-ID: <20170316211329.GB1480@htj.duckdns.org> (raw)
In-Reply-To: <20170314024700.6167-1-vaibhav@linux.vnet.ibm.com>
On Tue, Mar 14, 2017 at 08:17:00AM +0530, Vaibhav Jain wrote:
> Recently started seeing a kernel oops when a module tries removing a
> memory mapped sysfs bin_attribute. On closer investigation the root
> cause seems to be kernfs_release_file() trying to call
> kernfs_op.release() callback that's NULL for such sysfs
> bin_attributes. The oops occurs when kernfs_release_file() is called from
> kernfs_drain_open_files() to cleanup any open handles with active
> memory mappings.
>
> The patch fixes this by checking for flag KERNFS_HAS_RELEASE before
> calling kernfs_release_file() in function kernfs_drain_open_files().
>
> On ppc64-le arch with cxl module the oops back-trace is of the
> form below:
> [ 861.381126] Unable to handle kernel paging request for instruction fetch
> [ 861.381360] Faulting instruction address: 0x00000000
> [ 861.381428] Oops: Kernel access of bad area, sig: 11 [#1]
> ....
> [ 861.382481] NIP: 0000000000000000 LR: c000000000362c60 CTR:
> 0000000000000000
> ....
> Call Trace:
> [c000000f1680b750] [c000000000362c34] kernfs_drain_open_files+0x104/0x1d0 (unreliable)
> [c000000f1680b790] [c00000000035fa00] __kernfs_remove+0x260/0x2c0
> [c000000f1680b820] [c000000000360da0] kernfs_remove_by_name_ns+0x60/0xe0
> [c000000f1680b8b0] [c0000000003638f4] sysfs_remove_bin_file+0x24/0x40
> [c000000f1680b8d0] [c00000000062a164] device_remove_bin_file+0x24/0x40
> [c000000f1680b8f0] [d000000009b7b22c] cxl_sysfs_afu_remove+0x144/0x170 [cxl]
> [c000000f1680b940] [d000000009b7c7e4] cxl_remove+0x6c/0x1a0 [cxl]
> [c000000f1680b990] [c00000000052f694] pci_device_remove+0x64/0x110
> [c000000f1680b9d0] [c0000000006321d4] device_release_driver_internal+0x1f4/0x2b0
> [c000000f1680ba20] [c000000000525cb0] pci_stop_bus_device+0xa0/0xd0
> [c000000f1680ba60] [c000000000525e80] pci_stop_and_remove_bus_device+0x20/0x40
> [c000000f1680ba90] [c00000000004a6c4] pci_hp_remove_devices+0x84/0xc0
> [c000000f1680bad0] [c00000000004a688] pci_hp_remove_devices+0x48/0xc0
> [c000000f1680bb10] [c0000000009dfda4] eeh_reset_device+0xb0/0x290
> [c000000f1680bbb0] [c000000000032b4c] eeh_handle_normal_event+0x47c/0x530
> [c000000f1680bc60] [c000000000032e64] eeh_handle_event+0x174/0x350
> [c000000f1680bd10] [c000000000033228] eeh_event_handler+0x1e8/0x1f0
> [c000000f1680bdc0] [c0000000000d384c] kthread+0x14c/0x190
> [c000000f1680be30] [c00000000000b5a0] ret_from_kernel_thread+0x5c/0xbc
>
> Fixes: f83f3c515654("kernfs: fix locking around kernfs_ops->release()
> callback")
> Signed-off-by: Vaibhav Jain <vaibhav@linux.vnet.ibm.com>
Acked-by: Tejun Heo <tj@kernel.org>
Thanks.
--
tejun
prev parent reply other threads:[~2017-03-16 21:13 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-14 2:47 [PATCH] kernfs: Check KERNFS_HAS_RELEASE before calling kernfs_release_file() Vaibhav Jain
2017-03-14 3:08 ` Greg Kroah-Hartman
2017-03-16 21:14 ` Tejun Heo
2017-03-17 1:25 ` Greg Kroah-Hartman
2017-03-16 21:13 ` Tejun Heo [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170316211329.GB1480@htj.duckdns.org \
--to=tj@kernel.org \
--cc=fbarrat@linux.vnet.ibm.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=vaibhav@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).