From: Lars-Peter Clausen Date: Tue, 3 Jul 2012 21:58:39 +0000 (+0200) Subject: sr: fx2lafw: Do not start a new acquisition if the old is still running X-Git-Tag: dsupstream~882 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=c03f045004a340bd418206cbd02eaefcede91a5b;p=libsigrok.git sr: fx2lafw: Do not start a new acquisition if the old is still running This may happen if the acquisition_start is called right after calling acquisition_stop and not all transfers have been freed or on repeated calls to acquisition_start. If it happens we'll enter an undefined state and all kind of strange behavior may occur, so error out in such a case. Signed-off-by: Lars-Peter Clausen --- diff --git a/hardware/fx2lafw/fx2lafw.c b/hardware/fx2lafw/fx2lafw.c index 28866133..11e41fff 100644 --- a/hardware/fx2lafw/fx2lafw.c +++ b/hardware/fx2lafw/fx2lafw.c @@ -918,6 +918,10 @@ static int hw_dev_acquisition_start(int dev_index, void *cb_data) if (!(sdi = sr_dev_inst_get(dev_insts, dev_index))) return SR_ERR; ctx = sdi->priv; + + if (ctx->submitted_transfers != 0) + return SR_ERR; + ctx->session_dev_id = cb_data; ctx->num_samples = 0; ctx->empty_transfer_count = 0;