From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from outbound2-dub-R.bigfish.com (outbound-dub.frontbridge.com [213.199.154.16]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.bigfish.com", Issuer "*.bigfish.com" (not verified)) by ozlabs.org (Postfix) with ESMTP id 7DF2EDE3E5 for ; Sat, 27 Jan 2007 14:08:30 +1100 (EST) Message-ID: <45BAC20A.8040107@am.sony.com> Date: Fri, 26 Jan 2007 19:07:54 -0800 From: Geoff Levand MIME-Version: 1.0 To: Paul Mackerras Subject: [PATCH 4/16] ps3: system bus minor mmio fix Content-Type: text/plain; charset=UTF-8 Cc: linuxppc-dev@ozlabs.org List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Benjamin Herrenschmidt 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. Fixes modprobe/rmmod of some drivers. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Geoff Levand Acked-by: Arnd Bergmann --- 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; }