kernel null pointer at nvme_tcp_init_iter[nvme_tcp] with blktests nvme-tcp/012
Chaitanya Kulkarni
Chaitanya.Kulkarni at wdc.com
Sun Feb 7 00:58:00 EST 2021
On 2/6/21 20:51, Yi Zhang wrote:
> The issue was introduced after merge the NVMe updates
>
> commit 0fd6456fd1f4c8f3ec5a2df6ed7f34458a180409 (HEAD)
> Merge: 44d10e4b2f2c 0d7389718c32
> Author: Jens Axboe <axboe at kernel.dk>
> Date: Tue Feb 2 07:12:06 2021 -0700
>
> Merge branch 'for-5.12/drivers' into for-next
>
> * for-5.12/drivers: (22 commits)
> nvme-tcp: use cancel tagset helper for tear down
> nvme-rdma: use cancel tagset helper for tear down
> nvme-tcp: add clean action for failed reconnection
> nvme-rdma: add clean action for failed reconnection
> nvme-core: add cancel tagset helpers
> nvme-core: get rid of the extra space
> nvme: add tracing of zns commands
> nvme: parse format nvm command details when tracing
> nvme: update enumerations for status codes
> nvmet: add lba to sect conversion helpers
> nvmet: remove extra variable in identify ns
> nvmet: remove extra variable in id-desclist
> nvmet: remove extra variable in smart log nsid
> nvme: refactor ns->ctrl by request
> nvme-tcp: pass multipage bvec to request iov_iter
> nvme-tcp: get rid of unused helper function
> nvme-tcp: fix wrong setting of request iov_iter
> nvme: support command retry delay for admin command
> nvme: constify static attribute_group structs
> nvmet-fc: use RCU proctection for assoc_list
>
>
> On 2/6/21 11:08 AM, Yi Zhang wrote:
>> blktests nvme-tcp/012
Can you try following patch and see in your Oops if you get that message
so that
we can at-least eliminate one case ?
diff --git a/drivers/nvme/host/tcp.c b/drivers/nvme/host/tcp.c
index 619b0d8f6e38..13d44d155478 100644
--- a/drivers/nvme/host/tcp.c
+++ b/drivers/nvme/host/tcp.c
@@ -2271,8 +2271,11 @@ static blk_status_t nvme_tcp_setup_cmd_pdu(struct
nvme_ns *ns,
req->data_len = blk_rq_nr_phys_segments(rq) ?
blk_rq_payload_bytes(rq) : 0;
req->curr_bio = rq->bio;
- if (req->curr_bio)
+ if (req->curr_bio) {
+ if (rq->bio != rq->biotail)
+ printk(KERN_INFO"%s %d req->bio !=
req->biotail\n", __func__, __LINE__);
nvme_tcp_init_iter(req, rq_data_dir(rq));
+ }
if (rq_data_dir(rq) == WRITE &&
req->data_len <= nvme_tcp_inline_data_size(queue))
More information about the Linux-nvme
mailing list