From: Niklas Schnelle <schnelle@linux.ibm.com>
To: Matthew Rosato <mjrosato@linux.ibm.com>,
Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>,
Jason Gunthorpe <jgg@nvidia.com>,
Wenjia Zhang <wenjia@linux.ibm.com>
Cc: Gerd Bayer <gbayer@linux.ibm.com>,
Pierre Morel <pmorel@linux.ibm.com>,
iommu@lists.linux.dev, linux-s390@vger.kernel.org,
borntraeger@linux.ibm.com, hca@linux.ibm.com, gor@linux.ibm.com,
gerald.schaefer@linux.ibm.com, agordeev@linux.ibm.com,
svens@linux.ibm.com, linux-kernel@vger.kernel.org,
Julian Ruess <julianr@linux.ibm.com>
Subject: Re: [PATCH v4 4/7] s390/pci: Use dma-iommu layer
Date: Thu, 19 Jan 2023 17:33:43 +0100 [thread overview]
Message-ID: <69047c319c6cb2afd7331daeb7fc8459fdd34f80.camel@linux.ibm.com> (raw)
In-Reply-To: <71b9e85d-960f-7403-0113-135746127f3b@linux.ibm.com>
On Tue, 2023-01-17 at 10:09 -0500, Matthew Rosato wrote:
> On 1/4/23 7:05 AM, Niklas Schnelle wrote:
> > While s390 already has a standard IOMMU driver and previous changes have
> > added I/O TLB flushing operations this driver is currently only used for
> > user-space PCI access such as vfio-pci. For the DMA API s390 instead
> > utilizes its own implementation in arch/s390/pci/pci_dma.c which drives
> > the same hardware and shares some code but requires a complex and
> > fragile hand over between DMA API and IOMMU API use of a device and
> > despite code sharing still leads to significant duplication and
> > maintenance effort. Let's utilize the common code DMAP API
> > implementation from drivers/iommu/dma-iommu.c instead allowing us to
> > get rid of arch/s390/pci/pci_dma.c.
> >
> > Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
> > diff --git a/arch/s390/pci/pci.c b/arch/s390/pci/pci.c
> > index ef38b1514c77..6b0fe8761509 100644
> > --- a/arch/s390/pci/pci.c
> > +++ b/arch/s390/pci/pci.c
> > @@ -124,7 +124,11 @@ int zpci_register_ioat(struct zpci_dev *zdev, u8 dmaas,
> >
> > WARN_ON_ONCE(iota & 0x3fff);
> > fib.pba = base;
> > - fib.pal = limit;
> > + /* Work around off by one in ISM virt device */
> > + if (zdev->pft == 0x5 && limit > base)
>
> Nit: maybe a named #define for the ISM pft rather than hard-coding 0x5 here
>
Hmm, I agree in principle but not sure where to put this #define. Maybe
also important to mention that the off-by-one has actually been fixed
in current firmware but of course we still have to support broken
devices and the workaround still works with fixed ISM.
next prev parent reply other threads:[~2023-01-19 16:34 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-04 12:05 [PATCH v4 0/7] iommu/dma: s390 DMA API conversion and optimized IOTLB flushing Niklas Schnelle
2023-01-04 12:05 ` [PATCH v4 1/7] s390/ism: Set DMA coherent mask Niklas Schnelle
2023-01-17 15:09 ` Matthew Rosato
2023-01-04 12:05 ` [PATCH v4 2/7] iommu: Allow .iotlb_sync_map to fail and handle s390's -ENOMEM return Niklas Schnelle
2023-01-05 7:15 ` Baolu Lu
2023-01-17 15:10 ` Matthew Rosato
2023-01-19 11:31 ` Niklas Schnelle
2023-01-04 12:05 ` [PATCH v4 3/7] s390/pci: prepare is_passed_through() for dma-iommu Niklas Schnelle
2023-01-17 15:10 ` Matthew Rosato
2023-01-04 12:05 ` [PATCH v4 4/7] s390/pci: Use dma-iommu layer Niklas Schnelle
2023-01-17 15:09 ` Matthew Rosato
2023-01-19 11:03 ` Niklas Schnelle
2023-01-19 15:59 ` Matthew Rosato
2023-01-19 16:04 ` Niklas Schnelle
2023-01-19 16:12 ` Matthew Rosato
2023-01-19 16:33 ` Niklas Schnelle [this message]
2023-01-19 16:40 ` Matthew Rosato
2023-01-04 12:05 ` [PATCH v4 5/7] iommu/dma: Allow a single FQ in addition to per-CPU FQs Niklas Schnelle
2023-01-19 15:55 ` Niklas Schnelle
2023-01-19 16:16 ` Niklas Schnelle
2023-01-04 12:05 ` [PATCH v4 6/7] iommu/dma: Enable variable queue size and use larger single queue Niklas Schnelle
2023-01-04 12:05 ` [PATCH v4 7/7] iommu/dma: Add IOMMU op to choose lazy domain type Niklas Schnelle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=69047c319c6cb2afd7331daeb7fc8459fdd34f80.camel@linux.ibm.com \
--to=schnelle@linux.ibm.com \
--cc=agordeev@linux.ibm.com \
--cc=borntraeger@linux.ibm.com \
--cc=gbayer@linux.ibm.com \
--cc=gerald.schaefer@linux.ibm.com \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=iommu@lists.linux.dev \
--cc=jgg@nvidia.com \
--cc=joro@8bytes.org \
--cc=julianr@linux.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=mjrosato@linux.ibm.com \
--cc=pmorel@linux.ibm.com \
--cc=robin.murphy@arm.com \
--cc=svens@linux.ibm.com \
--cc=wenjia@linux.ibm.com \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox