lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 25 Nov 2022 16:37:27 +0100 From: "Fabio M. De Francesco" <fmdefrancesco@...il.com> To: netdev@...r.kernel.org, Anirudh Venkataramanan <anirudh.venkataramanan@...el.com> Cc: Ira Weiny <ira.weiny@...el.com>, Anirudh Venkataramanan <anirudh.venkataramanan@...el.com>, Edward Cree <ecree.xilinx@...il.com>, Martin Habets <habetsm.xilinx@...il.com> Subject: Re: [PATCH v2 net-next 2/6] sfc: Use kmap_local_page() instead of kmap_atomic() On mercoledì 23 novembre 2022 21:52:15 CET Anirudh Venkataramanan wrote: > kmap_atomic() is being deprecated in favor of kmap_local_page(). Replace > kmap_atomic() and kunmap_atomic() with kmap_local_page() and kunmap_local() > respectively. > > Note that kmap_atomic() disables preemption and page-fault processing, but > kmap_local_page() doesn't. When converting uses of kmap_atomic(), one has > to check if the code being executed between the map/unmap implicitly > depends on page-faults and/or preemption being disabled. If yes, then code > to disable page-faults and/or preemption should also be added for > functional correctness. That however doesn't appear to be the case here, > so just kmap_local_page() is used. > > Also note that the page being mapped is not allocated by the driver, and so > the driver doesn't know if the page is in normal memory. This is the reason > kmap_local_page() is used as opposed to page_address(). > > I don't have hardware, so this change has only been compile tested. > > Cc: Ira Weiny <ira.weiny@...el.com> > Cc: Fabio M. De Francesco <fmdefrancesco@...il.com> > Cc: Edward Cree <ecree.xilinx@...il.com> > Cc: Martin Habets <habetsm.xilinx@...il.com> > Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@...el.com> > --- > v1 -> v2: Update commit message > --- > drivers/net/ethernet/sfc/tx.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > Reviewed-by: Fabio M. De Francesco <fmdefrancesco@...il.com> Thanks, Fabio > diff --git a/drivers/net/ethernet/sfc/tx.c b/drivers/net/ethernet/sfc/tx.c > index c5f88f7..4ed4082 100644 > --- a/drivers/net/ethernet/sfc/tx.c > +++ b/drivers/net/ethernet/sfc/tx.c > @@ -207,11 +207,11 @@ static void efx_skb_copy_bits_to_pio(struct efx_nic > *efx, struct sk_buff *skb, skb_frag_t *f = &skb_shinfo(skb)->frags[i]; > u8 *vaddr; > > - vaddr = kmap_atomic(skb_frag_page(f)); > + vaddr = kmap_local_page(skb_frag_page(f)); > > efx_memcpy_toio_aligned_cb(efx, piobuf, vaddr + skb_frag_off(f), > skb_frag_size(f), copy_buf); > - kunmap_atomic(vaddr); > + kunmap_local(vaddr); > } > > EFX_WARN_ON_ONCE_PARANOID(skb_shinfo(skb)->frag_list); > -- > 2.37.2
Powered by blists - more mailing lists