diff options
author | Dmitry Shmidt <dimitrysh@google.com> | 2016-11-15 17:02:38 -0800 |
---|---|---|
committer | Dmitry Shmidt <dimitrysh@google.com> | 2016-11-15 17:02:38 -0800 |
commit | 324e88de4aba3b6d4e0453fb2adb094e4a53754c (patch) | |
tree | f961e8c1eb2bcdefec062e0b86d4b5f307caee1e /drivers/misc/genwqe/card_utils.c | |
parent | 93e3336909d88c3afca7ccdc8b009c435f37a70a (diff) | |
parent | 4dab3e4df9944782cb3c229bd37f5ea8b5f52bac (diff) |
Merge tag 'v4.4.32' into android-4.4.y
This is the 4.4.32 stable release
Change-Id: I5028402eadfcf055ac44a5e67abc6da75b2068b3
Diffstat (limited to 'drivers/misc/genwqe/card_utils.c')
-rw-r--r-- | drivers/misc/genwqe/card_utils.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/misc/genwqe/card_utils.c b/drivers/misc/genwqe/card_utils.c index 222367cc8c81..524660510599 100644 --- a/drivers/misc/genwqe/card_utils.c +++ b/drivers/misc/genwqe/card_utils.c @@ -352,17 +352,27 @@ int genwqe_alloc_sync_sgl(struct genwqe_dev *cd, struct genwqe_sgl *sgl, if (copy_from_user(sgl->lpage, user_addr + user_size - sgl->lpage_size, sgl->lpage_size)) { rc = -EFAULT; - goto err_out1; + goto err_out2; } } return 0; + err_out2: + __genwqe_free_consistent(cd, PAGE_SIZE, sgl->lpage, + sgl->lpage_dma_addr); + sgl->lpage = NULL; + sgl->lpage_dma_addr = 0; err_out1: __genwqe_free_consistent(cd, PAGE_SIZE, sgl->fpage, sgl->fpage_dma_addr); + sgl->fpage = NULL; + sgl->fpage_dma_addr = 0; err_out: __genwqe_free_consistent(cd, sgl->sgl_size, sgl->sgl, sgl->sgl_dma_addr); + sgl->sgl = NULL; + sgl->sgl_dma_addr = 0; + sgl->sgl_size = 0; return -ENOMEM; } |