staging: most: move call to disconnect_channel callback
authorChristian Gromm <christian.gromm@microchip.com>
Tue, 22 Dec 2015 09:52:52 +0000 (10:52 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 8 Feb 2016 01:34:58 +0000 (17:34 -0800)
This patch invokes AIM's disconnect_channel callback before the
corresponding pointers are re-initialized to NULL.

Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/most/mostcore/core.c

index 995987d352a8b95d1a837052d5b5bae9a0330a6d..d5ef61df1f9b3ec37f37a256102ebc8bed605555 100644 (file)
@@ -1046,12 +1046,12 @@ static ssize_t store_remove_link(struct most_aim_obj *aim_obj,
        if (IS_ERR(c))
                return -ENODEV;
 
+       if (aim_obj->driver->disconnect_channel(c->iface, c->channel_id))
+               return -EIO;
        if (c->aim0.ptr == aim_obj->driver)
                c->aim0.ptr = NULL;
        if (c->aim1.ptr == aim_obj->driver)
                c->aim1.ptr = NULL;
-       if (aim_obj->driver->disconnect_channel(c->iface, c->channel_id))
-               return -EIO;
        return len;
 }