From: Jes Sorensen Date: Tue, 5 May 2015 22:36:49 +0000 (-0400) Subject: staging: unisys: Eliminate visor_memregion_create() X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=aefebaa5bc6a22674adda07e001c5c8204ee608f;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git staging: unisys: Eliminate visor_memregion_create() Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- 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) {