]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 1 Jan 2018 10:15:03 +0000 (11:15 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 1 Jan 2018 10:15:03 +0000 (11:15 +0100)
added patches:
usbip-fix-usbip-bind-writing-random-string-after-command-in-match_busid.patch
usbip-stub-stop-printing-kernel-pointer-addresses-in-messages.patch
usbip-vhci-stop-printing-kernel-pointer-addresses-in-messages.patch

queue-4.4/series
queue-4.4/usbip-fix-usbip-bind-writing-random-string-after-command-in-match_busid.patch [new file with mode: 0644]
queue-4.4/usbip-stub-stop-printing-kernel-pointer-addresses-in-messages.patch [new file with mode: 0644]
queue-4.4/usbip-vhci-stop-printing-kernel-pointer-addresses-in-messages.patch [new file with mode: 0644]

index c74abf176d3a17cd7e1ecb7c087148dba8ae12e2..7ccbdeb4008d28e2889892793d62da3bf526598f 100644 (file)
@@ -47,3 +47,6 @@ net-bridge-fix-early-call-to-br_stp_change_bridge_id-and-plug-newlink-leaks.patc
 net-fix-double-free-and-memory-corruption-in-get_net_ns_by_id.patch
 net-phy-micrel-ksz9031-reconfigure-autoneg-after-phy-autoneg-workaround.patch
 sock-free-skb-in-skb_complete_tx_timestamp-on-error.patch
+usbip-fix-usbip-bind-writing-random-string-after-command-in-match_busid.patch
+usbip-stub-stop-printing-kernel-pointer-addresses-in-messages.patch
+usbip-vhci-stop-printing-kernel-pointer-addresses-in-messages.patch
diff --git a/queue-4.4/usbip-fix-usbip-bind-writing-random-string-after-command-in-match_busid.patch b/queue-4.4/usbip-fix-usbip-bind-writing-random-string-after-command-in-match_busid.patch
new file mode 100644 (file)
index 0000000..0024cb1
--- /dev/null
@@ -0,0 +1,49 @@
+From 544c4605acc5ae4afe7dd5914147947db182f2fb Mon Sep 17 00:00:00 2001
+From: Juan Zea <juan.zea@qindel.com>
+Date: Fri, 15 Dec 2017 10:21:20 +0100
+Subject: usbip: fix usbip bind writing random string after command in match_busid
+
+From: Juan Zea <juan.zea@qindel.com>
+
+commit 544c4605acc5ae4afe7dd5914147947db182f2fb upstream.
+
+usbip bind writes commands followed by random string when writing to
+match_busid attribute in sysfs, caused by using full variable size
+instead of string length.
+
+Signed-off-by: Juan Zea <juan.zea@qindel.com>
+Acked-by: Shuah Khan <shuahkh@osg.samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ tools/usb/usbip/src/utils.c |    9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+--- a/tools/usb/usbip/src/utils.c
++++ b/tools/usb/usbip/src/utils.c
+@@ -30,6 +30,7 @@ int modify_match_busid(char *busid, int
+       char command[SYSFS_BUS_ID_SIZE + 4];
+       char match_busid_attr_path[SYSFS_PATH_MAX];
+       int rc;
++      int cmd_size;
+       snprintf(match_busid_attr_path, sizeof(match_busid_attr_path),
+                "%s/%s/%s/%s/%s/%s", SYSFS_MNT_PATH, SYSFS_BUS_NAME,
+@@ -37,12 +38,14 @@ int modify_match_busid(char *busid, int
+                attr_name);
+       if (add)
+-              snprintf(command, SYSFS_BUS_ID_SIZE + 4, "add %s", busid);
++              cmd_size = snprintf(command, SYSFS_BUS_ID_SIZE + 4, "add %s",
++                                  busid);
+       else
+-              snprintf(command, SYSFS_BUS_ID_SIZE + 4, "del %s", busid);
++              cmd_size = snprintf(command, SYSFS_BUS_ID_SIZE + 4, "del %s",
++                                  busid);
+       rc = write_sysfs_attribute(match_busid_attr_path, command,
+-                                 sizeof(command));
++                                 cmd_size);
+       if (rc < 0) {
+               dbg("failed to write match_busid: %s", strerror(errno));
+               return -1;
diff --git a/queue-4.4/usbip-stub-stop-printing-kernel-pointer-addresses-in-messages.patch b/queue-4.4/usbip-stub-stop-printing-kernel-pointer-addresses-in-messages.patch
new file mode 100644 (file)
index 0000000..24c1207
--- /dev/null
@@ -0,0 +1,74 @@
+From 248a22044366f588d46754c54dfe29ffe4f8b4df Mon Sep 17 00:00:00 2001
+From: Shuah Khan <shuahkh@osg.samsung.com>
+Date: Mon, 18 Dec 2017 17:23:37 -0700
+Subject: usbip: stub: stop printing kernel pointer addresses in messages
+
+From: Shuah Khan <shuahkh@osg.samsung.com>
+
+commit 248a22044366f588d46754c54dfe29ffe4f8b4df upstream.
+
+Remove and/or change debug, info. and error messages to not print
+kernel pointer addresses.
+
+Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/usbip/stub_main.c |    5 +++--
+ drivers/usb/usbip/stub_rx.c   |    7 ++-----
+ drivers/usb/usbip/stub_tx.c   |    4 ++--
+ 3 files changed, 7 insertions(+), 9 deletions(-)
+
+--- a/drivers/usb/usbip/stub_main.c
++++ b/drivers/usb/usbip/stub_main.c
+@@ -252,11 +252,12 @@ void stub_device_cleanup_urbs(struct stu
+       struct stub_priv *priv;
+       struct urb *urb;
+-      dev_dbg(&sdev->udev->dev, "free sdev %p\n", sdev);
++      dev_dbg(&sdev->udev->dev, "Stub device cleaning up urbs\n");
+       while ((priv = stub_priv_pop(sdev))) {
+               urb = priv->urb;
+-              dev_dbg(&sdev->udev->dev, "free urb %p\n", urb);
++              dev_dbg(&sdev->udev->dev, "free urb seqnum %lu\n",
++                      priv->seqnum);
+               usb_kill_urb(urb);
+               kmem_cache_free(stub_priv_cache, priv);
+--- a/drivers/usb/usbip/stub_rx.c
++++ b/drivers/usb/usbip/stub_rx.c
+@@ -230,9 +230,6 @@ static int stub_recv_cmd_unlink(struct s
+               if (priv->seqnum != pdu->u.cmd_unlink.seqnum)
+                       continue;
+-              dev_info(&priv->urb->dev->dev, "unlink urb %p\n",
+-                       priv->urb);
+-
+               /*
+                * This matched urb is not completed yet (i.e., be in
+                * flight in usb hcd hardware/driver). Now we are
+@@ -271,8 +268,8 @@ static int stub_recv_cmd_unlink(struct s
+               ret = usb_unlink_urb(priv->urb);
+               if (ret != -EINPROGRESS)
+                       dev_err(&priv->urb->dev->dev,
+-                              "failed to unlink a urb %p, ret %d\n",
+-                              priv->urb, ret);
++                              "failed to unlink a urb # %lu, ret %d\n",
++                              priv->seqnum, ret);
+               return 0;
+       }
+--- a/drivers/usb/usbip/stub_tx.c
++++ b/drivers/usb/usbip/stub_tx.c
+@@ -201,8 +201,8 @@ static int stub_send_ret_submit(struct s
+               /* 1. setup usbip_header */
+               setup_ret_submit_pdu(&pdu_header, urb);
+-              usbip_dbg_stub_tx("setup txdata seqnum: %d urb: %p\n",
+-                                pdu_header.base.seqnum, urb);
++              usbip_dbg_stub_tx("setup txdata seqnum: %d\n",
++                                pdu_header.base.seqnum);
+               usbip_header_correct_endian(&pdu_header, 1);
+               iov[iovnum].iov_base = &pdu_header;
diff --git a/queue-4.4/usbip-vhci-stop-printing-kernel-pointer-addresses-in-messages.patch b/queue-4.4/usbip-vhci-stop-printing-kernel-pointer-addresses-in-messages.patch
new file mode 100644 (file)
index 0000000..baa4697
--- /dev/null
@@ -0,0 +1,143 @@
+From 8272d099d05f7ab2776cf56a2ab9f9443be18907 Mon Sep 17 00:00:00 2001
+From: Shuah Khan <shuahkh@osg.samsung.com>
+Date: Mon, 18 Dec 2017 17:24:22 -0700
+Subject: usbip: vhci: stop printing kernel pointer addresses in messages
+
+From: Shuah Khan <shuahkh@osg.samsung.com>
+
+commit 8272d099d05f7ab2776cf56a2ab9f9443be18907 upstream.
+
+Remove and/or change debug, info. and error messages to not print
+kernel pointer addresses.
+
+Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/usbip/vhci_hcd.c |   10 ----------
+ drivers/usb/usbip/vhci_rx.c  |   23 +++++++++++------------
+ drivers/usb/usbip/vhci_tx.c  |    3 ++-
+ 3 files changed, 13 insertions(+), 23 deletions(-)
+
+--- a/drivers/usb/usbip/vhci_hcd.c
++++ b/drivers/usb/usbip/vhci_hcd.c
+@@ -467,9 +467,6 @@ static int vhci_urb_enqueue(struct usb_h
+       int ret = 0;
+       struct vhci_device *vdev;
+-      usbip_dbg_vhci_hc("enter, usb_hcd %p urb %p mem_flags %d\n",
+-                        hcd, urb, mem_flags);
+-
+       /* patch to usb_sg_init() is in 2.5.60 */
+       BUG_ON(!urb->transfer_buffer && urb->transfer_buffer_length);
+@@ -627,8 +624,6 @@ static int vhci_urb_dequeue(struct usb_h
+       struct vhci_priv *priv;
+       struct vhci_device *vdev;
+-      pr_info("dequeue a urb %p\n", urb);
+-
+       spin_lock(&the_controller->lock);
+       priv = urb->hcpriv;
+@@ -656,7 +651,6 @@ static int vhci_urb_dequeue(struct usb_h
+               /* tcp connection is closed */
+               spin_lock(&vdev->priv_lock);
+-              pr_info("device %p seems to be disconnected\n", vdev);
+               list_del(&priv->list);
+               kfree(priv);
+               urb->hcpriv = NULL;
+@@ -668,8 +662,6 @@ static int vhci_urb_dequeue(struct usb_h
+                * vhci_rx will receive RET_UNLINK and give back the URB.
+                * Otherwise, we give back it here.
+                */
+-              pr_info("gives back urb %p\n", urb);
+-
+               usb_hcd_unlink_urb_from_ep(hcd, urb);
+               spin_unlock(&the_controller->lock);
+@@ -698,8 +690,6 @@ static int vhci_urb_dequeue(struct usb_h
+               unlink->unlink_seqnum = priv->seqnum;
+-              pr_info("device %p seems to be still connected\n", vdev);
+-
+               /* send cmd_unlink and try to cancel the pending URB in the
+                * peer */
+               list_add_tail(&unlink->list, &vdev->unlink_tx);
+--- a/drivers/usb/usbip/vhci_rx.c
++++ b/drivers/usb/usbip/vhci_rx.c
+@@ -37,24 +37,23 @@ struct urb *pickup_urb_and_free_priv(str
+               urb = priv->urb;
+               status = urb->status;
+-              usbip_dbg_vhci_rx("find urb %p vurb %p seqnum %u\n",
+-                              urb, priv, seqnum);
++              usbip_dbg_vhci_rx("find urb seqnum %u\n", seqnum);
+               switch (status) {
+               case -ENOENT:
+                       /* fall through */
+               case -ECONNRESET:
+-                      dev_info(&urb->dev->dev,
+-                               "urb %p was unlinked %ssynchronuously.\n", urb,
+-                               status == -ENOENT ? "" : "a");
++                      dev_dbg(&urb->dev->dev,
++                               "urb seq# %u was unlinked %ssynchronuously\n",
++                               seqnum, status == -ENOENT ? "" : "a");
+                       break;
+               case -EINPROGRESS:
+                       /* no info output */
+                       break;
+               default:
+-                      dev_info(&urb->dev->dev,
+-                               "urb %p may be in a error, status %d\n", urb,
+-                               status);
++                      dev_dbg(&urb->dev->dev,
++                               "urb seq# %u may be in a error, status %d\n",
++                               seqnum, status);
+               }
+               list_del(&priv->list);
+@@ -78,8 +77,8 @@ static void vhci_recv_ret_submit(struct
+       spin_unlock(&vdev->priv_lock);
+       if (!urb) {
+-              pr_err("cannot find a urb of seqnum %u\n", pdu->base.seqnum);
+-              pr_info("max seqnum %d\n",
++              pr_err("cannot find a urb of seqnum %u max seqnum %d\n",
++                      pdu->base.seqnum,
+                       atomic_read(&the_controller->seqnum));
+               usbip_event_add(ud, VDEV_EVENT_ERROR_TCP);
+               return;
+@@ -102,7 +101,7 @@ static void vhci_recv_ret_submit(struct
+       if (usbip_dbg_flag_vhci_rx)
+               usbip_dump_urb(urb);
+-      usbip_dbg_vhci_rx("now giveback urb %p\n", urb);
++      usbip_dbg_vhci_rx("now giveback urb %u\n", pdu->base.seqnum);
+       spin_lock(&the_controller->lock);
+       usb_hcd_unlink_urb_from_ep(vhci_to_hcd(the_controller), urb);
+@@ -165,7 +164,7 @@ static void vhci_recv_ret_unlink(struct
+               pr_info("the urb (seqnum %d) was already given back\n",
+                       pdu->base.seqnum);
+       } else {
+-              usbip_dbg_vhci_rx("now giveback urb %p\n", urb);
++              usbip_dbg_vhci_rx("now giveback urb %d\n", pdu->base.seqnum);
+               /* If unlink is successful, status is -ECONNRESET */
+               urb->status = pdu->u.ret_unlink.status;
+--- a/drivers/usb/usbip/vhci_tx.c
++++ b/drivers/usb/usbip/vhci_tx.c
+@@ -82,7 +82,8 @@ static int vhci_send_cmd_submit(struct v
+               memset(&msg, 0, sizeof(msg));
+               memset(&iov, 0, sizeof(iov));
+-              usbip_dbg_vhci_tx("setup txdata urb %p\n", urb);
++              usbip_dbg_vhci_tx("setup txdata urb seqnum %lu\n",
++                                priv->seqnum);
+               /* 1. setup usbip_header */
+               setup_cmd_submit_pdu(&pdu_header, urb);