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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 12 Oct 2023 12:53:38 +0200
From: Niklas Schnelle <schnelle@...ux.ibm.com>
To: Saeed Mahameed <saeed@...nel.org>
Cc: Saeed Mahameed <saeedm@...dia.com>, Leon Romanovsky <leon@...nel.org>,
        Jason Gunthorpe <jgg@...pe.ca>,
        Matthew Rosato <mjrosato@...ux.ibm.com>,
        Joerg Roedel <joro@...tes.org>, Robin Murphy <robin.murphy@....com>,
        "David
 S. Miller" <davem@...emloft.net>,
        Eric Dumazet <edumazet@...gle.com>, Jakub
 Kicinski <kuba@...nel.org>,
        Paolo Abeni <pabeni@...hat.com>, Shay Drory
 <shayd@...dia.com>,
        Moshe Shemesh <moshe@...dia.com>, Heiko Carstens
 <hca@...ux.ibm.com>,
        Alexander Gordeev <agordeev@...ux.ibm.com>, linux-s390@...r.kernel.org,
        netdev@...r.kernel.org, linux-rdma@...r.kernel.org,
        linux-kernel@...r.kernel.org, Jacob Keller
 <jacob.e.keller@...el.com>
Subject: Re: [PATCH net v3] net/mlx5: fix calling mlx5_cmd_init() before DMA
 mask is set

On Wed, 2023-10-11 at 11:56 -0700, Saeed Mahameed wrote:
> On 11 Oct 11:20, Saeed Mahameed wrote:
> > On 11 Oct 09:57, Niklas Schnelle wrote:
> > > Since commit 06cd555f73ca ("net/mlx5: split mlx5_cmd_init() to probe and
> > > reload routines") mlx5_cmd_init() is called in mlx5_mdev_init() which is
> > > called in probe_one() before mlx5_pci_init(). This is a problem because
> > > mlx5_pci_init() is where the DMA and coherent mask is set but
> > > mlx5_cmd_init() already does a dma_alloc_coherent(). Thus a DMA
> > > allocation is done during probe before the correct mask is set. This
> > > causes probe to fail initialization of the cmdif SW structs on s390x
> > > after that is converted to the common dma-iommu code. This is because on
> > > s390x DMA addresses below 4 GiB are reserved on current machines and
> > > unlike the old s390x specific DMA API implementation common code
> > > enforces DMA masks.
> > > 
> > > Fix this by moving set_dma_caps() out of mlx5_pci_init() and into
> > > probe_one() before mlx5_mdev_init(). To match the overall naming scheme
> > > rename it to mlx5_dma_init().
> > 
> > How about we just call mlx5_pci_init() before mlx5_mdev_init(), instead of
> > breaking it apart ?
> 
> I just posted this RFC patch [1]:

This patch works to solve the problem as well.

> 
> I am working in very limited conditions these days, and I don't have strong
> opinion on which approach to take, Leon, Niklas, please advise.
> 
> The three possible solutions:
> 
> 1) mlx5_pci_init() before mlx5_mdev_init(), I don't think enabling pci
> before initializing cmd dma would be a problem.
> 
> 2) This patch.
> 
> 3) Shay's patch from the link below:
> [1] https://patchwork.kernel.org/project/netdevbpf/patch/20231011184511.19818-1-saeed@kernel.org/
> 
> Thanks,
> Saeed.

My first gut feeling was option 1) but I'm just as happy with 2) or 3).
For me option 2 is the least invasive but not by much.

For me the important thing is what Jason also said yesterday. We need
to merge something now to unbreak linux-next on s390x and to make sure
we don't end up with a broken v6.7-rc1. This is already hampering our
CI tests with linux-next. So let's do whatever can be merged the
quickest and then feel free to do any refactoring ideas that this
discussion might have spawned on top of that. My guess for this
criteria would be 2).

Thanks,
Niklas


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