Don't compute value of offset during initialization. Assigning a value to
offset should happen after we have verified all of its components.

Signed-off-by: David Kershner <david.kersh...@unisys.com>
Reviewed-by: Tim Sell <timothy.s...@unisys.com>
---
 drivers/staging/unisys/visorbus/visorbus_main.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/unisys/visorbus/visorbus_main.c 
b/drivers/staging/unisys/visorbus/visorbus_main.c
index 589dff3..ea12499 100644
--- a/drivers/staging/unisys/visorbus/visorbus_main.c
+++ b/drivers/staging/unisys/visorbus/visorbus_main.c
@@ -743,11 +743,12 @@ static void write_vbus_chp_info(struct visorchannel *chan,
                                struct visor_vbus_headerinfo *hdr_info,
                                struct visor_vbus_deviceinfo *info)
 {
-       int off = sizeof(struct channel_header) + hdr_info->chp_info_offset;
+       int off;
 
        if (hdr_info->chp_info_offset == 0)
                return;
 
+       off = sizeof(struct channel_header) + hdr_info->chp_info_offset;
        visorchannel_write(chan, off, info, sizeof(*info));
 }
 
@@ -768,11 +769,11 @@ static void write_vbus_bus_info(struct visorchannel *chan,
                                struct visor_vbus_headerinfo *hdr_info,
                                struct visor_vbus_deviceinfo *info)
 {
-       int off = sizeof(struct channel_header) + hdr_info->bus_info_offset;
+       int off;
 
        if (hdr_info->bus_info_offset == 0)
                return;
-
+       off = sizeof(struct channel_header) + hdr_info->bus_info_offset;
        visorchannel_write(chan, off, info, sizeof(*info));
 }
 
@@ -795,13 +796,12 @@ static void write_vbus_dev_info(struct visorchannel *chan,
                                struct visor_vbus_deviceinfo *info,
                                unsigned int devix)
 {
-       int off =
-           (sizeof(struct channel_header) + hdr_info->dev_info_offset) +
-           (hdr_info->device_info_struct_bytes * devix);
+       int off;
 
        if (hdr_info->dev_info_offset == 0)
                return;
-
+       off = (sizeof(struct channel_header) + hdr_info->dev_info_offset) +
+             (hdr_info->device_info_struct_bytes * devix);
        visorchannel_write(chan, off, info, sizeof(*info));
 }
 
-- 
1.9.1

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

Reply via email to