提交 bbf14513 编写于 作者: L Linus Torvalds

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: fix 2.6.20 SMP boot regression
  ACPICA: fix error path in new external package objects as method arguments
  ACPI: gracefully print null trip-point device
...@@ -332,16 +332,18 @@ static void acpi_processor_idle(void) ...@@ -332,16 +332,18 @@ static void acpi_processor_idle(void)
int sleep_ticks = 0; int sleep_ticks = 0;
u32 t1, t2 = 0; u32 t1, t2 = 0;
pr = processors[smp_processor_id()];
if (!pr)
return;
/* /*
* Interrupts must be disabled during bus mastering calculations and * Interrupts must be disabled during bus mastering calculations and
* for C2/C3 transitions. * for C2/C3 transitions.
*/ */
local_irq_disable(); local_irq_disable();
pr = processors[smp_processor_id()];
if (!pr) {
local_irq_enable();
return;
}
/* /*
* Check whether we truly need to go idle, or should * Check whether we truly need to go idle, or should
* reschedule: * reschedule:
......
...@@ -828,6 +828,8 @@ static int acpi_thermal_trip_seq_show(struct seq_file *seq, void *offset) ...@@ -828,6 +828,8 @@ static int acpi_thermal_trip_seq_show(struct seq_file *seq, void *offset)
{ {
struct acpi_thermal *tz = seq->private; struct acpi_thermal *tz = seq->private;
struct acpi_device *device; struct acpi_device *device;
acpi_status status;
int i = 0; int i = 0;
int j = 0; int j = 0;
...@@ -850,8 +852,10 @@ static int acpi_thermal_trip_seq_show(struct seq_file *seq, void *offset) ...@@ -850,8 +852,10 @@ static int acpi_thermal_trip_seq_show(struct seq_file *seq, void *offset)
tz->trips.passive.tc1, tz->trips.passive.tc2, tz->trips.passive.tc1, tz->trips.passive.tc2,
tz->trips.passive.tsp); tz->trips.passive.tsp);
for (j = 0; j < tz->trips.passive.devices.count; j++) { for (j = 0; j < tz->trips.passive.devices.count; j++) {
acpi_bus_get_device(tz->trips.passive.devices.handles[j], &device); status = acpi_bus_get_device(tz->trips.passive.devices.
seq_printf(seq, "%4.4s ", acpi_device_bid(device)); handles[j], &device);
seq_printf(seq, "%4.4s ", status ? "" :
acpi_device_bid(device));
} }
seq_puts(seq, "\n"); seq_puts(seq, "\n");
} }
...@@ -863,8 +867,11 @@ static int acpi_thermal_trip_seq_show(struct seq_file *seq, void *offset) ...@@ -863,8 +867,11 @@ static int acpi_thermal_trip_seq_show(struct seq_file *seq, void *offset)
i, i,
KELVIN_TO_CELSIUS(tz->trips.active[i].temperature)); KELVIN_TO_CELSIUS(tz->trips.active[i].temperature));
for (j = 0; j < tz->trips.active[i].devices.count; j++){ for (j = 0; j < tz->trips.active[i].devices.count; j++){
acpi_bus_get_device(tz->trips.active[i].devices.handles[j], &device); status = acpi_bus_get_device(tz->trips.active[i].
seq_printf(seq, "%4.4s ", acpi_device_bid(device)); devices.handles[j],
&device);
seq_printf(seq, "%4.4s ", status ? "" :
acpi_device_bid(device));
} }
seq_puts(seq, "\n"); seq_puts(seq, "\n");
} }
......
...@@ -177,7 +177,7 @@ union acpi_operand_object *acpi_ut_create_package_object(u32 count) ...@@ -177,7 +177,7 @@ union acpi_operand_object *acpi_ut_create_package_object(u32 count)
package_elements = ACPI_ALLOCATE_ZEROED((acpi_size) package_elements = ACPI_ALLOCATE_ZEROED((acpi_size)
(count + 1) * sizeof(void *)); (count + 1) * sizeof(void *));
if (!package_elements) { if (!package_elements) {
ACPI_FREE(package_desc); acpi_ut_remove_reference(package_desc);
return_PTR(NULL); return_PTR(NULL);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册