public inbox for linux-cxl@vger.kernel.org
 help / color / mirror / Atom feed
From: Dave Jiang <dave.jiang@intel.com>
To: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
Cc: linux-cxl@vger.kernel.org, dan.j.williams@intel.com,
	ira.weiny@intel.com, vishal.l.verma@intel.com,
	alison.schofield@intel.com, dave@stgolabs.net, jgg@nvidia.com,
	shiju.jose@huawei.com
Subject: Re: [RFC PATCH 10/13] fwctl/cxl: Add support for fwctl RPC command to enable CXL feature commands
Date: Wed, 13 Nov 2024 08:41:15 -0700	[thread overview]
Message-ID: <240c2264-b0f2-4e8b-b6e5-89c4317d0ba0@intel.com> (raw)
In-Reply-To: <20240729122907.0000540a@Huawei.com>



On 7/29/24 4:29 AM, Jonathan Cameron wrote:
> On Thu, 18 Jul 2024 14:32:28 -0700
> Dave Jiang <dave.jiang@intel.com> wrote:
> 
>> fwctl provides a fwctl_ops->fw_rpc() callback in order to issue ioctls
>> to a device. The cxl fwctl driver will start by supporting the CXL
>> feature commands: Get Supported Features, Get Feature, and Set Feature.
> 
> I'll come back to this in reply to the cover letter, but this is
> problematic because some of those features will almost certainly be
> covered by standard kernel drivers and if Set Feature is enabled
> those drivers will need to be hardened against the state mysteriously
> changing under them.

Do we need to have an exclusive_features mask just like exclusive_cmds to block kernel managed features like RAS? That may be the best way to deal with things happening behind kernel's back.

> 
> This corner is the bit that worries me most about fwctl in general.
> Anyhow, one for the cover letter / policy discussion not deep
> in the patch series.

Need to add a documentation patch and maybe we can put policies and rules in there?

> 
> 
>>
>> The fw_rpc() callback provides 'enum fwctl_rpc_scope' parameter where
>> it indicates the security scope of the call. The Get Supported Features
>> and Get Feature calls can be executed with the scope of
>> FWCTL_RPC_DEBUG_READ_ONLY. The Set Feature call is gated by the effects
>> of the feature reported by Get Supported Features call for the specific
>> feature.
> 
> Break the moves of error codes etc out as a precursor no-op patch to
> make review of the real guts of this easier.

ok

