lkml.org 
[lkml]   [2001]   [Jul]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] PCI probing status cleanup
    Martin et al,

    Attached is a tiny patch that clears the master abort bit on bridges when
    probing PCI devices.

    Please let me know if there is any reason this would not be included in the
    mainline kernel.

    Thanks
    Tim

    --
    Tim Hockin
    Systems Software Engineer
    Sun Microsystems, Cobalt Server Appliances
    thockin@sun.comdiff -ruN dist-2.4.6/drivers/pci/pci.c cobalt-2.4.6/drivers/pci/pci.c
    --- dist-2.4.6/drivers/pci/pci.c Mon Jul 2 14:42:53 2001
    +++ cobalt-2.4.6/drivers/pci/pci.c Mon Jul 9 11:04:01 2001
    @@ -1229,8 +1233,19 @@
    return NULL;

    /* some broken boards return 0 or ~0 if a slot is empty: */
    - if (l == 0xffffffff || l == 0x00000000 || l == 0x0000ffff || l == 0xffff0000)
    + if (l == 0xffffffff || l == 0x00000000
    + || l == 0x0000ffff || l == 0xffff0000) {
    + /*
    + * host/pci and pci/pci bridges will set Received Master Abort
    + * (bit 13) on failed configuration access (happens when
    + * searching for devices). To be safe, clear the status
    + * register.
    + */
    + unsigned short st;
    + pci_read_config_word(temp, PCI_STATUS, &st);
    + pci_write_config_word(temp, PCI_STATUS, st);
    return NULL;
    + }

    dev = kmalloc(sizeof(*dev), GFP_KERNEL);
    if (!dev)
    \
     
     \ /
      Last update: 2005-03-22 12:56    [W:2.204 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site