03 Aug, 2009

2 commits

  • If the memory block size is zero, ignore it and don't do the memory hotplug
    flowchart. Otherwise it will complain the following warning message:
    >System RAM resource 0 - ffffffffffffffff cannot be added

    Signed-off-by: Zhao Yakui
    Signed-off-by: Len Brown

    Zhao Yakui
     
  • Don't treat the generic error as ACPI error code. Otherwise when the generic
    code is returned, it will complain the following warning messag:
    >ACPI Exception (acpi_memhotplug-0171): UNKNOWN_STATUS_CODE,
    Cannot get acpi bus device [20080609]
    >ACPI: Cannot find driver data
    > ACPI Error (utglobal-0127): Unknown exception code: 0xFFFFFFED [20080609]
    > Pid: 85, comm: kacpi_notify Not tainted 2.6.27.19-5-default #1
    Call Trace:
    [] show_trace_log_lvl+0x41/0x58
    [] dump_stack+0x69/0x6f
    .....

    At the same time when the generic error code is returned, the ACPI_EXCEPTION
    is replaced by the printk.

    Signed-off-by: Zhao Yakui
    Signed-off-by: Len Brown

    Zhao Yakui
     

06 Jan, 2009

1 commit


08 Nov, 2008

1 commit


23 Oct, 2008

