All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robert Richter <rrichter@amd.com>
To: Terry Bowman <Terry.Bowman@amd.com>
Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	<alison.schofield@intel.com>, <vishal.l.verma@intel.com>,
	<ira.weiny@intel.com>, <bwidawsk@kernel.org>,
	<dan.j.williams@intel.com>, <dave.jiang@intel.com>,
	<linux-cxl@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<bhelgaas@google.com>
Subject: Re: [PATCH v3 1/6] cxl/pci: Add RCH downstream port AER and RAS register discovery
Date: Fri, 14 Apr 2023 13:51:13 +0200	[thread overview]
Message-ID: <ZDk+MYcrtV3fTHsN@rric.localdomain> (raw)
In-Reply-To: <8d2690d8-9418-e2da-8834-6457a60a67cb@amd.com>

On 13.04.23 14:13:16, Terry Bowman wrote:
> On 4/13/23 10:30, Jonathan Cameron wrote:
> > On Tue, 11 Apr 2023 13:02:57 -0500
> > Terry Bowman <terry.bowman@amd.com> wrote:

> >> +static void __iomem *cxl_map_reg(struct device *dev, struct cxl_register_map *map,
> >> +				 char *name)
> > 
> > dev isn't used.
> > 
> 
> 'dev' was used earlier for logging that is since removed.
> 
> >> +{
> >> +
> > 
> > Trivial but no point in blank line here.
> > 
> 
> I'll remove it.
> 
> >> +	if (!request_mem_region(map->resource, map->max_size, name))
> >> +		return NULL;
> >> +
> >> +	map->base = ioremap(map->resource, map->max_size);
> >> +	if (!map->base) {
> >> +		release_mem_region(map->resource, map->max_size);
> >> +		return NULL;
> >> +	}
> >> +
> >> +	return map->base;
> > 
> > Why return a value you've already stashed in map->base?
> > 
> This allowed for a clean return check where cxl_map_reg() is called.
> This could/should have been a boolean. This will be fixed with the refactoring 
> mentioned below.

The intention was to have a shortcut to get the base addr directly
which could be often the case. While the remaining struct map is only
used to unmap things. To be precise, we do not check a bool here but
instead an address to be non-zero. Please to not change the return
value.

We did not use devm_* here to allow temporary mappings during init
(which might happen multiple times). With devm_* only one permanent
mapping would be possible and we would need to store and maintain the
base addr in some struct. This implementation here allows a local
usage.

> 
> >> +}
> >> +
> > 
> > This is similar enough to devm_cxl_iomap_block() that I'd kind
> > of like them them take the same parameters.  That would mean
> > moving the map structure outside of the calls and instead passing
> > in the 3 relevant parameters.  Perhaps not worth it.
> > 
> The intent was to cleanup the cxl_map_reg() callers.  Using a 'struct 
> cxl_register_map' carries all the variables required for mapping and reduces 
> the number of variables otherwise declared in the callers. But, I understand 
> why a common interface is preferred in this case.
> 
> Ok. I'll change the parameters and return value to match devm_cxl_iomap_block(). 

See my comment above.

Struct cxl_register_map was choosen to keep data in one place and also
for paired use with cxl_map_reg() and cxl_unmap_reg() (in the sense of
an object-oriented programming style). The struct is widespread used
in CXL code for similar reasons. I would prefer to keep the struct as
argument.

