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  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230821113543.536b7375@kernel.org>
Date: Mon, 21 Aug 2023 11:35:43 -0700
From: Jakub Kicinski <kuba@...nel.org>
To: Yunsheng Lin <linyunsheng@...wei.com>
Cc: Ilias Apalodimas <ilias.apalodimas@...aro.org>, Mina Almasry
 <almasrymina@...gle.com>, <davem@...emloft.net>, <pabeni@...hat.com>,
 <netdev@...r.kernel.org>, <linux-kernel@...r.kernel.org>, Lorenzo Bianconi
 <lorenzo@...nel.org>, Alexander Duyck <alexander.duyck@...il.com>, Liang
 Chen <liangchen.linux@...il.com>, Alexander Lobakin
 <aleksander.lobakin@...el.com>, Saeed Mahameed <saeedm@...dia.com>, Leon
 Romanovsky <leon@...nel.org>, Eric Dumazet <edumazet@...gle.com>, Jesper
 Dangaard Brouer <hawk@...nel.org>
Subject: Re: [PATCH net-next v7 1/6] page_pool: frag API support for 32-bit
 arch with 64-bit DMA

On Mon, 21 Aug 2023 20:18:55 +0800 Yunsheng Lin wrote:
> > -	page_pool_set_dma_addr(page, dma);
> > +	if (page_pool_set_dma_addr(page, dma))
> > +		goto unmap_failed;  
> 
> What does the driver do when the above fails?
> Does the driver still need to implement a fallback for 32 bit arch with
> dma addr with more than 32 + 12 bits?
> If yes, it does not seems to be very helpful from driver's point of view
> as the driver might still need to call page allocator API directly when
> the above fails.

I'd expect the driver to do nothing, we are operating under 
the assumption that "this will never happen". If it does 
the user should report it back to us. So maybe..

> >  	if (pool->p.flags & PP_FLAG_DMA_SYNC_DEV)
> >  		page_pool_dma_sync_for_device(pool, page, pool->p.max_len);
> >  
> >  	return true;
> > +
> > +unmap_failed:

.. we should also add a:

	WARN_ONCE(1, "misaligned DMA address, please report to netdev@");

here?

> > +	dma_unmap_page_attrs(pool->p.dev, dma,
> > +			     PAGE_SIZE << pool->p.order, pool->p.dma_dir,
> > +			     DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_WEAK_ORDERING);
> > +	return false;

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