char: xillybus: use devm_add_action_or_reset

If devm_add_action() fails we are explicitly calling dma_unmap_single(),
pci_unmap_single() and kfree(). Lets use the helper
devm_add_action_or_reset() and return directly in case of error, as we
know that the cleanup function has been already called by the helper if
there was any error. At that same time remove the variable rc which
becomes unused now.

Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Sudip Mukherjee 2016-04-30 17:13:20 +01:00 committed by Greg Kroah-Hartman
parent ea37a6b8a0
commit bd83a4ab56
2 changed files with 2 additions and 19 deletions

View File

@ -81,7 +81,6 @@ static int xilly_map_single_of(struct xilly_endpoint *ep,
{ {
dma_addr_t addr; dma_addr_t addr;
struct xilly_mapping *this; struct xilly_mapping *this;
int rc;
this = kzalloc(sizeof(*this), GFP_KERNEL); this = kzalloc(sizeof(*this), GFP_KERNEL);
if (!this) if (!this)
@ -101,15 +100,7 @@ static int xilly_map_single_of(struct xilly_endpoint *ep,
*ret_dma_handle = addr; *ret_dma_handle = addr;
rc = devm_add_action(ep->dev, xilly_of_unmap, this); return devm_add_action_or_reset(ep->dev, xilly_of_unmap, this);
if (rc) {
dma_unmap_single(ep->dev, addr, size, direction);
kfree(this);
return rc;
}
return 0;
} }
static struct xilly_endpoint_hardware of_hw = { static struct xilly_endpoint_hardware of_hw = {

View File

@ -98,7 +98,6 @@ static int xilly_map_single_pci(struct xilly_endpoint *ep,
int pci_direction; int pci_direction;
dma_addr_t addr; dma_addr_t addr;
struct xilly_mapping *this; struct xilly_mapping *this;
int rc;
this = kzalloc(sizeof(*this), GFP_KERNEL); this = kzalloc(sizeof(*this), GFP_KERNEL);
if (!this) if (!this)
@ -120,14 +119,7 @@ static int xilly_map_single_pci(struct xilly_endpoint *ep,
*ret_dma_handle = addr; *ret_dma_handle = addr;
rc = devm_add_action(ep->dev, xilly_pci_unmap, this); return devm_add_action_or_reset(ep->dev, xilly_pci_unmap, this);
if (rc) {
pci_unmap_single(ep->pdev, addr, size, pci_direction);
kfree(this);
return rc;
}
return 0;
} }
static struct xilly_endpoint_hardware pci_hw = { static struct xilly_endpoint_hardware pci_hw = {