> 
> >> +static void cxl_unmap_reg(struct device *dev, struct cxl_register_map *map)
> >> +{
> > 
> > dev isn't used here either. Makes little sense to pass it in to either funtion.

Yes, dev should be removed for both functions. Thanks for catching
this.

-Robert

> > 
> >> +	iounmap(map->base);
> >> +	release_mem_region(map->resource, map->max_size);
> >> +}
> >> +

  parent reply	other threads:[~2023-04-14 11:51 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-11 18:02 [PATCH v3 0/6] cxl/pci: Add support for RCH RAS error handling Terry Bowman
2023-04-11 18:02 ` [PATCH v3 1/6] cxl/pci: Add RCH downstream port AER and RAS register discovery Terry Bowman
2023-04-13 15:30   ` Jonathan Cameron
2023-04-13 19:13     ` Terry Bowman
2023-04-14 11:47       ` Jonathan Cameron
2023-04-14 11:51       ` Robert Richter [this message]
2023-04-17 23:00   ` Dan Williams
2023-04-18 15:59     ` Terry Bowman
2023-04-27 13:52     ` Robert Richter
2023-04-11 18:02 ` [PATCH v3 2/6] efi/cper: Export cper_mem_err_unpack() for use by modules Terry Bowman
2023-04-12 11:04   ` Ard Biesheuvel
2023-04-13 16:08   ` Jonathan Cameron
2023-04-13 19:40     ` Terry Bowman
2023-04-14 11:48       ` Jonathan Cameron
2023-04-14 12:44         ` Robert Richter
     [not found]         ` <aba5d2ee-f451-145c-81c2-72595129483b@amd.com>
2023-04-14 15:17           ` Terry Bowman
2023-04-17 23:08   ` Dan Williams
2023-04-11 18:02 ` [PATCH v3 3/6] PCI/AER: Export cper_print_aer() " Terry Bowman
2023-04-13 16:13   ` Jonathan Cameron
2023-04-17 23:11   ` Dan Williams
2023-04-11 18:03 ` [PATCH v3 4/6] cxl/pci: Add RCH downstream port error logging Terry Bowman
2023-04-12  1:32   ` kernel test robot
2023-04-12  3:04   ` kernel test robot
2023-04-13 16:50   ` Jonathan Cameron
2023-04-14 16:36     ` Terry Bowman
2023-04-17 16:56       ` Jonathan Cameron
2023-04-18  0:06   ` Dan Williams
2023-04-24 18:39     ` Terry Bowman
2023-04-11 18:03 ` [PATCH v3 5/6] PCI/AER: Forward RCH downstream port-detected errors to the CXL.mem dev handler Terry Bowman
2023-04-11 18:03   ` Terry Bowman
2023-04-12 22:02   ` Bjorn Helgaas
2023-04-12 22:02     ` Bjorn Helgaas
2023-04-13 11:40     ` Robert Richter
2023-04-13 11:40       ` Robert Richter
2023-04-14 21:32       ` Bjorn Helgaas
2023-04-14 21:32         ` Bjorn Helgaas
2023-04-17 22:00         ` Robert Richter
2023-04-17 22:00           ` Robert Richter
2023-04-19 14:17           ` Robert Richter
2023-04-19 14:17             ` Robert Richter
2023-04-14 12:19   ` Jonathan Cameron
2023-04-14 12:19     ` Jonathan Cameron
2023-04-14 14:35     ` Robert Richter
2023-04-14 14:35       ` Robert Richter
2023-04-17 16:54       ` Jonathan Cameron
2023-04-17 16:54         ` Jonathan Cameron
2023-04-17 20:36         ` Robert Richter
2023-04-17 20:36           ` Robert Richter
2023-04-18  1:01   ` Dan Williams
2023-04-18  1:01     ` Dan Williams
2023-04-19 13:30     ` Robert Richter
2023-04-19 13:30       ` Robert Richter
2023-04-11 18:03 ` [PATCH v3 6/6] PCI/AER: Unmask RCEC internal errors to enable RCH downstream port error handling Terry Bowman
2023-04-11 18:03   ` Terry Bowman
2023-04-12 21:29   ` Bjorn Helgaas
2023-04-12 21:29     ` Bjorn Helgaas
2023-04-13 13:38     ` Robert Richter
2023-04-13 13:38       ` Robert Richter
2023-04-13 17:05       ` Jonathan Cameron
2023-04-13 17:05         ` Jonathan Cameron
2023-04-14 11:58         ` Robert Richter
2023-04-14 11:58           ` Robert Richter
2023-04-14 21:49       ` Bjorn Helgaas
2023-04-14 21:49         ` Bjorn Helgaas
2023-04-13 17:01     ` Jonathan Cameron
2023-04-13 17:01       ` Jonathan Cameron
2023-04-13 22:52       ` Ira Weiny
2023-04-13 22:52         ` Ira Weiny
2023-04-14 11:21         ` Robert Richter
2023-04-14 11:21           ` Robert Richter
2023-04-14 11:55           ` Jonathan Cameron
2023-04-14 11:55             ` Jonathan Cameron
2023-04-14 14:47             ` Robert Richter
2023-04-14 14:47               ` Robert Richter
2023-04-18  2:37   ` Dan Williams
2023-04-18  2:37     ` Dan Williams

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=ZDk+MYcrtV3fTHsN@rric.localdomain \
    --to=rrichter@amd.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=Terry.Bowman@amd.com \
    --cc=alison.schofield@intel.com \
    --cc=bhelgaas@google.com \
    --cc=bwidawsk@kernel.org \
    --cc=dan.j.williams@intel.com \
    --cc=dave.jiang@intel.com \
    --cc=ira.weiny@intel.com \
    --cc=linux-cxl@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vishal.l.verma@intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.