All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Ivan Kokshaysky <ink@jurassic.park.msu.ru>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Richard Henderson <rth@twiddle.net>,
	Chuck Ebbert <cebbert@redhat.com>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Daniel Ritz <daniel.ritz@gmx.ch>, Greg KH <greg@kroah.com>
Subject: Re: PCI resource problems caused by improper address rounding
Date: Sat, 22 Dec 2007 01:20:06 -0800	[thread overview]
Message-ID: <20071222012006.39249396.akpm@linux-foundation.org> (raw)
In-Reply-To: <20071222011218.0a5cfa42.akpm@linux-foundation.org>

On Sat, 22 Dec 2007 01:12:18 -0800 Andrew Morton <akpm@linux-foundation.org> wrote:

> On Thu, 20 Dec 2007 11:46:16 +0300 Ivan Kokshaysky <ink@jurassic.park.msu.ru> wrote:
> 
> > PCI: do respect full 64-bit address for bridge prefetch window
> > 
> > Prevent the prefetch window from being programmed with a bogus address
> > when its respective resource gets allocated above the 4G mark.
> > 
> > Note that we cannot yet guarantee correct resource allocations
> > above 4G, though it might work in some simple cases.
> > 
> 
> So.. did we agree that this patch is good to go?

Oh, I see Greg merged a differnet patch.

> > --- a/drivers/pci/setup-bus.c
> > +++ b/drivers/pci/setup-bus.c
> > @@ -208,8 +208,11 @@ pci_setup_bridge(struct pci_bus *bus)
> >  	}
> >  	pci_write_config_dword(bridge, PCI_PREF_MEMORY_BASE, l);
> >  
> > -	/* Clear out the upper 32 bits of PREF base. */
> > -	pci_write_config_dword(bridge, PCI_PREF_BASE_UPPER32, 0);
> > +	/* Set up the upper 32 bits of PREF base/limit. */
> > +	l = region.start >> 16 >> 16;
> 
> We have the little upper_32_bits() helper for this.
> 

Which could use this.

--- a/drivers/pci/setup-bus.c~gregkh-pci-pci-fix-bus-resource-assignment-on-32-bits-with-64b-resources-cleanup
+++ a/drivers/pci/setup-bus.c
@@ -206,10 +206,8 @@ pci_setup_bridge(struct pci_bus *bus)
 	if (bus->resource[2]->flags & IORESOURCE_PREFETCH) {
 		l = (region.start >> 16) & 0xfff0;
 		l |= region.end & 0xfff00000;
-#ifdef CONFIG_RESOURCES_64BIT
-		bu = region.start >> 32;
-		lu = region.end >> 32;
-#endif
+		bu = upper_32_bits(region.start);
+		lu = upper_32_bits(region.end);
 		DBG(KERN_INFO "  PREFETCH window: 0x%016llx-0x%016llx\n",
 		    (unsigned long long)region.start,
 		    (unsigned long long)region.end);


  reply	other threads:[~2007-12-22  9:21 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-18  0:25 PCI resource problems caused by improper address rounding Chuck Ebbert
2007-12-18  0:57 ` Linus Torvalds
2007-12-18 17:34   ` Chuck Ebbert
2007-12-18 18:21     ` Linus Torvalds
2007-12-18 20:22       ` Richard Henderson
2007-12-18 21:09         ` Linus Torvalds
2007-12-18 21:46           ` Chuck Ebbert
2007-12-18 21:56             ` Linus Torvalds
2007-12-18 22:17             ` Richard Henderson
2007-12-18 21:51           ` Richard Henderson
2007-12-18 22:31             ` Linus Torvalds
2007-12-19  1:38               ` Linus Torvalds
2007-12-20 21:52                 ` Richard Henderson
2007-12-20 22:24                   ` Linus Torvalds
2007-12-21  0:39                     ` Richard Henderson
2007-12-21  1:00                       ` Linus Torvalds
2007-12-21  2:28                     ` Benjamin Herrenschmidt
2007-12-18 22:16           ` Keith Packard
2007-12-19  0:29           ` Bjorn Helgaas
2007-12-18 21:23         ` Ivan Kokshaysky
2007-12-18 21:46           ` Linus Torvalds
2007-12-20  8:46             ` Ivan Kokshaysky
2007-12-20 21:21               ` Benjamin Herrenschmidt
2007-12-22  9:12               ` Andrew Morton
2007-12-22  9:20                 ` Andrew Morton [this message]
2007-12-20 21:10         ` Benjamin Herrenschmidt
2007-12-22  9:22 ` Andrew Morton
     [not found] <fa.WmGIH8th8MfmciABVSBi6whxeFE@ifi.uio.no>
     [not found] ` <fa.Obg5E3fyax+MaF94//uo40q/Zyk@ifi.uio.no>
     [not found]   ` <fa./6K5nXEIpws4VU8HtJhQjF4AoGg@ifi.uio.no>
     [not found]     ` <fa.V82IIxMkW3eu+9B44NfoyYYQDP4@ifi.uio.no>
     [not found]       ` <fa.DM9AyNQQtam66XpKVeXeqS639os@ifi.uio.no>
     [not found]         ` <fa.f5O3U527Rv8DNk05hDFRjdCaeFE@ifi.uio.no>
2007-12-19  0:11           ` Robert Hancock
2007-12-19  0:55             ` Chuck Ebbert
2007-12-19  1:12               ` Richard Henderson
2007-12-19  3:12                 ` Linus Torvalds
     [not found]           ` <fa.PJGSMm4TIW6lRYng/jDqooIvj8U@ifi.uio.no>
     [not found]             ` <fa.0UHHdYi5zqyJ2xOPhNk/BhJkxYM@ifi.uio.no>
2007-12-19  0:18               ` Robert Hancock
2007-12-19  0:38   ` Robert Hancock

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=20071222012006.39249396.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=cebbert@redhat.com \
    --cc=daniel.ritz@gmx.ch \
    --cc=greg@kroah.com \
    --cc=ink@jurassic.park.msu.ru \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rth@twiddle.net \
    --cc=torvalds@linux-foundation.org \
    /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.