From: "Rafael J. Wysocki" <rafael@kernel.org> To: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Sinan Kaya <okaya@codeaurora.org>, ACPI Devel Maling List <linux-acpi@vger.kernel.org>, Timur Tabi <timur@codeaurora.org>, "Rafael J. Wysocki" <rjw@rjwysocki.net>, linux-arm-msm@vger.kernel.org, "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org>, Linux Kernel Mailing List <linux-kernel@vger.kernel.org> Subject: Re: [PATCH] ACPI / GED: unregister interrupts during shutdown Date: Thu, 7 Dec 2017 00:19:25 +0100 [thread overview] Message-ID: <CAJZ5v0hEdK_vJcHeoz=Z2H6od=bktspPpTo37Y6qiOT2qptnaA@mail.gmail.com> (raw) In-Reply-To: <CAJZ5v0iaursWFP_KRoJqT6-QoGkvpTot0oMvs6qdjkaP12p9jQ@mail.gmail.com> Hi Greg, On Wed, Dec 6, 2017 at 6:16 PM, Rafael J. Wysocki <rafael@kernel.org> wrote: > On Wed, Dec 6, 2017 at 5:55 PM, Sinan Kaya <okaya@codeaurora.org> wrote: >> On 12/6/2017 11:41 AM, Rafael J. Wysocki wrote: >>> On Wed, Dec 6, 2017 at 5:11 PM, Sinan Kaya <okaya@codeaurora.org> wrote: >>>> On 12/6/2017 9:57 AM, Sinan Kaya wrote: >>>>>> Yes, it should, so I'm not sure why you need the list in the first place. >>>>>> >>>>>> Also it looks like something along the lines of devres_release_all() >>>>>> should be sufficient. >>>>> Good suggestion, let me test this. >>>>> >>>> >>>> I tried to pull the code into GED but the API is not public. I also looked >>>> at how it is used. I was afraid to mess up with the internals of base.c by >>>> calling devres_release_all() externally first and by the driver framework >>>> next. I moved away from this approach. >>> >>> Are you sure it is called by the core in the shutdown path? >> >> Sorry, I was thinking about a general case not the shutdown path. If we open >> this API and have device drivers call it from arbitrary places; then we could >> be opening a new can of worms that show up during device driver removal. [cut] > > OK > > Anyway, it looks like something is missing in the core. > > You shouldn't really need to do all that dance in a driver. We have a problem with the ACPI GED driver which essentially is a platform driver requesting a number of interrupts and handling them by dispatching a specific AML method. It uses devm_request_threaded_irq() to request the interrupts, so it doesn't need a ->remove() callback, but it turns out to need a ->shutdown() one to free all of these interrupts at the shutdown time. While we can add a ->shutdown() callback to it, that essentially needs to duplicate devres_release_all() somewhat. Any suggestions what to do with that? Thanks, Rafael
WARNING: multiple messages have this Message-ID (diff)
From: rafael@kernel.org (Rafael J. Wysocki) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH] ACPI / GED: unregister interrupts during shutdown Date: Thu, 7 Dec 2017 00:19:25 +0100 [thread overview] Message-ID: <CAJZ5v0hEdK_vJcHeoz=Z2H6od=bktspPpTo37Y6qiOT2qptnaA@mail.gmail.com> (raw) In-Reply-To: <CAJZ5v0iaursWFP_KRoJqT6-QoGkvpTot0oMvs6qdjkaP12p9jQ@mail.gmail.com> Hi Greg, On Wed, Dec 6, 2017 at 6:16 PM, Rafael J. Wysocki <rafael@kernel.org> wrote: > On Wed, Dec 6, 2017 at 5:55 PM, Sinan Kaya <okaya@codeaurora.org> wrote: >> On 12/6/2017 11:41 AM, Rafael J. Wysocki wrote: >>> On Wed, Dec 6, 2017 at 5:11 PM, Sinan Kaya <okaya@codeaurora.org> wrote: >>>> On 12/6/2017 9:57 AM, Sinan Kaya wrote: >>>>>> Yes, it should, so I'm not sure why you need the list in the first place. >>>>>> >>>>>> Also it looks like something along the lines of devres_release_all() >>>>>> should be sufficient. >>>>> Good suggestion, let me test this. >>>>> >>>> >>>> I tried to pull the code into GED but the API is not public. I also looked >>>> at how it is used. I was afraid to mess up with the internals of base.c by >>>> calling devres_release_all() externally first and by the driver framework >>>> next. I moved away from this approach. >>> >>> Are you sure it is called by the core in the shutdown path? >> >> Sorry, I was thinking about a general case not the shutdown path. If we open >> this API and have device drivers call it from arbitrary places; then we could >> be opening a new can of worms that show up during device driver removal. [cut] > > OK > > Anyway, it looks like something is missing in the core. > > You shouldn't really need to do all that dance in a driver. We have a problem with the ACPI GED driver which essentially is a platform driver requesting a number of interrupts and handling them by dispatching a specific AML method. It uses devm_request_threaded_irq() to request the interrupts, so it doesn't need a ->remove() callback, but it turns out to need a ->shutdown() one to free all of these interrupts at the shutdown time. While we can add a ->shutdown() callback to it, that essentially needs to duplicate devres_release_all() somewhat. Any suggestions what to do with that? Thanks, Rafael
next prev parent reply other threads:[~2017-12-06 23:19 UTC|newest] Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-12-05 21:01 [PATCH] ACPI / GED: unregister interrupts during shutdown Sinan Kaya 2017-12-05 21:01 ` Sinan Kaya 2017-12-05 22:18 ` Rafael J. Wysocki 2017-12-05 22:18 ` Rafael J. Wysocki 2017-12-05 22:18 ` Rafael J. Wysocki 2017-12-06 13:24 ` Sinan Kaya 2017-12-06 13:24 ` Sinan Kaya 2017-12-06 13:24 ` Sinan Kaya 2017-12-06 13:37 ` Rafael J. Wysocki 2017-12-06 13:37 ` Rafael J. Wysocki 2017-12-06 13:37 ` Rafael J. Wysocki 2017-12-06 14:57 ` Sinan Kaya 2017-12-06 14:57 ` Sinan Kaya 2017-12-06 14:57 ` Sinan Kaya 2017-12-06 16:11 ` Sinan Kaya 2017-12-06 16:11 ` Sinan Kaya 2017-12-06 16:11 ` Sinan Kaya 2017-12-06 16:41 ` Rafael J. Wysocki 2017-12-06 16:41 ` Rafael J. Wysocki 2017-12-06 16:41 ` Rafael J. Wysocki 2017-12-06 16:55 ` Sinan Kaya 2017-12-06 16:55 ` Sinan Kaya 2017-12-06 16:55 ` Sinan Kaya 2017-12-06 17:16 ` Rafael J. Wysocki 2017-12-06 17:16 ` Rafael J. Wysocki 2017-12-06 17:16 ` Rafael J. Wysocki 2017-12-06 23:19 ` Rafael J. Wysocki [this message] 2017-12-06 23:19 ` Rafael J. Wysocki 2017-12-06 23:19 ` Rafael J. Wysocki 2017-12-07 8:29 ` Greg Kroah-Hartman 2017-12-07 8:29 ` Greg Kroah-Hartman 2017-12-07 8:29 ` Greg Kroah-Hartman 2017-12-07 13:00 ` Rafael J. Wysocki 2017-12-07 13:00 ` Rafael J. Wysocki 2017-12-07 13:00 ` Rafael J. Wysocki 2017-12-07 14:52 ` Sinan Kaya 2017-12-07 14:52 ` Sinan Kaya 2017-12-07 14:52 ` Sinan Kaya 2017-12-07 17:10 ` Rafael J. Wysocki 2017-12-07 17:10 ` Rafael J. Wysocki 2017-12-07 17:10 ` Rafael J. Wysocki 2017-12-07 17:18 ` Sinan Kaya 2017-12-07 17:18 ` Sinan Kaya 2017-12-07 17:18 ` Sinan Kaya
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='CAJZ5v0hEdK_vJcHeoz=Z2H6od=bktspPpTo37Y6qiOT2qptnaA@mail.gmail.com' \ --to=rafael@kernel.org \ --cc=gregkh@linuxfoundation.org \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=okaya@codeaurora.org \ --cc=rjw@rjwysocki.net \ --cc=timur@codeaurora.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: linkBe 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.