[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH RFC PKS/PMEM 47/58] drivers/mtd: Utilize new kmap_thread()



From: Ira Weiny <ira.weiny@xxxxxxxxx>

These kmap() calls are localized to a single thread.  To avoid the over
head of global PKRS updates use the new kmap_thread() call.

Cc: Miquel Raynal <miquel.raynal@xxxxxxxxxxx>
Cc: Richard Weinberger <richard@xxxxxx>
Cc: Vignesh Raghavendra <vigneshr@xxxxxx>
Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
---
 drivers/mtd/mtd_blkdevs.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c
index 0c05f77f9b21..4b18998273fa 100644
--- a/drivers/mtd/mtd_blkdevs.c
+++ b/drivers/mtd/mtd_blkdevs.c
@@ -88,14 +88,14 @@ static blk_status_t do_blktrans_request(struct 
mtd_blktrans_ops *tr,
                        return BLK_STS_IOERR;
                return BLK_STS_OK;
        case REQ_OP_READ:
-               buf = kmap(bio_page(req->bio)) + bio_offset(req->bio);
+               buf = kmap_thread(bio_page(req->bio)) + bio_offset(req->bio);
                for (; nsect > 0; nsect--, block++, buf += tr->blksize) {
                        if (tr->readsect(dev, block, buf)) {
-                               kunmap(bio_page(req->bio));
+                               kunmap_thread(bio_page(req->bio));
                                return BLK_STS_IOERR;
                        }
                }
-               kunmap(bio_page(req->bio));
+               kunmap_thread(bio_page(req->bio));
                rq_flush_dcache_pages(req);
                return BLK_STS_OK;
        case REQ_OP_WRITE:
@@ -103,14 +103,14 @@ static blk_status_t do_blktrans_request(struct 
mtd_blktrans_ops *tr,
                        return BLK_STS_IOERR;
 
                rq_flush_dcache_pages(req);
-               buf = kmap(bio_page(req->bio)) + bio_offset(req->bio);
+               buf = kmap_thread(bio_page(req->bio)) + bio_offset(req->bio);
                for (; nsect > 0; nsect--, block++, buf += tr->blksize) {
                        if (tr->writesect(dev, block, buf)) {
-                               kunmap(bio_page(req->bio));
+                               kunmap_thread(bio_page(req->bio));
                                return BLK_STS_IOERR;
                        }
                }
-               kunmap(bio_page(req->bio));
+               kunmap_thread(bio_page(req->bio));
                return BLK_STS_OK;
        default:
                return BLK_STS_IOERR;
-- 
2.28.0.rc0.12.gb6a658bd00c9




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.