All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jon Smirl <jonsmirl@gmail.com>
To: Tero Roponen <teanropo@cc.jyu.fi>, ink@jurassic.park.msu.ru
Cc: gregkh@suse.de, linux-kernel@vger.kernel.org
Subject: Re: 2.6.13-rc2 hangs at boot
Date: Wed, 6 Jul 2005 21:27:11 -0400	[thread overview]
Message-ID: <9e47339105070618273dfb6ff8@mail.gmail.com> (raw)
In-Reply-To: <Pine.GSO.4.58.0507061638380.13297@tukki.cc.jyu.fi>

I'm dead on a Dell PE400SC without reverting this.

On 7/6/05, Tero Roponen <teanropo@cc.jyu.fi> wrote:
> Hi,
> 
> my computer (a ThinkPad 380XD laptop) hangs at boot in 2.6.13-rc2.
> When I revert the patch below everything seems to be fine.
> 
> thanks,
> Tero Roponen
> 
> 
> Patch to revert:
> 
> Author: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
> Date: Wed, 15 Jun 2005 14:59:27 +0000 (+0400)
> Source: http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=299de0343c7d18448a69c635378342e9214b14af
> 
>   [PATCH] PCI: pci_assign_unassigned_resources() on x86
> 
>   - Add sanity check for io[port,mem]_resource in setup-bus.c. These
>     resources look like "free" as they have no parents, but obviously
>     we must not touch them.
>   - In i386.c:pci_allocate_bus_resources(), if a bridge resource cannot be
>     allocated for some reason, then clear its flags. This prevents any child
>     allocations in this range, so the setup-bus code will work with a clean
>     resource sub-tree.
>   - i386.c:pcibios_enable_resources() doesn't enable bridges, as it checks
>     only resources 0-5, which looks like a clear bug to me. I suspect it
>     might break hotplug as well in some cases.
> 
>   From: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
>   Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
> 
> --- a/arch/i386/pci/common.c
> +++ b/arch/i386/pci/common.c
> @@ -165,6 +165,7 @@ static int __init pcibios_init(void)
>         if ((pci_probe & PCI_BIOS_SORT) && !(pci_probe & PCI_NO_SORT))
>                 pcibios_sort();
>  #endif
> +       pci_assign_unassigned_resources();
>         return 0;
>  }
> 
> --- a/arch/i386/pci/i386.c
> +++ b/arch/i386/pci/i386.c
> @@ -106,11 +106,16 @@ static void __init pcibios_allocate_bus_
>                 if ((dev = bus->self)) {
>                         for (idx = PCI_BRIDGE_RESOURCES; idx < PCI_NUM_RESOURCES; idx++) {
>                                 r = &dev->resource[idx];
> -                               if (!r->start)
> +                               if (!r->flags)
>                                         continue;
>                                 pr = pci_find_parent_resource(dev, r);
> -                               if (!pr || request_resource(pr, r) < 0)
> +                               if (!r->start || !pr || request_resource(pr, r) < 0) {
>                                         printk(KERN_ERR "PCI: Cannot allocate resource region %d of bridge %s\n", idx, pci_name(dev));
> +                                       /* Something is wrong with the region.
> +                                          Invalidate the resource to prevent child
> +                                          resource allocations in this range. */
> +                                       r->flags = 0;
> +                               }
>                         }
>                 }
>                 pcibios_allocate_bus_resources(&bus->children);
> @@ -227,7 +232,7 @@ int pcibios_enable_resources(struct pci_
> 
>         pci_read_config_word(dev, PCI_COMMAND, &cmd);
>         old_cmd = cmd;
> -       for(idx=0; idx<6; idx++) {
> +       for(idx = 0; idx < PCI_NUM_RESOURCES; idx++) {
>                 /* Only set up the requested stuff */
>                 if (!(mask & (1<<idx)))
>                         continue;
> --- a/drivers/pci/setup-bus.c
> +++ b/drivers/pci/setup-bus.c
> @@ -273,6 +273,8 @@ find_free_bus_resource(struct pci_bus *b
> 
>         for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) {
>                 r = bus->resource[i];
> +               if (r == &ioport_resource || r == &iomem_resource)
> +                       continue;
>                 if (r && (r->flags & type_mask) == type && !r->parent)
>                         return r;
>         }
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 


-- 
Jon Smirl
jonsmirl@gmail.com

  reply	other threads:[~2005-07-07  1:28 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-06 13:47 2.6.13-rc2 hangs at boot Tero Roponen
2005-07-07  1:27 ` Jon Smirl [this message]
2005-07-07  9:59   ` Ivan Kokshaysky
2005-07-07 10:33     ` Tero Roponen
2005-07-07 12:31       ` Ivan Kokshaysky
2005-07-07 12:47         ` Tero Roponen
2005-07-07 13:41           ` Ivan Kokshaysky
2005-07-07 13:53             ` Tero Roponen
2005-07-07 14:13             ` Tero Roponen
2005-07-08  6:28               ` Ivan Kokshaysky
2005-07-08  7:57                 ` [SOLVED] " Tero Roponen
2005-07-08  9:19                   ` Ivan Kokshaysky
2005-07-08  9:38                     ` Tero Roponen
2005-07-08  9:45                       ` Ivan Kokshaysky
2005-07-07 13:59     ` Jon Smirl
     [not found]   ` <20050728233408.550939d4.akpm@osdl.org>
2005-07-29  8:09     ` 2.6.14-rc4: dma_timer_expiry [was 2.6.13-rc2 hangs at boot] Tero Roponen
2005-07-29  8:24       ` Andrew Morton
2005-07-29  8:35         ` Tero Roponen
2005-07-29  9:39           ` Andrew Morton
2005-08-01  7:22             ` Ivan Kokshaysky
2005-08-01  7:42               ` Tero Roponen
2005-08-04 20:49   ` 2.6.13-rc2 hangs at boot Andrew Morton
  -- strict thread matches above, loose matches on Subject: below --
2005-07-07 13:11 Mikael Pettersson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9e47339105070618273dfb6ff8@mail.gmail.com \
    --to=jonsmirl@gmail.com \
    --cc=gregkh@suse.de \
    --cc=ink@jurassic.park.msu.ru \
    --cc=linux-kernel@vger.kernel.org \
    --cc=teanropo@cc.jyu.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.