[PATCH] nvmet-tcp: fix data digest pointer calculation

Christoph Hellwig hch at lst.de
Wed Oct 27 00:13:16 PDT 2021


On Wed, Oct 27, 2021 at 10:11:01AM +0300, Sagi Grimberg wrote:
>>> diff --git a/drivers/nvme/target/tcp.c b/drivers/nvme/target/tcp.c
>>> index 07ee347..d641bfa 100644
>>> --- a/drivers/nvme/target/tcp.c
>>> +++ b/drivers/nvme/target/tcp.c
>>> @@ -702,7 +702,7 @@ static int nvmet_try_send_ddgst(struct nvmet_tcp_cmd *cmd, bool last_in_batch)
>>>   	struct nvmet_tcp_queue *queue = cmd->queue;
>>>   	struct msghdr msg = { .msg_flags = MSG_DONTWAIT };
>>>   	struct kvec iov = {
>>> -		.iov_base = &cmd->exp_ddgst + cmd->offset,
>>> +		.iov_base = (u8 *)&cmd->exp_ddgst + cmd->offset,
>>
>> Wouldn't be the better fix to divide cmd->offset by 4 instead of the
>> casts?  I can fix this up inline if that is ok.
>
> Don't really mind, what makes it a better fix?

I generally prefer to avoid casts as they paper over bugs.



More information about the Linux-nvme mailing list