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

[PATCH RFC PKS/PMEM 08/58] drivers/firmware_loader: Utilize new kmap_thread()



From: Ira Weiny <ira.weiny@xxxxxxxxx>

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

Cc: Luis Chamberlain <mcgrof@xxxxxxxxxx>
Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
---
 drivers/base/firmware_loader/fallback.c | 4 ++--
 drivers/base/firmware_loader/main.c     | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/base/firmware_loader/fallback.c 
b/drivers/base/firmware_loader/fallback.c
index 283ca2de76d4..22dea9ba7a37 100644
--- a/drivers/base/firmware_loader/fallback.c
+++ b/drivers/base/firmware_loader/fallback.c
@@ -322,14 +322,14 @@ static void firmware_rw(struct fw_priv *fw_priv, char 
*buffer,
                int page_ofs = offset & (PAGE_SIZE-1);
                int page_cnt = min_t(size_t, PAGE_SIZE - page_ofs, count);
 
-               page_data = kmap(fw_priv->pages[page_nr]);
+               page_data = kmap_thread(fw_priv->pages[page_nr]);
 
                if (read)
                        memcpy(buffer, page_data + page_ofs, page_cnt);
                else
                        memcpy(page_data + page_ofs, buffer, page_cnt);
 
-               kunmap(fw_priv->pages[page_nr]);
+               kunmap_thread(fw_priv->pages[page_nr]);
                buffer += page_cnt;
                offset += page_cnt;
                count -= page_cnt;
diff --git a/drivers/base/firmware_loader/main.c 
b/drivers/base/firmware_loader/main.c
index 63b9714a0154..cc884c9f8742 100644
--- a/drivers/base/firmware_loader/main.c
+++ b/drivers/base/firmware_loader/main.c
@@ -409,11 +409,11 @@ static int fw_decompress_xz_pages(struct device *dev, 
struct fw_priv *fw_priv,
 
                /* decompress onto the new allocated page */
                page = fw_priv->pages[fw_priv->nr_pages - 1];
-               xz_buf.out = kmap(page);
+               xz_buf.out = kmap_thread(page);
                xz_buf.out_pos = 0;
                xz_buf.out_size = PAGE_SIZE;
                xz_ret = xz_dec_run(xz_dec, &xz_buf);
-               kunmap(page);
+               kunmap_thread(page);
                fw_priv->size += xz_buf.out_pos;
                /* partial decompression means either end or error */
                if (xz_buf.out_pos != PAGE_SIZE)
-- 
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®.