On Thu, 2006-06-22 at 12:13 +0900, KAMEZAWA Hiroyuki wrote:
> On Wed, 21 Jun 2006 19:19:58 -0700
> keith mannthey <[EMAIL PROTECTED]> wrote:
> > > Good Catch :)
> > >
> > > Then, could you print driver name ? like this
> > > ==
> > > printk("Call Add driver for name %s/class %s/id
> > > %s\n",driver->name,driver->class,driver->id);
> > > ==
> >
> > Good idea!
> > During the hot add I see.
> > Call Add driver for name motherboard/class /id PNP0C01
> >
> > That is the wrong driver for sure.
>
> Hmm....curious..but no idead..
> Then, could try this ?
I am trying to make the motherboard driver fail with it looks for
resources and finds node. The motherboard add function alway returns
AE_OK which is why the algorithm fails. See attached patch it allows the
hot-add event to happen.
With the event happening and I see
Call Add driver for name Hotplug Mem Driver/class memory/id PNP0C80
acpi-memhotplug: device_add() called
acpi-memhotplug: kmalloc mem_device success
acpi-memhotplug: read CRS success
But then
On node -1 totalpages: 0
How do I tell if my event has the right _PXM data or what ever is
needed?
Signed-off-by: Keith Mannthey <[EMAIL PROTECTED]>
--- linux-2.6.17-rc6-mm2-orig/drivers/acpi/motherboard.c 2006-06-21 23:35:26.000000000 -0400
+++ linux-2.6.17-rc6-mm2/drivers/acpi/motherboard.c 2006-06-21 23:04:44.000000000 -0400
@@ -86,6 +86,7 @@
}
} else {
/* Memory mapped IO? */
+ return -EINVAL;
}
if (requested_res)
@@ -95,12 +96,14 @@
static int acpi_motherboard_add(struct acpi_device *device)
{
+ acpi_status status;
if (!device)
return -EINVAL;
- acpi_walk_resources(device->handle, METHOD_NAME__CRS,
+
+ status = acpi_walk_resources(device->handle, METHOD_NAME__CRS,
acpi_reserve_io_ranges, NULL);
- return 0;
+ return status;
}
static struct acpi_driver acpi_motherboard_driver1 = {