Linux-ACPI Archive on lore.kernel.org
 help / color / Atom feed
From: "Schmauss, Erik" <erik.schmauss@intel.com>
To: "Moore, Robert" <robert.moore@intel.com>,
	Nikolaus Voss <nikolaus.voss@loewensteinmedical.de>,
	"Shevchenko, Andriy" <andriy.shevchenko@intel.com>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Ferry Toth <fntoth@gmail.com>
Cc: Len Brown <lenb@kernel.org>,
	Jacek Anaszewski <jacek.anaszewski@gmail.com>,
	Pavel Machek <pavel@ucw.cz>, Dan Murphy <dmurphy@ti.com>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"devel@acpica.org" <devel@acpica.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"nv@vosn.de" <nv@vosn.de>
Subject: RE: [PATCH] ACPICA: make acpi_load_table() return table index
Date: Wed, 25 Sep 2019 18:13:34 +0000
Message-ID: <CF6A88132359CE47947DB4C6E1709ED53C646E97@ORSMSX122.amr.corp.intel.com> (raw)
In-Reply-To: <4929b1d2-c2a7-4efd-89e4-f02205e79c01@telfort.nl>



> -----Original Message-----
> From: Ferry Toth <ftoth@telfort.nl>
> Sent: Thursday, September 12, 2019 12:37 PM
> To: Moore, Robert <robert.moore@intel.com>; Nikolaus Voss
> <nikolaus.voss@loewensteinmedical.de>; Shevchenko, Andriy
> <andriy.shevchenko@intel.com>; Schmauss, Erik <erik.schmauss@intel.com>;
> Rafael J. Wysocki <rjw@rjwysocki.net>
> Cc: Len Brown <lenb@kernel.org>; Jacek Anaszewski
> <jacek.anaszewski@gmail.com>; Pavel Machek <pavel@ucw.cz>; Dan Murphy
> <dmurphy@ti.com>; linux-acpi@vger.kernel.org; devel@acpica.org; linux-
> kernel@vger.kernel.org; nv@vosn.de
> Subject: Re: [PATCH] ACPICA: make acpi_load_table() return table index
> 
> Op 12-09-19 om 16:19 schreef Moore, Robert:
> > Nikolaus,
> > The ability to unload an ACPI table (especially AML tables such as SSDTs) is in
> the process of being deprecated in ACPICA -- since it is also deprecated in the
> current ACPI specification. This is being done because of the difficulty of
> deleting the namespace entries for the table.  FYI, Windows does not properly
> support this function either.
> 
> I really hope this is not the case. On x86 loading/unloading SSDTs has proven to
> be a powerful way to handle reconfigurable hardware without rebooting and
> without requiring dedicated platform drivers. Same for user plugable hardware
> on i2c/spi busses.
> 
> This has worked before and will violate the "don't break user space" rule.

If the table index wasn't being used, how did this work before?
Which commit broke this?

Bob and I are trying to understand if this is a regression or a new feature request...

