lkml.org 
[lkml]   [2018]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.16 241/410] usbip: keep usbip_device sockfd state in sync with tcp_socket
    3.16.57-rc1 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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.16: adjust filenames]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    drivers/staging/usbip/stub_dev.c | 3 +++
    drivers/staging/usbip/vhci_hcd.c | 2 ++
    2 files changed, 5 insertions(+)

    --- a/drivers/staging/usbip/stub_dev.c
    +++ b/drivers/staging/usbip/stub_dev.c
    @@ -114,6 +114,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);

    @@ -213,6 +214,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 */
    @@ -307,6 +309,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/staging/usbip/vhci_hcd.c
    +++ b/drivers/staging/usbip/vhci_hcd.c
    @@ -786,6 +786,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");

    @@ -833,6 +834,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-06-07 17:20    [W:4.309 / U:0.108 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site