On giovedì 29 dicembre 2022 23:04:46 CET Ira Weiny wrote: > kmap_local_page() requires kunmap_local() to unmap the mapping. In > addition memcpy_page() is provided to perform this common memcpy > pattern. > > Replace the kmap_local_page() and broken kunmap() with memcpy_page() > > Fixes: d406d26745ab ("cifs: skip alloc when request has no pages") > Cc: Paulo Alcantara <pc@xxxxxx> > Cc: Steve French <sfrench@xxxxxxxxx> > Cc: "Fabio M. De Francesco" <fmdefrancesco@xxxxxxxxx> > Cc: linux-cifs@xxxxxxxxxxxxxxx > Cc: samba-technical@xxxxxxxxxxxxxxx > Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx> > --- > fs/cifs/smb2ops.c | 9 ++------- > 1 file changed, 2 insertions(+), 7 deletions(-) > > diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c > index dc160de7a6de..0d7e9bcd9f34 100644 > --- a/fs/cifs/smb2ops.c > +++ b/fs/cifs/smb2ops.c > @@ -4488,17 +4488,12 @@ smb3_init_transform_rq(struct TCP_Server_Info *server, > int num_rqst, > > /* copy pages form the old */ > for (j = 0; j < npages; j++) { > - char *dst, *src; > unsigned int offset, len; > > rqst_page_get_length(new, j, &len, &offset); > > - dst = kmap_local_page(new->rq_pages[j]) + offset; > - src = kmap_local_page(old->rq_pages[j]) + offset; > - > - memcpy(dst, src, len); > - kunmap(new->rq_pages[j]); > - kunmap(old->rq_pages[j]); > + memcpy_page(new->rq_pages[j], offset, > + old->rq_pages[j], offset, len); > FWIW, it looks good to me... Reviewed-by: Fabio M. De Francesco Thanks, Fabio > } > } > > > --- > base-commit: 1b929c02afd37871d5afb9d498426f83432e71c2 > change-id: 20221229-cifs-kmap-6700dabafcdf > > Best regards, > -- > Ira Weiny <ira.weiny@xxxxxxxxx>