Skip to content

Commit 7edfe0a

Browse files
committed
Merge tag 'block-6.8-2024-02-16' of git://git.kernel.dk/linux
Pull block fixes from Jens Axboe: "Just an nvme pull request via Keith: - Fabrics connection error handling (Chaitanya) - Use relaxed effects to reduce unnecessary queue freezes (Keith)" * tag 'block-6.8-2024-02-16' of git://git.kernel.dk/linux: nvmet: remove superfluous initialization nvme: implement support for relaxed effects nvme-fabrics: fix I/O connect error handling
2 parents 8096015 + 9c10f2b commit 7edfe0a

File tree

4 files changed

+8
-2
lines changed

4 files changed

+8
-2
lines changed

drivers/nvme/host/core.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1153,6 +1153,10 @@ u32 nvme_command_effects(struct nvme_ctrl *ctrl, struct nvme_ns *ns, u8 opcode)
11531153
effects &= ~NVME_CMD_EFFECTS_CSE_MASK;
11541154
} else {
11551155
effects = le32_to_cpu(ctrl->effects->acs[opcode]);
1156+
1157+
/* Ignore execution restrictions if any relaxation bits are set */
1158+
if (effects & NVME_CMD_EFFECTS_CSER_MASK)
1159+
effects &= ~NVME_CMD_EFFECTS_CSE_MASK;
11561160
}
11571161

11581162
return effects;

drivers/nvme/host/fabrics.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,7 @@ int nvmf_connect_io_queue(struct nvme_ctrl *ctrl, u16 qid)
534534
if (ret) {
535535
nvmf_log_connect_error(ctrl, ret, le32_to_cpu(res.u32),
536536
&cmd, data);
537+
goto out_free_data;
537538
}
538539
result = le32_to_cpu(res.u32);
539540
if (result & (NVME_CONNECT_AUTHREQ_ATR | NVME_CONNECT_AUTHREQ_ASCR)) {

drivers/nvme/target/fabrics-cmd.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ static void nvmet_execute_admin_connect(struct nvmet_req *req)
209209
struct nvmf_connect_command *c = &req->cmd->connect;
210210
struct nvmf_connect_data *d;
211211
struct nvmet_ctrl *ctrl = NULL;
212-
u16 status = 0;
212+
u16 status;
213213
int ret;
214214

215215
if (!nvmet_check_transfer_len(req, sizeof(struct nvmf_connect_data)))
@@ -290,7 +290,7 @@ static void nvmet_execute_io_connect(struct nvmet_req *req)
290290
struct nvmf_connect_data *d;
291291
struct nvmet_ctrl *ctrl;
292292
u16 qid = le16_to_cpu(c->qid);
293-
u16 status = 0;
293+
u16 status;
294294

295295
if (!nvmet_check_transfer_len(req, sizeof(struct nvmf_connect_data)))
296296
return;

include/linux/nvme.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -646,6 +646,7 @@ enum {
646646
NVME_CMD_EFFECTS_NCC = 1 << 2,
647647
NVME_CMD_EFFECTS_NIC = 1 << 3,
648648
NVME_CMD_EFFECTS_CCC = 1 << 4,
649+
NVME_CMD_EFFECTS_CSER_MASK = GENMASK(15, 14),
649650
NVME_CMD_EFFECTS_CSE_MASK = GENMASK(18, 16),
650651
NVME_CMD_EFFECTS_UUID_SEL = 1 << 19,
651652
NVME_CMD_EFFECTS_SCOPE_MASK = GENMASK(31, 20),

0 commit comments

Comments
 (0)