[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAPcyv4g0n0eHv13b+Uy9sjXWVMtf3gB0Trxf9Ns0HhPtp2f6hg@mail.gmail.com>
Date: Wed, 19 May 2021 17:24:01 -0700
From: Dan Williams <dan.j.williams@...el.com>
To: "Weiny, Ira" <ira.weiny@...el.com>
Cc: Ben Widawsky <ben.widawsky@...el.com>,
Alison Schofield <alison.schofield@...el.com>,
Vishal Verma <vishal.l.verma@...el.com>,
Jonathan Cameron <Jonathan.Cameron@...wei.com>,
linux-cxl@...r.kernel.org,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 0/4] Map register blocks individually
On Thu, May 6, 2021 at 3:37 PM <ira.weiny@...el.com> wrote:
>
> From: Ira Weiny <ira.weiny@...el.com>
>
> User space will want to map some register blocks.
The motivation is not to allow userspace access. The motivation is a
bug fix for hardware implementations that mix component and device
registers into the same BAR and the fact that the driver stack has
independent mapping implementations for those 2 cases. It is a happy
side-effect that this also allows finer grained pci-mmap exclusion.
> Currently BARs are mapped in
> their entirety and pointers to the register blocks are created into those
> mappings. This will prevent mappings from user space.
>
> This series has 3 clean up patches followed by a patch to mapping the register
> blocks individually.
>
> Unfortunately, the information for the register blocks is contained inside the
> BARs themselves. Which means the BAR must be mapped, probed, and unmapped
> prior to the registers being mapped individually.
>
> The probe stage creates list of register maps which is then iterated to map
> the individual register blocks.
>
> Ira Weiny (4):
> cxl/mem: Fully decode device capability header
> cxl/mem: Reserve all device regions at once
> cxl/mem: Introduce cxl_decode_register_block()
> cxl/mem: Map registers based on capabilities
>
> drivers/cxl/core.c | 84 ++++++++++++++++++++------
> drivers/cxl/cxl.h | 34 +++++++++--
> drivers/cxl/pci.c | 147 +++++++++++++++++++++++++++++++++++----------
> 3 files changed, 211 insertions(+), 54 deletions(-)
>
> --
> 2.28.0.rc0.12.gb6a658bd00c9
>
Powered by blists - more mailing lists