On Thu, 2010-12-09 at 23:04 +0800, Lin Ming wrote: > ---------- Forwarded message ---------- > From: Lin Ming <ming.m.lin@xxxxxxxxx> > Date: Thu, Dec 9, 2010 at 4:51 PM > Subject: [PATCH 2/2] acpi: allow to add/remove multiple _OSI strings > To: lenb <lenb@xxxxxxxxxx>, Lukas Hejtmanek <xhejtman@xxxxxxxxxxx> > Cc: "Moore, Robert" <robert.moore@xxxxxxxxx>, linux-acpi > <linux-acpi@xxxxxxxxxxxxxxx> > > > commit b0ed7a91(ACPICA/ACPI: Add new host interfaces for _OSI suppor) > introduced another regression that only one _OSI string can be added or > removed. > > Now multiple _OSI strings can be added or removed, for example > > acpi_osi=Linux acpi_osi=FreeBSD acpi_osi="!Windows 2006" > > Signed-off-by: Lin Ming <ming.m.lin@xxxxxxxxx> > --- > drivers/acpi/osl.c | 66 +++++++++++++++++++++++++++++++++++++++------------ > 1 files changed, 50 insertions(+), 16 deletions(-) > > diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c > index 6867443..d6e181a 100644 > --- a/drivers/acpi/osl.c > +++ b/drivers/acpi/osl.c > @@ -110,9 +110,6 @@ struct acpi_ioremap { > static LIST_HEAD(acpi_ioremaps); > static DEFINE_SPINLOCK(acpi_ioremap_lock); > > -#define OSI_STRING_LENGTH_MAX 64 /* arbitrary */ > -static char osi_setup_string[OSI_STRING_LENGTH_MAX]; > - > static void __init acpi_osi_setup_late(void); > > /* > @@ -1054,16 +1051,47 @@ static int __init acpi_os_name_setup(char *str) > > __setup("acpi_os_name=", acpi_os_name_setup); > > +#define OSI_STRING_LENGTH_MAX 64 /* arbitrary */ > +#define OSI_STRING_ENTRIES_MAX 16 /* arbitrary */ > + > +struct osi_setup_entry { > + char string[OSI_STRING_LENGTH_MAX]; > + bool enable; > +}; > + > +static struct osi_setup_entry osi_setup_entries[OSI_STRING_ENTRIES_MAX]; Len, A small update, mark osi_setup_entries as __initdata. Would you consider merging this for 2.6.37-rc6? diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index d6e181a..d0a1bb5 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c @@ -1059,7 +1059,7 @@ struct osi_setup_entry { bool enable; }; -static struct osi_setup_entry osi_setup_entries[OSI_STRING_ENTRIES_MAX]; +static struct osi_setup_entry __initdata osi_setup_entries[OSI_STRING_ENTRIES_MAX]; void __init acpi_osi_setup(char *str) { -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html