3 commits

  • Conflicts:
    drivers/acpi/bay.c
    drivers/acpi/dock.c
    drivers/ata/libata-acpi.c

    Signed-off-by: Len Brown

    Len Brown
     
  • Len Brown
     
  • ACPI_DB_ERROR and ACPI_DB_WARN were removed from ACPICA core.
    So replace ACPI_DEBUG_PRINT((ACPI_DB_ERROR, ...) with printk(KERN_ERR PREFIX ...)
    and ACPI_DEBUG_PRINT((ACPI_DB_WARN, ...) with printk(KERN_WARNING PREFIX ...)

    We do not use ACPI_ERROR/ACPI_WARNING since they're not exported, see
    -------------------------------------------------------------
    commit 6468463abd7051fcc29f3ee7c931f9bbbb26f5a4
    Author: Len Brown
    Date: Mon Jun 26 23:41:38 2006 -0400

    ACPI: un-export ACPI_ERROR() -- use printk(KERN_ERR...)

    Signed-off-by: Len Brown
    -------------------------------------------------------------

    Signed-off-by: Lin Ming
    Signed-off-by: Len Brown

    Lin Ming
     

11 Oct, 2008

2 commits


24 Jul, 2007

1 commit


26 Apr, 2007

1 commit


13 Feb, 2007

3 commits

  • Cosmetic only.

    Except in a single case, #define ACPI_*_DRIVER_NAME
    were invoked 0 or 1 times.

    Signed-off-by: Len Brown

    Len Brown
     
  • It was erroneously used as a description rather than a name.

    ie. turn this:

    lenb@se7525gp2:/sys> ls bus/acpi/drivers
    ACPI AC Adapter Driver ACPI Embedded Controller Driver ACPI Power Resource Driver
    ACPI Battery Driver ACPI Fan Driver ACPI Processor Driver
    ACPI Button Driver ACPI PCI Interrupt Link Driver ACPI Thermal Zone Driver
    ACPI container driver ACPI PCI Root Bridge Driver hpet

    into this:

    lenb@se7525gp2:~> ls /sys/bus/acpi/drivers
    ac battery button container ec fan hpet pci_link pci_root power processor thermal

    Signed-off-by: Len Brown

    Len Brown
     
  • cosmetic only

    Make "module name" actually match the file name.
    Invoke with ';' as leaving it off confuses Lindent and gcc doesn't care.
    Fix indentation where Lindent did get confused.

    Signed-off-by: Len Brown

    Len Brown
     

21 Dec, 2006

1 commit


16 Dec, 2006

1 commit


21 Oct, 2006

2 commits

  • I wrote a patch to avoid redundant memory hot-add call at boot time. This
    was cause of strange fail message of memory hotplug like "ACPI: add_memory
    failed". Memory is recognized by early boot code with EFI/E820.

    But, if DSDT describes memory devices for them, then hot-add code is called
    for already recognized memory, and it shows fail messages with -EEXIST.
    So, sys admin will misunderstand this message as something wrong by it.

    This patch avoids them by preventing redundant hot-add call until
    completion of driver initialization.

    [akpm@osdl.org: cleanups]
    Signed-off-by: Yasunori Goto
    Cc: "Brown, Len"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yasunori Goto
     
  • I suppose this message seems quite useless except debugging. It just shows
    "Hotplug Mem Device". System admin can't know anything by this message.
    So, I would like to change it to KERN_DEBUG.

    Signed-off-by: Yasunori Goto
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yasunori Goto
     

14 Oct, 2006

1 commit


01 Oct, 2006

1 commit

  • In cases where the acpi memory-add event does not containe the pxm (node)
    infomation allow the driver to look up node info based on the address. The
    acpi_get_node call returns -1 if it can't decode the pxm info, this causes
    add_memory to panic. acpi_get_node would have to decode the resource from the
    handle (a lenghty proposition). This seems to be the cleanist point to
    interject the hook.

    [kamezawa.hiroyu@jp.fujitsu.com: build fixes]
    [y-goto@jp.fujitsu.com: build fixes]
    Signed-off-by: Keith Mannthey
    Cc: KAMEZAWA Hiroyuki
    Cc: Andi Kleen
    Signed-off-by: KAMEZAWA Hiroyuki
    Signed-off-by: Yasunori Goto
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Keith Mannthey
     

16 Aug, 2006

1 commit

  • This is to remove noisy useless message at boot. The message is a ton of
    "ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device"

    In my emulation, number of memory devices are not so many (only 6), but,
    this messages are displayed 114 times.

    It is showed by acpi_memory_register_notify_handler() which is called by
    acpi_walk_namespace().

    acpi_walk_namespace() parses all of ACPI's namespace and execute
    acpi_memory_register_notify_handler(). So, it is called for all of the
    device which is defined in namespace. If the parsing device is not memory,
    acpi_memhotplug ignores it due to "no match" and will parse next device.
    This is normal route, not an exception.

    Signed-off-by: Yasunori Goto
    Signed-off-by: Andrew Morton
    Signed-off-by: Len Brown

    Yasunori Goto
     

06 Aug, 2006

2 commits

  • both of acpi_memory_enable_device() and acpi_memory_add_device() may evaluate
    _CRS method.

    We should avoid evaluate device's resource twice if we could get it
    successfully in past.

    Signed-off-by: KAMEZWA Hiroyuki
    Cc: Keith Mannthey
    Cc: Yasunori Goto
    Cc: Dave Hansen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • add_memory() does all necessary check to avoid collision. then, acpi layer
    doesn't have to check region by itself.

    (*) pfn_valid() just returns page struct is valid or not. It returns 0
    if a section has been already added even is ioresource is not added.
    ioresource collision check in mm/memory_hotplug.c can do more precise
    collistion check.
    added enabled bit check just for sanity check..

    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: Keith Mannthey
    Cc: Yasunori Goto
    Cc: Dave Hansen
    Cc: "Brown, Len"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     

02 Jul, 2006

2 commits


30 Jun, 2006

6 commits


28 Jun, 2006

5 commits

  • This is to find node id from acpi's handle of memory_device in DSDT. _PXM for
    the new node can be found by acpi_get_pxm() by using new memory's handle. So,
    node id can be found by pxm_to_nid_map[].

    This patch becomes simpler than v2 of node hot-add patch.
    Because old add_memory() function doesn't have node id parameter.
    So, kernel must find its handle by physical address via DSDT again.
    But, v3 just give node id to add_memory() now.

    Signed-off-by: Yasunori Goto
    Cc: Dave Hansen
    Cc: "Brown, Len"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yasunori Goto
     
  • Change the name of old add_memory() to arch_add_memory. And use node id to
    get pgdat for the node at NODE_DATA().

    Note: Powerpc's old add_memory() is defined as __devinit. However,
    add_memory() is usually called only after bootup.
    I suppose it may be redundant. But, I'm not well known about powerpc.
    So, I keep it. (But, __meminit is better at least.)

    Signed-off-by: Yasunori Goto
    Cc: Dave Hansen
    Cc: "Brown, Len"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yasunori Goto
     
  • …oid redundant call add_memory)

    When acpi_memory_device_init() is called at boottime to register struct
    memory acpi_memory_device, acpi_bus_add() are called via
    acpi_driver_attach().

    But it also calls ops->start() function. It is called even if the memory
    blocks are initialized at early boottime. In this case add_memory() return
    -EEXIST, and the memory blocks becomes INVALID state even if it is normal.

    This is patch to avoid calling add_memory() for already available memory.

    [akpm@osdl.org: coding cleanups]
    Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com>
    Cc: "Brown, Len" <len.brown@intel.com>
    Cc: Dave Hansen <haveblue@us.ibm.com>
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>

    Yasunori Goto
     
  • …gister start func for memory device)

    This is a patch to call add_memroy() when notify reaches for new node's add
    event.

    When new node is added, notify of ACPI reaches container device which means
    the node.

    Container device driver calls acpi_bus_scan() to find and add belonging
    devices (which means cpu, memory and so on). Its function calls add and
    start function of belonging devices's driver.

    Howevever, current memory hotplug driver just register add function to
    create sysfs file for its memory. But, acpi_memory_enable_device() is not
    called because it is considered just the case that notify reaches memory
    device directly. So, if notify reaches container device nothing can call
    add_memory().

    This is a patch to create start function which calls add_memory().
    add_memory() can be called by this when notify reaches container device.

    [akpm@osdl.org: coding cleanups]
    Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com>
    Cc: "Brown, Len" <len.brown@intel.com>
    Cc: Dave Hansen <haveblue@us.ibm.com>
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>

    Yasunori Goto
     
  • Current acpi memory hotplug just looks into the first entry of resources in
    _CRS. But, _CRS can contain plural resources. So, if _CRS contains plural
    resoureces, acpi memory hot add cannot add all memory.

    With this patch, acpi memory hotplug can deal with Memory Device, whose
    _CRS contains plural resources.

    Tested on ia64 memory hotplug test envrionment (not emulation, uses alpha
    version firmware which supports dynamic reconfiguration of NUMA.)

    Note: Microsoft's Windows Server 2003 requires big (>4G)resoureces to be
    divided into small (
    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: "Brown, Len"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     

27 Jun, 2006

3 commits


02 Apr, 2006

1 commit

  • Address space descriptors contain _MIN, _MAX, and _LEN. _MIN and _MAX are
    the bounds within which the region can be moved (this is clarified in Table
    6-38 of the ACPI 3.0 spec). We should use _LEN to determine the size of
    the region, not _MAX - _MIN + 1.

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Andrew Morton
    Signed-off-by: Len Brown

    Bjorn Helgaas