link-mso19: Use default dev_clear() handler
The link-mso19 open-codes the std_dev_clear() function and uses it as its custom dev_clear() callback. The std_dev_clear() function is automatically called if no custom dev_clear() callback is specified, so just drop custom implementation and use the default. This also fixes a memory leak where the link-mso19 driver did not properly free its driver state struct in the dev_clear() callback. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
This commit is contained in:
parent
f1e93a951e
commit
e5ff8e9e0a
|
@ -50,39 +50,6 @@ static const uint64_t samplerates[] = {
|
|||
SR_HZ(100),
|
||||
};
|
||||
|
||||
/* TODO: Use sr_dev_inst to store connection handle & use std_dev_clear(). */
|
||||
static int dev_clear(const struct sr_dev_driver *di)
|
||||
{
|
||||
struct drv_context *drvc = di->context;
|
||||
GSList *l;
|
||||
struct sr_dev_inst *sdi;
|
||||
struct dev_context *devc;
|
||||
int ret = SR_OK;
|
||||
|
||||
/* Properly close and free all devices. */
|
||||
for (l = drvc->instances; l; l = l->next) {
|
||||
if (!(sdi = l->data)) {
|
||||
/* Log error, but continue cleaning up the rest. */
|
||||
sr_err("%s: sdi was NULL, continuing", __func__);
|
||||
ret = SR_ERR_BUG;
|
||||
continue;
|
||||
}
|
||||
if (!(devc = sdi->priv)) {
|
||||
/* Log error, but continue cleaning up the rest. */
|
||||
sr_err("%s: sdi->priv was NULL, continuing", __func__);
|
||||
ret = SR_ERR_BUG;
|
||||
continue;
|
||||
}
|
||||
std_serial_dev_close(sdi);
|
||||
sr_serial_dev_inst_free(devc->serial);
|
||||
sr_dev_inst_free(sdi);
|
||||
}
|
||||
g_slist_free(drvc->instances);
|
||||
drvc->instances = NULL;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static GSList *scan(struct sr_dev_driver *di, GSList *options)
|
||||
{
|
||||
int i;
|
||||
|
@ -446,7 +413,6 @@ static struct sr_dev_driver link_mso19_driver_info = {
|
|||
.cleanup = std_cleanup,
|
||||
.scan = scan,
|
||||
.dev_list = std_dev_list,
|
||||
.dev_clear = dev_clear,
|
||||
.config_get = config_get,
|
||||
.config_set = config_set,
|
||||
.config_list = config_list,
|
||||
|
|
Loading…
Reference in New Issue