[openfabrics-ewg] FW: Mstflint - not working on ppc64 andwhendriver is notloaded on AMD

Michael S. Tsirkin mst at mellanox.co.il
Sun Oct 1 00:50:48 PDT 2006


Quoting r. Tseng-Hui (Frank) Lin <thlin at us.ibm.com>:
> Subject: RE: FW: Mstflint - not working on ppc64 andwhendriver is notloaded on AMD
> 
> The ppc64 problem is actually in pci_64.c. Here is the patch:
> 
> ============ cut here =============
> diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
> index 4c4449b..490403c 100644
> --- a/arch/powerpc/kernel/pci_64.c
> +++ b/arch/powerpc/kernel/pci_64.c
> @@ -734,9 +734,7 @@ static struct resource *__pci_mmap_make_
>  	if (hose == 0)
>  		return NULL;		/* should never happen */
>  
> -	/* If memory, add on the PCI bridge address offset */
>  	if (mmap_state == pci_mmap_mem) {
> -		*offset += hose->pci_mem_offset;
>  		res_bit = IORESOURCE_MEM;
>  	} else {
>  		io_offset = (unsigned long)hose->io_base_virt - pci_io_base;
> ============= end cut =============
> 
> The mmap() system call on resource0 does not work on ppc64 without this
> patch. PowerMAC G5 got away with this because its hose->pci_mem_offset
> was set to 0.
> 
> The fix is made on 8/21. It may be able to make it into 2.6.19. But it
> certainly won't get into SLES10, SLES9-SP3, or REHL4-U4 which have
> already been released. 
> 
> To cover both cases with and without the fix, my patch try to
> mmap /sys/bus/pci/..../resource0 first. It it failed it tries
> mmap /proc/bus/pci/.... If it failed again, we have no choice but fall
> back to use PCI config space.

OK, so for OFED just mmap from /proc/bus/pci/ should be sufficient 
work-around - it will make things work when driver is loaded.
Correct?

-- 
MST




More information about the ewg mailing list