Thanks,
Erik
> 
> I don't see why Windows is an example to follow. On Windows platform drivers
> don't get compiled into the kernel and don't need to be upstreamed.
> 
> > Bob
> >
> >
> > -----Original Message-----
> > From: Nikolaus Voss [mailto:nikolaus.voss@loewensteinmedical.de]
> > Sent: Thursday, September 12, 2019 1:08 AM
> > To: Shevchenko, Andriy <andriy.shevchenko@intel.com>; Schmauss, Erik
> > <erik.schmauss@intel.com>; Rafael J. Wysocki <rjw@rjwysocki.net>;
> > Moore, Robert <robert.moore@intel.com>
> > Cc: Len Brown <lenb@kernel.org>; Jacek Anaszewski
> > <jacek.anaszewski@gmail.com>; Pavel Machek <pavel@ucw.cz>; Dan Murphy
> > <dmurphy@ti.com>; linux-acpi@vger.kernel.org; devel@acpica.org;
> > linux-kernel@vger.kernel.org; nv@vosn.de; Nikolaus Voss
> > <nikolaus.voss@loewensteinmedical.de>
> > Subject: [PATCH] ACPICA: make acpi_load_table() return table index
> >
> > For unloading an ACPI table, it is necessary to provide the index of the table.
> The method intended for dynamically loading or hotplug addition of tables,
> acpi_load_table(), should provide this information via an optional pointer to
> the loaded table index.
> >
> > This patch fixes the table unload function of acpi_configfs.
> >
> > Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > Fixes: d06c47e3dd07f ("ACPI: configfs: Resolve objects on
> > host-directed table loads")
> > Signed-off-by: Nikolaus Voss <nikolaus.voss@loewensteinmedical.de>
> > ---
> >   drivers/acpi/acpi_configfs.c   | 2 +-
> >   drivers/acpi/acpica/dbfileio.c | 2 +-
> >   drivers/acpi/acpica/tbxfload.c | 8 ++++++--
> >   drivers/firmware/efi/efi.c     | 2 +-
> >   include/acpi/acpixf.h          | 3 ++-
> >   5 files changed, 11 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/acpi/acpi_configfs.c
> > b/drivers/acpi/acpi_configfs.c index 57d9d574d4dde..77f81242a28e6
> > 100644
> > --- a/drivers/acpi/acpi_configfs.c
> > +++ b/drivers/acpi/acpi_configfs.c
> > @@ -53,7 +53,7 @@ static ssize_t acpi_table_aml_write(struct config_item
> *cfg,
> >   	if (!table->header)
> >   		return -ENOMEM;
> >
> > -	ret = acpi_load_table(table->header);
> > +	ret = acpi_load_table(table->header, &table->index);
> >   	if (ret) {
> >   		kfree(table->header);
> >   		table->header = NULL;
> > diff --git a/drivers/acpi/acpica/dbfileio.c
> > b/drivers/acpi/acpica/dbfileio.c index c6e25734dc5cd..e1b6e54a96ac1
> > 100644
> > --- a/drivers/acpi/acpica/dbfileio.c
> > +++ b/drivers/acpi/acpica/dbfileio.c
> > @@ -93,7 +93,7 @@ acpi_status acpi_db_load_tables(struct
> acpi_new_table_desc *list_head)
> >   	while (table_list_head) {
> >   		table = table_list_head->table;
> >
> > -		status = acpi_load_table(table);
> > +		status = acpi_load_table(table, NULL);
> >   		if (ACPI_FAILURE(status)) {
> >   			if (status == AE_ALREADY_EXISTS) {
> >   				acpi_os_printf
> > diff --git a/drivers/acpi/acpica/tbxfload.c
> > b/drivers/acpi/acpica/tbxfload.c index 86f1693f6d29a..d08cd8ffcbdb6
> > 100644
> > --- a/drivers/acpi/acpica/tbxfload.c
> > +++ b/drivers/acpi/acpica/tbxfload.c
> > @@ -268,7 +268,8 @@ ACPI_EXPORT_SYMBOL_INIT(acpi_install_table)
> >    *
> >    * PARAMETERS:  table               - Pointer to a buffer containing the ACPI
> >    *                                    table to be loaded.
> > - *
> > + *              table_idx           - Pointer to a u32 for storing the table
> > + *                                    index, might be NULL
> >    * RETURN:      Status
> >    *
> >    * DESCRIPTION: Dynamically load an ACPI table from the caller's buffer.
> Must @@ -278,7 +279,7 @@ ACPI_EXPORT_SYMBOL_INIT(acpi_install_table)
> >    *              to ensure that the table is not deleted or unmapped.
> >    *
> >
> >
> *******************************************************************
> ***
> > ********/ -acpi_status acpi_load_table(struct acpi_table_header
> > *table)
> > +acpi_status acpi_load_table(struct acpi_table_header *table, u32
> > +*table_idx)
> >   {
> >   	acpi_status status;
> >   	u32 table_index;
> > @@ -297,6 +298,9 @@ acpi_status acpi_load_table(struct acpi_table_header
> *table)
> >   	status =
> acpi_tb_install_and_load_table(ACPI_PTR_TO_PHYSADDR(table),
> >
> 	ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL,
> >   						FALSE, &table_index);
> > +	if (table_idx)
> > +		*table_idx = table_index;
> > +
> >   	if (ACPI_SUCCESS(status)) {
> >
> >   		/* Complete the initialization/resolution of new objects */ diff
> > --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c index
> > ad3b1f4866b35..9773e4212baef 100644
> > --- a/drivers/firmware/efi/efi.c
> > +++ b/drivers/firmware/efi/efi.c
> > @@ -308,7 +308,7 @@ static __init int efivar_ssdt_load(void)
> >   			goto free_data;
> >   		}
> >
> > -		ret = acpi_load_table(data);
> > +		ret = acpi_load_table(data, NULL);
> >   		if (ret) {
> >   			pr_err("failed to load table: %d\n", ret);
> >   			goto free_data;
> > diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h index
> > 3845c8fcc94e5..c90bbdc4146a6 100644
> > --- a/include/acpi/acpixf.h
> > +++ b/include/acpi/acpixf.h
> > @@ -452,7 +452,8 @@ ACPI_EXTERNAL_RETURN_STATUS(acpi_status
> ACPI_INIT_FUNCTION
> >   					       u8 physical))
> >
> >   ACPI_EXTERNAL_RETURN_STATUS(acpi_status
> > -			    acpi_load_table(struct acpi_table_header *table))
> > +			    acpi_load_table(struct acpi_table_header *table,
> > +					    u32 *table_idx))
> >
> >   ACPI_EXTERNAL_RETURN_STATUS(acpi_status
> >   			    acpi_unload_parent_table(acpi_handle object))
> > --
> > 2.17.1
> >
> >


  reply index

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-29 12:18 [PATCH 0/3] PWM framework: add support referencing PWMs from ACPI Nikolaus Voss
2019-05-29 12:18 ` [PATCH 1/3] ACPI: Resolve objects on host-directed table loads Nikolaus Voss
2019-05-30 14:42   ` Dan Murphy
2019-05-31 12:23     ` Pavel Machek
2019-05-31 12:45       ` Dan Murphy
2019-05-31 12:46     ` Dan Murphy
2019-06-03  9:12       ` Nikolaus Voss
2019-08-14 18:50   ` Andy Shevchenko
2019-08-14 20:27     ` Schmauss, Erik
2019-08-16 11:57       ` Nikolaus Voss
2019-08-30 14:53         ` Shevchenko, Andriy
2019-09-04  7:20           ` Nikolaus Voss
2019-09-06 17:46             ` Shevchenko, Andriy
2019-09-12  8:05               ` Nikolaus Voss
2019-09-12  8:07               ` [PATCH] ACPICA: make acpi_load_table() return table index Nikolaus Voss
2019-09-12 14:19                 ` Moore, Robert
2019-09-12 19:36                   ` Ferry Toth
2019-09-25 18:13                     ` Schmauss, Erik [this message]
2019-09-26  8:09                       ` Shevchenko, Andriy
2019-09-13  7:44                   ` Nikolaus Voss
2019-09-13 14:20                     ` Moore, Robert
2019-09-13 15:12                       ` Shevchenko, Andriy
2019-09-13 16:48                         ` Ferry Toth
2019-09-13 16:48                           ` Ferry Toth
2019-09-13 17:40                           ` Moore, Robert
2019-09-13 19:56                             ` Rafael J. Wysocki
2019-09-16  9:46                             ` Nikolaus Voss
2019-09-18 14:13                               ` Moore, Robert
2019-09-18 14:31                                 ` Nikolaus Voss
2019-09-19 17:05                                   ` Moore, Robert
2019-09-23  9:05                                     ` Nikolaus Voss
2019-09-24 19:41                                       ` Moore, Robert
2019-09-25 10:18                                         ` Nikolaus Voss
2019-09-25 10:53                                           ` Shevchenko, Andriy
2019-09-19  8:13                 ` Rafael J. Wysocki
2019-09-23  9:08                   ` Nikolaus Voss
2019-09-23  9:47                   ` [PATCH] ACPICA: Introduce acpi_load_table_with_index() Nikolaus Voss
2019-09-24 12:07                     ` Shevchenko, Andriy
2019-09-24 12:08                       ` Shevchenko, Andriy
2019-09-25 10:20                         ` Nikolaus Voss
2019-09-24 15:11                     ` Andy Shevchenko
2019-09-25 10:22                       ` Nikolaus Voss
2019-09-26 16:09                 ` [PATCH] ACPICA: make acpi_load_table() return table index Schmauss, Erik
2019-09-26 16:35                   ` Shevchenko, Andriy
2019-09-26 16:51                     ` Schmauss, Erik
2019-09-26 17:47                       ` Shevchenko, Andriy
2019-09-26 18:44                       ` Nikolaus Voss
2019-09-26 19:26                         ` Rafael J. Wysocki
2019-09-26 19:41                           ` Schmauss, Erik
2019-09-26 18:43                   ` Nikolaus Voss
2019-05-29 12:18 ` [PATCH 2/3] PWM framework: add support referencing PWMs from ACPI Nikolaus Voss
2019-05-30 14:54   ` Dan Murphy
2019-05-31 12:24     ` Pavel Machek
2019-06-03  9:27     ` Nikolaus Voss
2019-05-29 12:18 ` [PATCH 3/3] leds-pwm.c: support ACPI via firmware-node framework Nikolaus Voss
2019-05-30 15:14   ` Dan Murphy
2019-06-03  9:44     ` Nikolaus Voss

Reply instructions:

You may reply publically 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=CF6A88132359CE47947DB4C6E1709ED53C646E97@ORSMSX122.amr.corp.intel.com \
    --to=erik.schmauss@intel.com \
    --cc=andriy.shevchenko@intel.com \
    --cc=devel@acpica.org \
    --cc=dmurphy@ti.com \
    --cc=fntoth@gmail.com \
    --cc=jacek.anaszewski@gmail.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nikolaus.voss@loewensteinmedical.de \
    --cc=nv@vosn.de \
    --cc=pavel@ucw.cz \
    --cc=rjw@rjwysocki.net \
    --cc=robert.moore@intel.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

Linux-ACPI Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-acpi/0 linux-acpi/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-acpi linux-acpi/ https://lore.kernel.org/linux-acpi \
		linux-acpi@vger.kernel.org
	public-inbox-index linux-acpi

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-acpi


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git