diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-03-27 11:03:22 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-03-27 11:03:22 -0400 |
| commit | c94b4321ebde51a80a805f7a5e102ac083ae2ac9 (patch) | |
| tree | ac6e0f251436d7e800ba12e783126a6d572b4623 /drivers/acpi/scan.c | |
| parent | f6d107fb10def502522b10bfb7af9533afbb8274 (diff) | |
| parent | 1192aeb957402b45f311895f124e4ca41206843c (diff) | |
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
ACPI: drivers/acpi: elide a non-zero test on a result that is never 0
pnpacpi: reduce printk severity for "pnpacpi: exceeded the max number of ..."
cpuidle: fix 100% C0 statistics regression
cpuidle: fix cpuidle time and usage overflow
ACPI: fix mis-merge -- invoke acpi_unlazy_tlb() only on C3 entry
ACPI: fix a regression of ACPI device driver autoloading
ACPI: SBS: remove typo from sbchc.c
Diffstat (limited to 'drivers/acpi/scan.c')
| -rw-r--r-- | drivers/acpi/scan.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index 57570ac47803..e6ce262b5d44 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c | |||
| @@ -39,20 +39,26 @@ static int create_modalias(struct acpi_device *acpi_dev, char *modalias, | |||
| 39 | int size) | 39 | int size) |
| 40 | { | 40 | { |
| 41 | int len; | 41 | int len; |
| 42 | int count; | ||
| 42 | 43 | ||
| 43 | if (!acpi_dev->flags.hardware_id) | 44 | if (!acpi_dev->flags.hardware_id && !acpi_dev->flags.compatible_ids) |
| 44 | return -ENODEV; | 45 | return -ENODEV; |
| 45 | 46 | ||
| 46 | len = snprintf(modalias, size, "acpi:%s:", | 47 | len = snprintf(modalias, size, "acpi:"); |
| 47 | acpi_dev->pnp.hardware_id); | ||
| 48 | if (len < 0 || len >= size) | ||
| 49 | return -EINVAL; | ||
| 50 | size -= len; | 48 | size -= len; |
| 51 | 49 | ||
| 50 | if (acpi_dev->flags.hardware_id) { | ||
| 51 | count = snprintf(&modalias[len], size, "%s:", | ||
| 52 | acpi_dev->pnp.hardware_id); | ||
| 53 | if (count < 0 || count >= size) | ||
| 54 | return -EINVAL; | ||
| 55 | len += count; | ||
| 56 | size -= count; | ||
| 57 | } | ||
| 58 | |||
| 52 | if (acpi_dev->flags.compatible_ids) { | 59 | if (acpi_dev->flags.compatible_ids) { |
| 53 | struct acpi_compatible_id_list *cid_list; | 60 | struct acpi_compatible_id_list *cid_list; |
| 54 | int i; | 61 | int i; |
| 55 | int count; | ||
| 56 | 62 | ||
| 57 | cid_list = acpi_dev->pnp.cid_list; | 63 | cid_list = acpi_dev->pnp.cid_list; |
| 58 | for (i = 0; i < cid_list->count; i++) { | 64 | for (i = 0; i < cid_list->count; i++) { |
