@@ -148,7 +148,7 @@ static void *z_erofs_lz4_handle_overlap(struct z_erofs_lz4_decompress_ctx *ctx,
148
148
* maptype = 0 ;
149
149
return inpage ;
150
150
}
151
- kunmap_atomic (inpage );
151
+ kunmap_local (inpage );
152
152
might_sleep ();
153
153
src = erofs_vm_map_ram (rq -> in , ctx -> inpages );
154
154
if (!src )
@@ -162,7 +162,7 @@ static void *z_erofs_lz4_handle_overlap(struct z_erofs_lz4_decompress_ctx *ctx,
162
162
src = erofs_get_pcpubuf (ctx -> inpages );
163
163
if (!src ) {
164
164
DBG_BUGON (1 );
165
- kunmap_atomic (inpage );
165
+ kunmap_local (inpage );
166
166
return ERR_PTR (- EFAULT );
167
167
}
168
168
@@ -173,9 +173,9 @@ static void *z_erofs_lz4_handle_overlap(struct z_erofs_lz4_decompress_ctx *ctx,
173
173
min_t (unsigned int , total , PAGE_SIZE - * inputmargin );
174
174
175
175
if (!inpage )
176
- inpage = kmap_atomic (* in );
176
+ inpage = kmap_local_page (* in );
177
177
memcpy (tmp , inpage + * inputmargin , page_copycnt );
178
- kunmap_atomic (inpage );
178
+ kunmap_local (inpage );
179
179
inpage = NULL ;
180
180
tmp += page_copycnt ;
181
181
total -= page_copycnt ;
@@ -214,7 +214,7 @@ static int z_erofs_lz4_decompress_mem(struct z_erofs_lz4_decompress_ctx *ctx,
214
214
int ret , maptype ;
215
215
216
216
DBG_BUGON (* rq -> in == NULL );
217
- headpage = kmap_atomic (* rq -> in );
217
+ headpage = kmap_local_page (* rq -> in );
218
218
219
219
/* LZ4 decompression inplace is only safe if zero_padding is enabled */
220
220
if (erofs_sb_has_zero_padding (EROFS_SB (rq -> sb ))) {
@@ -223,7 +223,7 @@ static int z_erofs_lz4_decompress_mem(struct z_erofs_lz4_decompress_ctx *ctx,
223
223
min_t (unsigned int , rq -> inputsize ,
224
224
rq -> sb -> s_blocksize - rq -> pageofs_in ));
225
225
if (ret ) {
226
- kunmap_atomic (headpage );
226
+ kunmap_local (headpage );
227
227
return ret ;
228
228
}
229
229
may_inplace = !((rq -> pageofs_in + rq -> inputsize ) &
@@ -261,7 +261,7 @@ static int z_erofs_lz4_decompress_mem(struct z_erofs_lz4_decompress_ctx *ctx,
261
261
}
262
262
263
263
if (maptype == 0 ) {
264
- kunmap_atomic (headpage );
264
+ kunmap_local (headpage );
265
265
} else if (maptype == 1 ) {
266
266
vm_unmap_ram (src , ctx -> inpages );
267
267
} else if (maptype == 2 ) {
@@ -289,7 +289,7 @@ static int z_erofs_lz4_decompress(struct z_erofs_decompress_req *rq,
289
289
/* one optimized fast path only for non bigpcluster cases yet */
290
290
if (ctx .inpages == 1 && ctx .outpages == 1 && !rq -> inplace_io ) {
291
291
DBG_BUGON (!* rq -> out );
292
- dst = kmap_atomic (* rq -> out );
292
+ dst = kmap_local_page (* rq -> out );
293
293
dst_maptype = 0 ;
294
294
goto dstmap_out ;
295
295
}
@@ -311,7 +311,7 @@ static int z_erofs_lz4_decompress(struct z_erofs_decompress_req *rq,
311
311
dstmap_out :
312
312
ret = z_erofs_lz4_decompress_mem (& ctx , dst + rq -> pageofs_out );
313
313
if (!dst_maptype )
314
- kunmap_atomic (dst );
314
+ kunmap_local (dst );
315
315
else if (dst_maptype == 2 )
316
316
vm_unmap_ram (dst , ctx .outpages );
317
317
return ret ;
0 commit comments