lkml.org 
[lkml]   [2005]   [Sep]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 10/11] Fix up more strange byte writes to the PCI_ROM_ADDRESS config word
    -stable review patch.  If anyone has any objections, please let us know.
    ------------------

    It's a dword thing, and the value we write is a dword. Doing a byte
    write to it is nonsensical, and writes only the low byte, which only
    contains the enable bit. So we enable a nonsensical address (usually
    zero), which causes the controller no end of problems.

    Trivial fix, but nasty to find.

    Signed-off-by: Linus Torvalds <torvalds@osdl.org>
    Signed-off-by: Chris Wright <chrisw@osdl.org>
    ---
    drivers/ide/pci/cmd64x.c | 2 +-
    drivers/ide/pci/hpt34x.c | 2 +-
    2 files changed, 2 insertions(+), 2 deletions(-)

    Index: linux-2.6.13.y/drivers/ide/pci/cmd64x.c
    ===================================================================
    --- linux-2.6.13.y.orig/drivers/ide/pci/cmd64x.c
    +++ linux-2.6.13.y/drivers/ide/pci/cmd64x.c
    @@ -608,7 +608,7 @@ static unsigned int __devinit init_chips

    #ifdef __i386__
    if (dev->resource[PCI_ROM_RESOURCE].start) {
    - pci_write_config_byte(dev, PCI_ROM_ADDRESS, dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE);
    + pci_write_config_dword(dev, PCI_ROM_ADDRESS, dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE);
    printk(KERN_INFO "%s: ROM enabled at 0x%08lx\n", name, dev->resource[PCI_ROM_RESOURCE].start);
    }
    #endif
    Index: linux-2.6.13.y/drivers/ide/pci/hpt34x.c
    ===================================================================
    --- linux-2.6.13.y.orig/drivers/ide/pci/hpt34x.c
    +++ linux-2.6.13.y/drivers/ide/pci/hpt34x.c
    @@ -173,7 +173,7 @@ static unsigned int __devinit init_chips

    if (cmd & PCI_COMMAND_MEMORY) {
    if (pci_resource_start(dev, PCI_ROM_RESOURCE)) {
    - pci_write_config_byte(dev, PCI_ROM_ADDRESS,
    + pci_write_config_dword(dev, PCI_ROM_ADDRESS,
    dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE);
    printk(KERN_INFO "HPT345: ROM enabled at 0x%08lx\n",
    dev->resource[PCI_ROM_RESOURCE].start);
    --
    -
    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/

    \
     
     \ /
      Last update: 2005-09-15 03:11    [W:0.022 / U:61.052 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site