[PATCH] PCI PHB unit id detection interface change

Olaf Hering olh at suse.de
Thu Jun 17 22:55:03 EST 2004


 On Thu, Jun 17, Olaf Hering wrote:

>
>  On Fri, Jun 11, linas at austin.ibm.com wrote:
>
> > @@ -456,10 +493,7 @@ unsigned long __init find_and_init_phbs(
> >  	unsigned int *opprop;
> >  	struct device_node *root = of_find_node_by_path("/");
> >
> > -	read_pci_config = rtas_token("read-pci-config");
> > -	write_pci_config = rtas_token("write-pci-config");
> > -	ibm_read_pci_config = rtas_token("ibm,read-pci-config");
> > -	ibm_write_pci_config = rtas_token("ibm,write-pci-config");
> > +	init_pci_config_tokens();
> >
> >  	if (naca->interrupt_controller == IC_OPEN_PIC) {
> >  		opprop = (unsigned int *)get_property(root,
>
> > @@ -709,24 +713,16 @@ void __init eeh_init(void)
> >  	}
> >
> >  	/* Enable EEH for all adapters.  Note that eeh requires buid's */
> > +	init_pci_config_tokens();
> >  	for (phb = of_find_node_by_name(NULL, "pci"); phb;
> >  	     phb = of_find_node_by_name(phb, "pci")) {
>
> this is broken. You rely on EEH being available. all power3 users will
> have a problem now.

this one should work better.


--- ./arch/ppc64/kernel/eeh.c~	2004-06-17 10:53:59.876818306 +0000
+++ ./arch/ppc64/kernel/eeh.c	2004-06-17 12:05:04.798698425 +0000
@@ -679,6 +679,8 @@ void __init eeh_init(void)
 		printk(KERN_WARNING "EEH: RTAS not found !\n");
 		return;
 	}
+
+	init_pci_config_tokens();

 	ibm_set_eeh_option = rtas_token("ibm,set-eeh-option");
 	ibm_set_slot_reset = rtas_token("ibm,set-slot-reset");
@@ -707,7 +709,6 @@ void __init eeh_init(void)
 	}

 	/* Enable EEH for all adapters.  Note that eeh requires buid's */
-	init_pci_config_tokens();
 	for (phb = of_find_node_by_name(NULL, "pci"); phb;
 	     phb = of_find_node_by_name(phb, "pci")) {
 		unsigned long buid;

--
USB is for mice, FireWire is for men!

sUse lINUX ag, nÜRNBERG

** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc64-dev mailing list