The CHANGE(x, y) macro in adapter.c is supposed to evaluate to 0 if x and
y are identical, otherwise it is supposed to assign y to x and evaluate
to 1. The definition is incorrect though, and in the latter case the
assignment is done but the macro still evaluates to 0. This patch fixes
the problem.
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
(x) == NDIS_OFFLOAD_PARAMETERS_RX_ENABLED_TX_DISABLED)
#define TX_ENABLED(x) ((x) == NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED || \
(x) == NDIS_OFFLOAD_PARAMETERS_TX_ENABLED_RX_DISABLED)
-#define CHANGE(x, y) (((x) == (y)) ? 0 : (((x) = (y)) != (y)))
+#define CHANGE(x, y) (((x) == (y)) ? 0 : (((x) = (y)), 1))
static NDIS_STATUS
AdapterGetTcpOffloadParameters(