checkpatch is giving a warning about an assignment in the if condition.
The assignment was there as the valid mbo pointer was used after we have
woken up from wait_event_interruptible(). Now even though we donot
assign the pointer to mbo but we will still be able to get the valid
pointer for later use.

Signed-off-by: Sudip Mukherjee <su...@vectorindia.org>
---
 drivers/staging/most/aim-cdev/cdev.c          | 10 +++++-----
 drivers/staging/most/aim-network/networking.c |  2 +-
 drivers/staging/most/aim-sound/sound.c        |  4 ++--
 drivers/staging/most/hdm-dim2/dim2_hdm.c      |  2 +-
 drivers/staging/most/mostcore/core.c          |  3 ++-
 drivers/staging/most/mostcore/mostcore.h      |  2 +-
 6 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/most/aim-cdev/cdev.c 
b/drivers/staging/most/aim-cdev/cdev.c
index 3f7c8bb..ff35967 100644
--- a/drivers/staging/most/aim-cdev/cdev.c
+++ b/drivers/staging/most/aim-cdev/cdev.c
@@ -168,17 +168,17 @@ static ssize_t aim_write(struct file *filp, const char 
__user *buf,
        }
        mutex_unlock(&channel->io_mutex);
 
-       mbo = most_get_mbo(channel->iface, channel->channel_id, &cdev_aim);
+       mbo = most_get_mbo(channel->iface, channel->channel_id,
+                          &cdev_aim, &mbo);
 
        if (!mbo) {
                if ((filp->f_flags & O_NONBLOCK))
                        return -EAGAIN;
                if (wait_event_interruptible(
                            channel->wq,
-                           (mbo = most_get_mbo(channel->iface,
-                                               channel->channel_id,
-                                               &cdev_aim)) ||
-                           (!channel->dev)))
+                           most_get_mbo(channel->iface, channel->channel_id,
+                                        &cdev_aim, &mbo)) ||
+                           (!channel->dev))
                        return -ERESTARTSYS;
        }
 
diff --git a/drivers/staging/most/aim-network/networking.c 
b/drivers/staging/most/aim-network/networking.c
index 3c7beb0..84678bb 100644
--- a/drivers/staging/most/aim-network/networking.c
+++ b/drivers/staging/most/aim-network/networking.c
@@ -241,7 +241,7 @@ static netdev_tx_t most_nd_start_xmit(struct sk_buff *skb,
 
        BUG_ON(nd->dev != dev);
 
-       mbo = most_get_mbo(nd->iface, nd->tx.ch_id, &aim);
+       mbo = most_get_mbo(nd->iface, nd->tx.ch_id, &aim, &mbo);
 
        if (!mbo) {
                netif_stop_queue(dev);
diff --git a/drivers/staging/most/aim-sound/sound.c 
b/drivers/staging/most/aim-sound/sound.c
index 9c64580..f5d5d87 100644
--- a/drivers/staging/most/aim-sound/sound.c
+++ b/drivers/staging/most/aim-sound/sound.c
@@ -240,8 +240,8 @@ static int playback_thread(void *data)
                        channel->playback_waitq,
                        kthread_should_stop() ||
                        (channel->is_stream_running &&
-                        (mbo = most_get_mbo(channel->iface, channel->id,
-                                            &audio_aim))));
+                        most_get_mbo(channel->iface, channel->id,
+                                     &audio_aim, &mbo)));
                if (!mbo)
                        continue;
 
diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c 
b/drivers/staging/most/hdm-dim2/dim2_hdm.c
index 327d738..ef0ca59 100644
--- a/drivers/staging/most/hdm-dim2/dim2_hdm.c
+++ b/drivers/staging/most/hdm-dim2/dim2_hdm.c
@@ -667,7 +667,7 @@ static void request_netinfo(struct most_interface 
*most_iface, int ch_idx)
                return;
        }
 
-       mbo = most_get_mbo(&dev->most_iface, dev->atx_idx, NULL);
+       mbo = most_get_mbo(&dev->most_iface, dev->atx_idx, NULL, &mbo);
        if (!mbo)
                return;
 
diff --git a/drivers/staging/most/mostcore/core.c 
b/drivers/staging/most/mostcore/core.c
index ed1ed25..535c79b 100644
--- a/drivers/staging/most/mostcore/core.c
+++ b/drivers/staging/most/mostcore/core.c
@@ -1412,7 +1412,7 @@ EXPORT_SYMBOL_GPL(channel_has_mbo);
  * Returns a pointer to MBO on success or NULL otherwise.
  */
 struct mbo *most_get_mbo(struct most_interface *iface, int id,
-                        struct most_aim *aim)
+                        struct most_aim *aim, struct mbo **mbo_p)
 {
        struct mbo *mbo;
        struct most_c_obj *c;
@@ -1446,6 +1446,7 @@ struct mbo *most_get_mbo(struct most_interface *iface, 
int id,
 
        mbo->num_buffers_ptr = num_buffers_ptr;
        mbo->buffer_length = c->cfg.buffer_size;
+       *mbo_p = mbo;
        return mbo;
 }
 EXPORT_SYMBOL_GPL(most_get_mbo);
diff --git a/drivers/staging/most/mostcore/mostcore.h 
b/drivers/staging/most/mostcore/mostcore.h
index bda3850..a8957f5 100644
--- a/drivers/staging/most/mostcore/mostcore.h
+++ b/drivers/staging/most/mostcore/mostcore.h
@@ -308,7 +308,7 @@ void most_resume_enqueue(struct most_interface *iface, int 
channel_idx);
 int most_register_aim(struct most_aim *aim);
 int most_deregister_aim(struct most_aim *aim);
 struct mbo *most_get_mbo(struct most_interface *iface, int channel_idx,
-                        struct most_aim *);
+                        struct most_aim *, struct mbo **);
 void most_put_mbo(struct mbo *mbo);
 int channel_has_mbo(struct most_interface *iface, int channel_idx);
 int most_start_channel(struct most_interface *iface, int channel_idx,
-- 
1.9.1

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to