drivers/scsi/ipr.c: In function `ipr_worker_thread': drivers/scsi/ipr.c:1804: too few arguments to function `kref_put' drivers/scsi/ipr.c: In function `ipr_read_dump': drivers/scsi/ipr.c:2407: too few arguments to function `kref_put' drivers/scsi/ipr.c:2457: too few arguments to function `kref_put' drivers/scsi/ipr.c: In function `ipr_alloc_dump': drivers/scsi/ipr.c:2509: too many arguments to function `kref_init' drivers/scsi/ipr.c: In function `ipr_free_dump': drivers/scsi/ipr.c:2556: too few arguments to function `kref_put' Signed-off-by: Andrew Morton --- 25-power4-akpm/drivers/scsi/ipr.c | 64 +++++++++++++++++++------------------- 1 files changed, 32 insertions(+), 32 deletions(-) diff -puN drivers/scsi/ipr.c~ipr-build-fix drivers/scsi/ipr.c --- 25-power4/drivers/scsi/ipr.c~ipr-build-fix 2004-08-15 23:38:41.995270824 -0700 +++ 25-power4-akpm/drivers/scsi/ipr.c 2004-08-15 23:40:17.214795256 -0700 @@ -1770,6 +1770,33 @@ static void ipr_get_ioa_dump(struct ipr_ #endif /** + * ipr_release_dump - Free adapter dump memory + * @kref: kref struct + * + * Return value: + * nothing + **/ +static void ipr_release_dump(struct kref *kref) +{ + struct ipr_dump *dump = container_of(kref,struct ipr_dump,kref); + struct ipr_ioa_cfg *ioa_cfg = dump->ioa_cfg; + unsigned long lock_flags = 0; + int i; + + ENTER; + spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); + ioa_cfg->dump = NULL; + ioa_cfg->sdt_state = INACTIVE; + spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); + + for (i = 0; i < dump->ioa_dump.next_page_index; i++) + free_page((unsigned long) dump->ioa_dump.ioa_data[i]); + + kfree(dump); + LEAVE; +} + +/** * ipr_worker_thread - Worker thread * @data: ioa config struct * @@ -1801,7 +1828,7 @@ static void ipr_worker_thread(void *data } spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); ipr_get_ioa_dump(ioa_cfg, dump); - kref_put(&dump->kref); + kref_put(&dump->kref, ipr_release_dump); spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); if (ioa_cfg->sdt_state == DUMP_OBTAINED) @@ -2404,7 +2431,7 @@ static ssize_t ipr_read_dump(struct kobj spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); if (off > dump->driver_dump.hdr.len) { - kref_put(&dump->kref); + kref_put(&dump->kref, ipr_release_dump); return 0; } @@ -2454,38 +2481,11 @@ static ssize_t ipr_read_dump(struct kobj count -= len; } - kref_put(&dump->kref); + kref_put(&dump->kref, ipr_release_dump); return rc; } /** - * ipr_release_dump - Free adapter dump memory - * @kref: kref struct - * - * Return value: - * nothing - **/ -static void ipr_release_dump(struct kref *kref) -{ - struct ipr_dump *dump = container_of(kref,struct ipr_dump,kref); - struct ipr_ioa_cfg *ioa_cfg = dump->ioa_cfg; - unsigned long lock_flags = 0; - int i; - - ENTER; - spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); - ioa_cfg->dump = NULL; - ioa_cfg->sdt_state = INACTIVE; - spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); - - for (i = 0; i < dump->ioa_dump.next_page_index; i++) - free_page((unsigned long) dump->ioa_dump.ioa_data[i]); - - kfree(dump); - LEAVE; -} - -/** * ipr_alloc_dump - Prepare for adapter dump * @ioa_cfg: ioa config struct * @@ -2506,7 +2506,7 @@ static int ipr_alloc_dump(struct ipr_ioa } memset(dump, 0, sizeof(struct ipr_dump)); - kref_init(&dump->kref, ipr_release_dump); + kref_init(&dump->kref); dump->ioa_cfg = ioa_cfg; spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); @@ -2553,7 +2553,7 @@ static int ipr_free_dump(struct ipr_ioa_ ioa_cfg->dump = NULL; spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); - kref_put(&dump->kref); + kref_put(&dump->kref, ipr_release_dump); LEAVE; return 0; _