[PATCH 4/16] ps3: system bus minor mmio fix

Benjamin Herrenschmidt benh at kernel.crashing.org
Sun Jan 28 07:06:57 EST 2007


On Fri, 2007-01-26 at 19:07 -0800, Geoff Levand wrote:
> From: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> 
> Fix two minor bugs in the PS3 system bus mmio region code.  First, on error or
> when freeing a region, retain the bus_addr and len fields to allow subsequent
> calls to create the region.  Second, correct the region address argument to the
> lv1_unmap_device_mmio_region() call.

Note that I personally think that drivers/ps3 is a very wrong place for
the ps3 system bus. It should stay in arch/powerpc/platform/ps3

Ben.

> Fixes modprobe/rmmod of some drivers.
> 
> Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> Signed-off-by: Geoff Levand <geoffrey.levand at am.sony.com>
> Acked-by: Arnd Bergmann <arnd.bergmann at de.ibm.com>
> 
> ---
>  drivers/ps3/system-bus.c |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)
> 
> --- ps3-linux-dev.orig/drivers/ps3/system-bus.c
> +++ ps3-linux-dev/drivers/ps3/system-bus.c
> @@ -50,7 +50,7 @@ int ps3_mmio_region_create(struct ps3_mm
>  	if (result) {
>  		pr_debug("%s:%d: lv1_map_device_mmio_region failed: %s\n",
>  			__func__, __LINE__, ps3_result(result));
> -		r->lpar_addr = r->len = r->bus_addr = 0;
> +		r->lpar_addr = 0;
>  	}
>  
>  	dump_mmio_region(r);
> @@ -62,13 +62,13 @@ int ps3_free_mmio_region(struct ps3_mmio
>  	int result;
>  
>  	result = lv1_unmap_device_mmio_region(r->did.bus_id, r->did.dev_id,
> -		r->bus_addr);
> +		r->lpar_addr);
>  
>  	if (result)
>  		pr_debug("%s:%d: lv1_unmap_device_mmio_region failed: %s\n",
>  			__func__, __LINE__, ps3_result(result));
>  
> -	r->lpar_addr = r->len = r->bus_addr = 0;
> +	r->lpar_addr = 0;
>  	return result;
>  }
>  
> 
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev at ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev




More information about the Linuxppc-dev mailing list