[PATCH] nvme: Allocate memory for xa_store in advance in nvme_get_effects_log

Keisuke Nishimura keisuke.nishimura at inria.fr
Mon Dec 16 05:06:50 PST 2024


Hello,

On 12/12/2024 07:27, Christoph Hellwig wrote:
> On Mon, Dec 02, 2024 at 01:42:40PM +0100, Keisuke Nishimura wrote:
>> +	ret = xa_reserve(&ctrl->cels, csi, GFP_KERNEL);
>> +	if (ret) {
>> +		kfree(cel);
>> +		return ret;
>> +	}
>> +
>>   	ret = nvme_get_log(ctrl, 0x00, NVME_LOG_CMD_EFFECTS, 0, csi,
>>   			cel, sizeof(*cel), 0);
> 
> There isn't really any point in doing a xa_reserve here vs simply
> handling the xa_store error a bit below.
> 

Thank you for your reply.

Without this xa_reserve(), if xa_store() fails, we cannot store cel after 
calling nvme_get_log() which can have side effects. My intention is to ensure 
xa_store() succeeds first and, if not, return early before invoking nvme_get_log().

But I am not very familiar with this code. If it is okay to check after the 
nvme_get_log(), I will send the patch soon.

best,
Keisuke



More information about the Linux-nvme mailing list