> 
> Trivial comment inline.
>> diff --git a/drivers/fwctl/cxl/cxl.c b/drivers/fwctl/cxl/cxl.c
>> index 22f62034c021..01f0771148e1 100644
>> --- a/drivers/fwctl/cxl/cxl.c
>> +++ b/drivers/fwctl/cxl/cxl.c
>> @@ -51,10 +51,133 @@ static void *cxlctl_info(struct fwctl_uctx *uctx, size_t *length)
>>  	return info;
>>  }
> 
>> +static bool cxlctl_validate_hw_cmds(struct cxl_mailbox *cxl_mbox,
>> +				    const struct fwctl_cxl_command *send_cmd,
>> +				    enum fwctl_rpc_scope scope)
>> +{
>> +	struct cxl_mem_command *cmd;
>> +
>> +	/*
>> +	 * Only supporting feature commands.
>> +	 */
>> +	if (!cxl_mbox->num_features)
>> +		return false;
>> +
>> +	cmd = cxl_get_mem_command(send_cmd->id);
>> +	if (!cmd)
>> +		return false;
>> +
>> +	if (test_bit(cmd->info.id, cxl_mbox->enabled_cmds))
>> +		return false;
>> +
>> +	if (test_bit(cmd->info.id, cxl_mbox->exclusive_cmds))
>> +		return false;
>> +
>> +	switch (cmd->opcode) {
>> +	case CXL_MBOX_OP_GET_SUPPORTED_FEATURES:
>> +	case CXL_MBOX_OP_GET_FEATURE:
>> +		if (scope >= FWCTL_RPC_DEBUG_READ_ONLY)
>> +			return true;
>> +		break;
> 
> return false here.

ok

> 
>> +	case CXL_MBOX_OP_SET_FEATURE:
>> +		return cxlctl_validate_set_features(cxl_mbox, send_cmd, scope);
>> +	default:
>> +		return false;
>> +	};
>> +
>> +	return false;
> 
> And drop this.

ok

> 
>> +}


  reply	other threads:[~2024-11-13 15:41 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-18 21:32 [RFC PATCH 0/13] fwctl/cxl: Add CXL feature commands support via fwctl Dave Jiang
2024-07-18 21:32 ` [RFC PATCH 01/13] cxl: Move mailbox related bits to the same context Dave Jiang
2024-07-19  6:31   ` Alejandro Lucero Palau
2024-07-19 15:47     ` Dave Jiang
2024-07-19 16:07       ` Alejandro Lucero Palau
2024-07-26 17:28   ` Jonathan Cameron
2024-07-18 21:32 ` [RFC PATCH 02/13] cxl: Fix comment regarding cxl_query_cmd() return data Dave Jiang
2024-07-26 17:29   ` Jonathan Cameron
2024-09-24 23:41     ` Dave Jiang
2024-07-18 21:32 ` [RFC PATCH 03/13] cxl: Refactor user ioctl command path from mds to mailbox Dave Jiang
2024-07-18 21:32 ` [RFC PATCH 04/13] cxl: Add Get Supported Features command for kernel usage Dave Jiang
2024-07-26 17:50   ` Jonathan Cameron
2024-09-27 16:22     ` Dave Jiang
2024-08-21 16:05   ` Shiju Jose
2024-08-21 18:10     ` Dave Jiang
2024-07-18 21:32 ` [RFC PATCH 05/13] cxl/test: Add Get Supported Features mailbox command support Dave Jiang
2024-07-18 21:32 ` [RFC PATCH 06/13] cxl: Add Get Feature " Dave Jiang
2024-07-18 21:32 ` [RFC PATCH 07/13] cxl: Add Set " Dave Jiang
2024-07-18 21:32 ` [RFC PATCH 08/13] fwctl/cxl: Add driver for CXL mailbox for handling CXL features commands Dave Jiang
2024-07-22 15:31   ` Jason Gunthorpe
2024-07-22 21:42     ` Dave Jiang
2024-07-26 18:02   ` Jonathan Cameron
2024-09-24 23:44     ` Dave Jiang
2024-09-26 17:37       ` Jason Gunthorpe
2024-09-26 20:26         ` Dave Jiang
2024-07-18 21:32 ` [RFC PATCH 09/13] fwctl/cxl: Add support for get driver information Dave Jiang
2024-07-18 21:32 ` [RFC PATCH 10/13] fwctl/cxl: Add support for fwctl RPC command to enable CXL feature commands Dave Jiang
2024-07-22 15:29   ` Jason Gunthorpe
2024-07-22 22:52     ` Dave Jiang
2024-07-29 11:29   ` Jonathan Cameron
2024-11-13 15:41     ` Dave Jiang [this message]
2024-11-19 11:41       ` Jonathan Cameron
2024-07-18 21:32 ` [RFC PATCH 11/13] fwctl/cxl: Add query commands software command for ->fw_rpc() Dave Jiang
2024-07-22 15:24   ` Jason Gunthorpe
2024-07-22 23:23     ` Dave Jiang
2024-08-08 12:56       ` Jason Gunthorpe
2024-07-29 11:48   ` Jonathan Cameron
2024-07-18 21:32 ` [RFC PATCH 12/13] cxl/test: Add Get Feature support to cxl_test Dave Jiang
2024-07-18 21:32 ` [RFC PATCH 13/13] cxl/test: Add Set " Dave Jiang
2024-07-19  6:23 ` [RFC PATCH 0/13] fwctl/cxl: Add CXL feature commands support via fwctl Alejandro Lucero Palau
2024-07-19 15:48   ` Dave Jiang
2024-07-22 15:32 ` Jason Gunthorpe
2024-07-29 12:05 ` Jonathan Cameron
2024-08-06 16:44   ` Dave Jiang
2024-11-13  0:17   ` Dave Jiang
2024-11-19 11:43     ` Jonathan Cameron
2024-11-19 15:58       ` Dave Jiang

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=240c2264-b0f2-4e8b-b6e5-89c4317d0ba0@intel.com \
    --to=dave.jiang@intel.com \
    --cc=Jonathan.Cameron@Huawei.com \
    --cc=alison.schofield@intel.com \
    --cc=dan.j.williams@intel.com \
    --cc=dave@stgolabs.net \
    --cc=ira.weiny@intel.com \
    --cc=jgg@nvidia.com \
    --cc=linux-cxl@vger.kernel.org \
    --cc=shiju.jose@huawei.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox