2019-06-03 15:07:51

by Suwan Kim

[permalink] [raw]
Subject: [PATCH] usbip: Replace unused kvec array with single variable in vhci_send_cmd_unlink()

vhci_send_cmd_unlink() declears kvec array of size 3 but it actually
uses just one element of the array. So, remove kvec array and replace
it with single kvec variable.

Signed-off-by: Suwan Kim <[email protected]>
---
drivers/usb/usbip/vhci_tx.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/usb/usbip/vhci_tx.c b/drivers/usb/usbip/vhci_tx.c
index 9aed15a358b7..2fa26d0578d7 100644
--- a/drivers/usb/usbip/vhci_tx.c
+++ b/drivers/usb/usbip/vhci_tx.c
@@ -144,16 +144,14 @@ static int vhci_send_cmd_unlink(struct vhci_device *vdev)
struct vhci_unlink *unlink = NULL;

struct msghdr msg;
- struct kvec iov[3];
+ struct kvec iov;
size_t txsize;
-
size_t total_size = 0;

while ((unlink = dequeue_from_unlink_tx(vdev)) != NULL) {
int ret;
struct usbip_header pdu_header;

- txsize = 0;
memset(&pdu_header, 0, sizeof(pdu_header));
memset(&msg, 0, sizeof(msg));
memset(&iov, 0, sizeof(iov));
@@ -169,11 +167,11 @@ static int vhci_send_cmd_unlink(struct vhci_device *vdev)

usbip_header_correct_endian(&pdu_header, 1);

- iov[0].iov_base = &pdu_header;
- iov[0].iov_len = sizeof(pdu_header);
- txsize += sizeof(pdu_header);
+ iov.iov_base = &pdu_header;
+ iov.iov_len = sizeof(pdu_header);
+ txsize = sizeof(pdu_header);

- ret = kernel_sendmsg(vdev->ud.tcp_socket, &msg, iov, 1, txsize);
+ ret = kernel_sendmsg(vdev->ud.tcp_socket, &msg, &iov, 1, txsize);
if (ret != txsize) {
pr_err("sendmsg failed!, ret=%d for %zd\n", ret,
txsize);
--
2.20.1


2019-06-04 00:59:18

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH] usbip: Replace unused kvec array with single variable in vhci_send_cmd_unlink()

On 6/3/19 9:02 AM, Suwan Kim wrote:
> vhci_send_cmd_unlink() declears kvec array of size 3 but it actually
> uses just one element of the array. So, remove kvec array and replace
> it with single kvec variable.
>
> Signed-off-by: Suwan Kim <[email protected]>
> ---
> drivers/usb/usbip/vhci_tx.c | 12 +++++-------
> 1 file changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/usb/usbip/vhci_tx.c b/drivers/usb/usbip/vhci_tx.c
> index 9aed15a358b7..2fa26d0578d7 100644
> --- a/drivers/usb/usbip/vhci_tx.c
> +++ b/drivers/usb/usbip/vhci_tx.c
> @@ -144,16 +144,14 @@ static int vhci_send_cmd_unlink(struct vhci_device *vdev)
> struct vhci_unlink *unlink = NULL;
>
> struct msghdr msg;
> - struct kvec iov[3];
> + struct kvec iov;
> size_t txsize;
> -
> size_t total_size = 0;
>
> while ((unlink = dequeue_from_unlink_tx(vdev)) != NULL) {
> int ret;
> struct usbip_header pdu_header;
>
> - txsize = 0;
> memset(&pdu_header, 0, sizeof(pdu_header));
> memset(&msg, 0, sizeof(msg));
> memset(&iov, 0, sizeof(iov));
> @@ -169,11 +167,11 @@ static int vhci_send_cmd_unlink(struct vhci_device *vdev)
>
> usbip_header_correct_endian(&pdu_header, 1);
>
> - iov[0].iov_base = &pdu_header;
> - iov[0].iov_len = sizeof(pdu_header);
> - txsize += sizeof(pdu_header);
> + iov.iov_base = &pdu_header;
> + iov.iov_len = sizeof(pdu_header);
> + txsize = sizeof(pdu_header);
>
> - ret = kernel_sendmsg(vdev->ud.tcp_socket, &msg, iov, 1, txsize);
> + ret = kernel_sendmsg(vdev->ud.tcp_socket, &msg, &iov, 1, txsize);
> if (ret != txsize) {
> pr_err("sendmsg failed!, ret=%d for %zd\n", ret,
> txsize);
>

Looks good to me.

Acked-by: Shuah Khan <[email protected]>

thanks,
-- Shuah