Re: [RFC PATCH 1/9] cxl/acpi: Add an acpi_cxl module for the CXL interconnect

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2020-11-16 at 17:59 +0000, Jonathan Cameron wrote:
> On Tue, 10 Nov 2020 21:43:48 -0800
> Ben Widawsky <ben.widawsky@xxxxxxxxx> wrote:
> 
> > From: Vishal Verma <vishal.l.verma@xxxxxxxxx>
> > 
> > Add an acpi_cxl module to coordinate the ACPI portions of the CXL
> > (Compute eXpress Link) interconnect. This driver binds to ACPI0017
> > objects in the ACPI tree, and coordinates access to the resources
> > provided by the ACPI CEDT (CXL Early Discovery Table).
> 
> I think the qemu series notes that this ACPI0017 is just a proposal at
> this stage. Please make sure that's highlighted here as well unless
> that status is out of date.

Hi Jonathan,

Thank you for the review. The cover letter talks about this, but I agree
it would be worth repeating in this patch briefly as I did with the OSC
patch. If it is still in a proposal state by the next posting, I'll make
sure to add a note here too.

> 
> > +
> > +static void acpi_cxl_desc_init(struct acpi_cxl_desc *acpi_desc, struct device *dev)
> > +{
> > +	dev_set_drvdata(dev, acpi_desc);
> 
> No need to have this wrapper + it hides the fact you are not just initialsing
> the acpi_desc structure.
> 
> > +	acpi_desc->dev = dev;
> > +}
> > +
> > +static void acpi_cedt_put_table(void *table)
> > +{
> > +	acpi_put_table(table);
> > +}
> > +
> > +static int acpi_cxl_add(struct acpi_device *adev)
> > +{
> > +	struct acpi_cxl_desc *acpi_desc;
> > +	struct device *dev = &adev->dev;
> > +	struct acpi_table_header *tbl;
> > +	acpi_status status = AE_OK;
> 
> Set below, so don't do it here.
> 
> > +	acpi_size sz;
> > +	int rc = 0;
> 
> Set in paths in which it's used so don't do it here.
> 
> > +
> > +	status = acpi_get_table(ACPI_SIG_CEDT, 0, &tbl);
> > +	if (ACPI_FAILURE(status)) {
> > +		dev_err(dev, "failed to find CEDT at startup\n");
> > +		return 0;
> > +	}
> > +
> > +	rc = devm_add_action_or_reset(dev, acpi_cedt_put_table, tbl);
> > +	if (rc)
> > +		return rc;
> 
> blank line here preferred for readability (do something, then check errors as
> block)
> 
> > +	sz = tbl->length;
> > +	dev_info(dev, "found CEDT at startup: %lld bytes\n", sz);
> > +
> > +	acpi_desc = devm_kzalloc(dev, sizeof(*acpi_desc), GFP_KERNEL);
> > +	if (!acpi_desc)
> > +		return -ENOMEM;
> 
> blank line here slightly helps readability.
> 
> > +	acpi_cxl_desc_init(acpi_desc, &adev->dev);
> > +
> > +	acpi_desc->acpi_header = *tbl;
> > +
> > +	return 0;
> > +}
> > +
> > +static int acpi_cxl_remove(struct acpi_device *adev)
> > +{
> > +	return 0;
> 
> Don't think empty remove is needed.
> 

Agreed with all of the above, I'll fix for the next posting.

> > +
> > +/* Values for CEDT structure types */
> > +
> > +enum acpi_cedt_type {
> > +	ACPI_CEDT_TYPE_HOST_BRIDGE = 0, /* CHBS - CXL Host Bridge Structure */
> > +	ACPI_CEDT_TYPE_CFMWS = 1, 	/* CFMWS - CXL Fixed Memory Window Structure */
> 
> This isn't in the 2.0 spec, so I guess also part of some proposed changes.

Yes this got in accidentally, will remove.






[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux