drivers/block/xen-blkback/blkback.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
From: Peng Hao <flyingpeng@tencent.com>
From: Peng Hao <flyingpeng@tencent.com>
Use kmap_local_page() instead of kmap_atomic() which has been
deprecated.
Signed-off-by: Peng Hao <flyingpeng@tencent.com>
---
drivers/block/xen-blkback/blkback.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
index 4defd7f387c7..cce534f43292 100644
--- a/drivers/block/xen-blkback/blkback.c
+++ b/drivers/block/xen-blkback/blkback.c
@@ -937,8 +937,8 @@ static int xen_blkbk_parse_indirect(struct blkif_request *req,
if ((n % SEGS_PER_INDIRECT_FRAME) == 0) {
/* Map indirect segments */
if (segments)
- kunmap_atomic(segments);
- segments = kmap_atomic(pages[n/SEGS_PER_INDIRECT_FRAME]->page);
+ kunmap_local(segments);
+ segments = kmap_local_page(pages[n/SEGS_PER_INDIRECT_FRAME]->page);
}
i = n % SEGS_PER_INDIRECT_FRAME;
--
2.31.1
On Wed, Mar 06, 2024 at 01:15:48PM +0800, flyingpenghao@gmail.com wrote:
> From: Peng Hao <flyingpeng@tencent.com>
>
> From: Peng Hao <flyingpeng@tencent.com>
>
> Use kmap_local_page() instead of kmap_atomic() which has been
> deprecated.
>
> Signed-off-by: Peng Hao <flyingpeng@tencent.com>
> ---
> drivers/block/xen-blkback/blkback.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
> index 4defd7f387c7..cce534f43292 100644
> --- a/drivers/block/xen-blkback/blkback.c
> +++ b/drivers/block/xen-blkback/blkback.c
> @@ -937,8 +937,8 @@ static int xen_blkbk_parse_indirect(struct blkif_request *req,
> if ((n % SEGS_PER_INDIRECT_FRAME) == 0) {
> /* Map indirect segments */
> if (segments)
> - kunmap_atomic(segments);
> - segments = kmap_atomic(pages[n/SEGS_PER_INDIRECT_FRAME]->page);
> + kunmap_local(segments);
> + segments = kmap_local_page(pages[n/SEGS_PER_INDIRECT_FRAME]->page);
Don't you need to also switch to kunmap_local() then instead of
kunmap_atomic()?
Thanks, Roger.
On Wed, Mar 6, 2024 at 4:41 PM Roger Pau Monné <roger.pau@citrix.com> wrote:
>
> On Wed, Mar 06, 2024 at 01:15:48PM +0800, flyingpenghao@gmail.com wrote:
> > From: Peng Hao <flyingpeng@tencent.com>
> >
> > From: Peng Hao <flyingpeng@tencent.com>
> >
> > Use kmap_local_page() instead of kmap_atomic() which has been
> > deprecated.
> >
> > Signed-off-by: Peng Hao <flyingpeng@tencent.com>
> > ---
> > drivers/block/xen-blkback/blkback.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
> > index 4defd7f387c7..cce534f43292 100644
> > --- a/drivers/block/xen-blkback/blkback.c
> > +++ b/drivers/block/xen-blkback/blkback.c
> > @@ -937,8 +937,8 @@ static int xen_blkbk_parse_indirect(struct blkif_request *req,
> > if ((n % SEGS_PER_INDIRECT_FRAME) == 0) {
> > /* Map indirect segments */
> > if (segments)
> > - kunmap_atomic(segments);
> > - segments = kmap_atomic(pages[n/SEGS_PER_INDIRECT_FRAME]->page);
> > + kunmap_local(segments);
> > + segments = kmap_local_page(pages[n/SEGS_PER_INDIRECT_FRAME]->page);
>
> Don't you need to also switch to kunmap_local() then instead of
> kunmap_atomic()?
kmap_local() and kunmap_local() are paired.
I found that I missed a modification, I will re-issue patch v2
Thanks.
>
> Thanks, Roger.
© 2016 - 2026 Red Hat, Inc.