lkml.org 
[lkml]   [2012]   [Sep]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    SubjectRe: [PATCH] PCI, x86: clear initial value for root info resources
    On Fri, Sep 14, 2012 at 6:48 PM, Yinghai Lu <yinghai@kernel.org> wrote:
    > Found one system one root bus hot remove get panic.
    > Panic happens when try to release hostbridge resource.
    >
    > It turns out that resource get reject during put into resource tree
    > because of conflicts.
    > Also that resource parent pointer have random value.
    >
    > That invalid value cause it pass through check __release_pci_root_info
    > and panic in release_resource.
    >
    > Try to use kzalloc instead.

    Don't we need the same fix for ia64 in pci_acpi_scan_root()? Here's
    what it does:

    if (windows) {
    controller->window =
    kmalloc_node(sizeof(*controller->window) * windows,
    GFP_KERNEL, controller->node);


    > Signed-off-by: Yinghai Lu <yinghai@kernel.org>
    > Cc: x86@kernel.org
    >
    > ---
    > arch/x86/pci/acpi.c | 3 +--
    > 1 file changed, 1 insertion(+), 2 deletions(-)
    >
    > Index: linux-2.6/arch/x86/pci/acpi.c
    > ===================================================================
    > --- linux-2.6.orig/arch/x86/pci/acpi.c
    > +++ linux-2.6/arch/x86/pci/acpi.c
    > @@ -305,7 +305,6 @@ setup_resource(struct acpi_resource *acp
    > res->flags = flags;
    > res->start = start;
    > res->end = end;
    > - res->child = NULL;
    >
    > if (!pci_use_crs) {
    > dev_printk(KERN_DEBUG, &info->bridge->dev,
    > @@ -434,7 +433,7 @@ probe_pci_root_info(struct pci_root_info
    >
    > size = sizeof(*info->res) * info->res_num;
    > info->res_num = 0;
    > - info->res = kmalloc(size, GFP_KERNEL);
    > + info->res = kzalloc(size, GFP_KERNEL);
    > if (!info->res)
    > return;
    >


    \
     
     \ /
      Last update: 2012-09-19 01:21    [W:4.435 / U:0.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site