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
| ||
|
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