diff options
author | Alex Shi <alex.shi@linaro.org> | 2017-09-08 12:02:15 +0800 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2017-09-08 12:02:15 +0800 |
commit | 3e6346662641b8248d3c6cc97169420a10fe2138 (patch) | |
tree | 69b4bc11c34e75ff7957288107d3746d950c45c3 /crypto | |
parent | 1fd0e417c458234339415a3dbbe9a910a215fd86 (diff) | |
parent | f397aef40aba7dd9af66611d6d9b47e4d3c28c2f (diff) |
Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/algif_skcipher.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/crypto/algif_skcipher.c b/crypto/algif_skcipher.c index f5e9f9310b48..b3b0004ea8ac 100644 --- a/crypto/algif_skcipher.c +++ b/crypto/algif_skcipher.c @@ -86,8 +86,13 @@ static void skcipher_free_async_sgls(struct skcipher_async_req *sreq) } sgl = sreq->tsg; n = sg_nents(sgl); - for_each_sg(sgl, sg, n, i) - put_page(sg_page(sg)); + for_each_sg(sgl, sg, n, i) { + struct page *page = sg_page(sg); + + /* some SGs may not have a page mapped */ + if (page && atomic_read(&page->_count)) + put_page(page); + } kfree(sreq->tsg); } |