diff options
author | Jes Sorensen <Jes.Sorensen@redhat.com> | 2015-05-05 18:36:49 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-05-08 15:27:28 +0200 |
commit | aefebaa5bc6a22674adda07e001c5c8204ee608f (patch) | |
tree | ea4403af4b69aa028dfdd190ce203589264b0d02 /drivers/staging | |
parent | 330782577e8c5c977aab1173088a59d3b19c4fce (diff) |
staging: unisys: Eliminate visor_memregion_create()
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/unisys/visorbus/visorchannel.c | 15 | ||||
-rw-r--r-- | drivers/staging/unisys/visorutil/memregion.h | 2 | ||||
-rw-r--r-- | drivers/staging/unisys/visorutil/memregion_direct.c | 22 |
3 files changed, 10 insertions, 29 deletions
diff --git a/drivers/staging/unisys/visorbus/visorchannel.c b/drivers/staging/unisys/visorbus/visorchannel.c index 150e3df89001..f278739514f7 100644 --- a/drivers/staging/unisys/visorbus/visorchannel.c +++ b/drivers/staging/unisys/visorbus/visorchannel.c @@ -57,9 +57,8 @@ visorchannel_create_guts(HOSTADDRESS physaddr, ulong channel_bytes, struct visorchannel *channel; int err; size_t size = sizeof(struct channel_header); - struct memregion *memregion; - channel = kmalloc(sizeof(*channel), GFP_KERNEL|__GFP_NORETRY); + channel = kzalloc(sizeof(*channel), GFP_KERNEL|__GFP_NORETRY); if (!channel) goto cleanup; @@ -67,11 +66,17 @@ visorchannel_create_guts(HOSTADDRESS physaddr, ulong channel_bytes, spin_lock_init(&channel->insert_lock); spin_lock_init(&channel->remove_lock); - /* prepare chan_hdr (abstraction to read/write channel memory) */ - memregion = visor_memregion_create(&channel->memregion, physaddr, size); + if (!request_mem_region(physaddr, size, MYDRVNAME)) + goto cleanup; - if (!memregion) + channel->memregion.mapped = ioremap_cache(physaddr, size); + if (!channel->memregion.mapped) { + release_mem_region(physaddr, size); goto cleanup; + } + + channel->memregion.physaddr = physaddr; + channel->memregion.nbytes = size; err = visor_memregion_read(&channel->memregion, 0, &channel->chan_hdr, sizeof(struct channel_header)); diff --git a/drivers/staging/unisys/visorutil/memregion.h b/drivers/staging/unisys/visorutil/memregion.h index 3826fe6c2446..cb3dbc50cd8e 100644 --- a/drivers/staging/unisys/visorutil/memregion.h +++ b/drivers/staging/unisys/visorutil/memregion.h @@ -29,8 +29,6 @@ struct memregion { void __iomem *mapped; }; -struct memregion *visor_memregion_create(struct memregion *memregion, - HOSTADDRESS physaddr, ulong nbytes); int visor_memregion_resize(struct memregion *memregion, ulong newsize); int visor_memregion_read(struct memregion *memregion, ulong offset, void *dest, ulong nbytes); diff --git a/drivers/staging/unisys/visorutil/memregion_direct.c b/drivers/staging/unisys/visorutil/memregion_direct.c index a575ecc5c3d7..0c7bed010c84 100644 --- a/drivers/staging/unisys/visorutil/memregion_direct.c +++ b/drivers/staging/unisys/visorutil/memregion_direct.c @@ -28,28 +28,6 @@ static int mapit(struct memregion *memregion); static void unmapit(struct memregion *memregion); -struct memregion * -visor_memregion_create(struct memregion *memregion, - HOSTADDRESS physaddr, ulong nbytes) -{ - struct memregion *rc = NULL; - - memregion->physaddr = physaddr; - memregion->nbytes = nbytes; - if (mapit(memregion)) { - rc = NULL; - goto cleanup; - } - rc = memregion; -cleanup: - if (rc == NULL) { - visor_memregion_destroy(memregion); - memregion = NULL; - } - return rc; -} -EXPORT_SYMBOL_GPL(visor_memregion_create); - static int mapit(struct memregion *memregion) { |