lkml.org 
[lkml]   [2001]   [Aug]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] PCI probe status cleanup
All,

Attached is a very small patch against 2.4.8, which I have been sending for
a while. It merely clears the Master Abort bit on a PCI bridge when a
failed probe occurs.

If there is any reason this can't go into the next 2.4.x release, please
let me know. It has been in use here for months.

Tim
--
Tim Hockin
Systems Software Engineer
Sun Microsystems, Cobalt Server Appliances
thockin@sun.comdiff -ruN dist+patches-2.4.8/drivers/pci/pci.c cobalt-2.4.8/drivers/pci/pci.c
--- dist+patches-2.4.8/drivers/pci/pci.c Wed Jul 4 09:41:34 2001
+++ cobalt-2.4.8/drivers/pci/pci.c Mon Aug 13 16:42:12 2001
@@ -1232,8 +1236,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:57    [W:2.612 / U:0.032 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site