lkml.org 
[lkml]   [2018]   [Feb]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 029/193] usbip: keep usbip_device sockfd state in sync with tcp_socket
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Shuah Khan <shuahkh@osg.samsung.com>

    commit 009f41aed4b3e11e6dc1e3c07377a10c20f1a5ed upstream.

    Keep usbip_device sockfd state in sync with tcp_socket. When tcp_socket
    is reset to null, reset sockfd to -1 to keep it in sync.

    Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/usb/usbip/stub_dev.c | 3 +++
    drivers/usb/usbip/vhci_hcd.c | 2 ++
    2 files changed, 5 insertions(+)

    --- a/drivers/usb/usbip/stub_dev.c
    +++ b/drivers/usb/usbip/stub_dev.c
    @@ -87,6 +87,7 @@ static ssize_t store_sockfd(struct devic
    goto err;

    sdev->ud.tcp_socket = socket;
    + sdev->ud.sockfd = sockfd;

    spin_unlock_irq(&sdev->ud.lock);

    @@ -186,6 +187,7 @@ static void stub_shutdown_connection(str
    if (ud->tcp_socket) {
    sockfd_put(ud->tcp_socket);
    ud->tcp_socket = NULL;
    + ud->sockfd = -1;
    }

    /* 3. free used data */
    @@ -280,6 +282,7 @@ static struct stub_device *stub_device_a
    sdev->ud.status = SDEV_ST_AVAILABLE;
    spin_lock_init(&sdev->ud.lock);
    sdev->ud.tcp_socket = NULL;
    + sdev->ud.sockfd = -1;

    INIT_LIST_HEAD(&sdev->priv_init);
    INIT_LIST_HEAD(&sdev->priv_tx);
    --- a/drivers/usb/usbip/vhci_hcd.c
    +++ b/drivers/usb/usbip/vhci_hcd.c
    @@ -797,6 +797,7 @@ static void vhci_shutdown_connection(str
    if (vdev->ud.tcp_socket) {
    sockfd_put(vdev->ud.tcp_socket);
    vdev->ud.tcp_socket = NULL;
    + vdev->ud.sockfd = -1;
    }
    pr_info("release socket\n");

    @@ -844,6 +845,7 @@ static void vhci_device_reset(struct usb
    if (ud->tcp_socket) {
    sockfd_put(ud->tcp_socket);
    ud->tcp_socket = NULL;
    + ud->sockfd = -1;
    }
    ud->status = VDEV_ST_NULL;


    \
     
     \ /
      Last update: 2018-02-23 21:40    [W:4.421 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site