lkml.org 
[lkml]   [2007]   [Dec]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: PCI resource problems caused by improper address rounding
    On Tue, Dec 18, 2007 at 12:22:34PM -0800, Richard Henderson wrote:
    > On Tue, Dec 18, 2007 at 10:21:50AM -0800, Linus Torvalds wrote:
    > > ... and that would be an X server issue!).
    >
    > Of course, fixing the X server to *handle* 64-bit BARs is the correct
    > solution. I've no idea how involved that is, but I have a sneeking
    > suspicion that it uses that damned CARD32 datatype for everything.

    Doh. Let's fix the kernel first...

    Does this make any difference? (the patch is self explaining ;-)

    Ivan.

    --- a/drivers/pci/setup-bus.c
    +++ b/drivers/pci/setup-bus.c
    @@ -208,8 +208,9 @@ 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. */
    + l = region.start >> 16 >> 16;
    + pci_write_config_dword(bridge, PCI_PREF_BASE_UPPER32, l);

    pci_write_config_word(bridge, PCI_BRIDGE_CONTROL, bus->bridge_ctl);
    }

    \
     
     \ /
      Last update: 2007-12-18 22:31    [W:0.019 / U:32.388 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site