diff options
author | Tejun Heo <htejun@gmail.com> | 2009-08-16 14:02:36 +0200 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2009-09-09 03:17:48 +0200 |
commit | 3e5cd1f2576c720f1d0705fdd7ba64f27e8836b7 (patch) | |
tree | 631d41c950d2dc93c110ca86e779cb749c9a8987 /drivers/acpi/blacklist.c | |
parent | dmi: fix date handling in dmi_get_year() (diff) | |
download | linux-3e5cd1f2576c720f1d0705fdd7ba64f27e8836b7.tar.xz linux-3e5cd1f2576c720f1d0705fdd7ba64f27e8836b7.zip |
dmi: extend dmi_get_year() to dmi_get_date()
There are cases where full date information is required instead of
just the year. Add month and day parsing to dmi_get_year() and rename
it to dmi_get_date().
As the original function only required '/' followed by any number of
parseable characters at the end of the string, keep that behavior to
avoid upsetting existing users.
The new function takes dates of format [mm[/dd]]/yy[yy]. Year, month
and date are checked to be in the ranges of [1-9999], [1-12] and
[1-31] respectively and any invalid or out-of-range component is
returned as zero.
The dummy implementation is updated accordingly but the return value
is updated to indicate field not found which is consistent with how
other dummy functions behave.
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/acpi/blacklist.c')
-rw-r--r-- | drivers/acpi/blacklist.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c index f6baa77deefb..0c4ca4d318b3 100644 --- a/drivers/acpi/blacklist.c +++ b/drivers/acpi/blacklist.c @@ -78,9 +78,10 @@ static struct acpi_blacklist_item acpi_blacklist[] __initdata = { static int __init blacklist_by_year(void) { - int year = dmi_get_year(DMI_BIOS_DATE); + int year; + /* Doesn't exist? Likely an old system */ - if (year == -1) { + if (!dmi_get_date(DMI_BIOS_DATE, &year, NULL, NULL)) { printk(KERN_ERR PREFIX "no DMI BIOS year, " "acpi=force is required to enable ACPI\n" ); return 1; |