atm: he: Fix undefined sequence points.
authorDavid S. Miller <davem@davemloft.net>
Sun, 17 Apr 2011 07:07:55 +0000 (00:07 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 17 Apr 2011 07:07:55 +0000 (00:07 -0700)
GCC complains in these queue index operations because we
perform operations of the form:

x = some_operation(++x);

which is undefined.  Replace with:

x = some_operation(x + 1);

which is well defined and provides the intended operation.

Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/atm/he.c

index 6cf59bf281dc1b601884586b7d8651ea0ecbeaa7..9a51df4f5b746518fd7e580882f1c261eb202500 100644 (file)
@@ -1801,7 +1801,7 @@ return_host_buffers:
 next_rbrq_entry:
                he_dev->rbrq_head = (struct he_rbrq *)
                                ((unsigned long) he_dev->rbrq_base |
-                                       RBRQ_MASK(++he_dev->rbrq_head));
+                                       RBRQ_MASK(he_dev->rbrq_head + 1));
 
        }
        read_unlock(&vcc_sklist_lock);
@@ -1884,7 +1884,7 @@ next_tbrq_entry:
                        pci_pool_free(he_dev->tpd_pool, tpd, TPD_ADDR(tpd->status));
                he_dev->tbrq_head = (struct he_tbrq *)
                                ((unsigned long) he_dev->tbrq_base |
-                                       TBRQ_MASK(++he_dev->tbrq_head));
+                                       TBRQ_MASK(he_dev->tbrq_head + 1));
        }
 
        if (updated) {