From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Ira Weiny <ira.weiny@intel.com>
Cc: Dan Williams <dan.j.williams@intel.com>, <linux-cxl@vger.kernel.org>
Subject: Re: [PATCH v2 4/4] cxl/mem: Fix shutdown order
Date: Mon, 2 Oct 2023 11:11:31 +0100 [thread overview]
Message-ID: <20231002111131.00001e59@Huawei.com> (raw)
In-Reply-To: <65176326ddc98_168c46294e8@iweiny-mobl.notmuch>
On Fri, 29 Sep 2023 16:52:06 -0700
Ira Weiny <ira.weiny@intel.com> wrote:
> Dan Williams wrote:
> > Ira reports that removing cxl_mock_mem causes a crash with the following
> > trace:
> >
> > BUG: kernel NULL pointer dereference, address: 0000000000000044
> > [..]
> > RIP: 0010:cxl_region_decode_reset+0x7f/0x180 [cxl_core]
> > [..]
> > Call Trace:
> > <TASK>
> > cxl_region_detach+0xe8/0x210 [cxl_core]
> > cxl_decoder_kill_region+0x27/0x40 [cxl_core]
> > cxld_unregister+0x29/0x40 [cxl_core]
> > devres_release_all+0xb8/0x110
> > device_unbind_cleanup+0xe/0x70
> > device_release_driver_internal+0x1d2/0x210
> > bus_remove_device+0xd7/0x150
> > device_del+0x155/0x3e0
> > device_unregister+0x13/0x60
> > devm_release_action+0x4d/0x90
> > ? __pfx_unregister_port+0x10/0x10 [cxl_core]
> > delete_endpoint+0x121/0x130 [cxl_core]
> > devres_release_all+0xb8/0x110
> > device_unbind_cleanup+0xe/0x70
> > device_release_driver_internal+0x1d2/0x210
> > bus_remove_device+0xd7/0x150
> > device_del+0x155/0x3e0
> > ? lock_release+0x142/0x290
> > cdev_device_del+0x15/0x50
> > cxl_memdev_unregister+0x54/0x70 [cxl_core]
> >
> > This crash is due to the clearing out the cxl_memdev's driver context
> > (@cxlds) before the subsystem is done with it. This is ultimately due to
> > the region(s), that this memdev is a member, being torn down and expecting
> > to be able to de-reference @cxlds, like here:
> >
> > static int cxl_region_decode_reset(struct cxl_region *cxlr, int count)
> > ...
> > if (cxlds->rcd)
> > goto endpoint_reset;
> > ...
> >
> > Fix it by keeping the driver context valid until memdev-device
> > unregistration, and subsequently the entire stack of related
> > dependencies, unwinds.
> >
> > Fixes: 9cc238c7a526 ("cxl/pci: Introduce cdevm_file_operations")
> > Reported-by: Ira Weiny <ira.weiny@intel.com>
>
> Reviewed-by: Ira Weiny <ira.weiny@intel.com>
> Tested-by: Ira Weiny <ira.weiny@intel.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Thanks for cleaning up the whole area whilst fixing this.
Jonathan
next prev parent reply other threads:[~2023-10-02 10:11 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-29 23:09 [PATCH v2 0/4] cxl/mem: Fix shutdown order Dan Williams
2023-09-29 23:09 ` [PATCH v2 1/4] cxl/pci: Remove unnecessary device reference management in sanitize work Dan Williams
2023-09-29 23:41 ` Ira Weiny
2023-10-02 9:55 ` Jonathan Cameron
2023-10-02 15:27 ` Davidlohr Bueso
2023-10-02 16:48 ` Dave Jiang
2023-09-29 23:09 ` [PATCH v2 2/4] cxl/pci: Cleanup 'sanitize' to always poll Dan Williams
2023-09-29 23:49 ` Ira Weiny
2023-09-29 23:51 ` Ira Weiny
2023-10-02 10:02 ` Jonathan Cameron
2023-10-04 0:55 ` Dan Williams
2023-10-02 15:49 ` Davidlohr Bueso
2023-10-04 1:01 ` Dan Williams
2023-10-04 1:13 ` Davidlohr Bueso
2023-10-02 16:57 ` Dave Jiang
2023-09-29 23:09 ` [PATCH v2 3/4] cxl/pci: Fix sanitize notifier setup Dan Williams
2023-09-30 2:42 ` Ira Weiny
2023-10-02 10:10 ` Jonathan Cameron
2023-10-04 0:59 ` Dan Williams
2023-10-04 10:12 ` Jonathan Cameron
2023-10-04 18:47 ` Dan Williams
2023-10-02 16:59 ` Dave Jiang
2023-10-04 0:52 ` Davidlohr Bueso
2023-10-04 1:09 ` Dan Williams
2023-10-04 16:21 ` Davidlohr Bueso
2023-10-04 18:48 ` Dan Williams
2023-10-04 18:50 ` Dan Williams
2023-10-04 18:54 ` Dan Williams
2023-10-04 19:23 ` Davidlohr Bueso
2023-09-29 23:09 ` [PATCH v2 4/4] cxl/mem: Fix shutdown order Dan Williams
2023-09-29 23:52 ` Ira Weiny
2023-10-02 10:11 ` Jonathan Cameron [this message]
2023-10-02 16:59 ` Dave Jiang
2023-10-03 17:40 ` Davidlohr Bueso
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=20231002111131.00001e59@Huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=dan.j.williams@intel.com \
--cc=ira.weiny@intel.com \
--cc=linux-cxl@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.