if (cookie == NULL)
return err;
+ if (cookie->cb != NULL)
+ cookie->cb(cookie->adapter_idx, cookie->target_idx, err);
+
if (cookie->ndef != NULL)
g_free(cookie->ndef->data);
err = data_read(t3_tag);
-out_err:
- if (err < 0) {
- if (cookie->cb)
- cookie->cb(cookie->adapter_idx, cookie->target_idx,
- err);
+ /*
+ * As reading isn't complete,
+ * callback shouldn't be called while freeing the cookie
+ */
+ if (err == 0)
+ cookie->cb = NULL;
+out_err:
+ if (err < 0)
g_free(t3_tag);
- }
return t3_cookie_release(err, cookie);
}
return 0;
out_err:
- if (err < 0 && cookie->cb)
- cookie->cb(cookie->adapter_idx,
- cookie->target_idx, err);
-
return t3_cookie_release(err, cookie);
}
near_tag_set_ic_type(tag, cookie->ic_type);
near_tag_set_blank(tag, TRUE);
- if (cookie->cb)
- cookie->cb(cookie->adapter_idx,
- cookie->target_idx, 0);
-
return t3_cookie_release(0, cookie);
} else {
/* CMD POLL */
return 0;
out_err:
- if (err < 0 && cookie->cb)
- cookie->cb(cookie->adapter_idx, cookie->target_idx, err);
-
return t3_cookie_release(err, cookie);
}
return 0;
out_err:
- if (err < 0 && cookie->cb)
- cookie->cb(cookie->adapter_idx, cookie->target_idx, err);
-
return t3_cookie_release(err, cookie);
}
DBG("Done writing");
out_err:
- if (cookie->cb)
- cookie->cb(cookie->adapter_idx, cookie->target_idx, err);
-
return t3_cookie_release(err, cookie);
}
return 0;
out_err:
- if (err < 0 && cookie->cb)
- cookie->cb(cookie->adapter_idx, cookie->target_idx, err);
-
return t3_cookie_release(err, cookie);
}
if (length < 0)
err = -EIO;
- if (cookie->cb)
- cookie->cb(cookie->adapter_idx,
- cookie->target_idx, err);
-
return t3_cookie_release(err, cookie);
}
return near_adapter_send(adapter_idx, (uint8_t *) &cmd,
cmd.len, check_presence, cookie,
t3_cookie_release);
-
}
static int format_resp(uint8_t *resp, int length, void *data)
DBG("Formatting is done");
out_err:
- if (cookie->cb)
- cookie->cb(cookie->adapter_idx, cookie->target_idx, err);
-
return t3_cookie_release(err, cookie);
}
return 0;
out_err:
- if (err < 0 && cookie->cb)
- cookie->cb(cookie->adapter_idx, cookie->target_idx, err);
-
return t3_cookie_release(err, cookie);
}
return 0;
out_err:
- if (err < 0 && cookie->cb)
- cookie->cb(cookie->adapter_idx, cookie->target_idx, err);
-
return t3_cookie_release(err, cookie);
}
struct t3_cookie *cookie;
uint8_t ic_type;
uint8_t *idm, len;
- int err;
DBG("");
cookie->ic_type = ic_type;
idm = near_tag_get_idm(tag, &len);
- if (idm == NULL) {
- err = -EINVAL;
- goto out_err;
- }
+ if (idm == NULL)
+ return t3_cookie_release(-EINVAL, cookie);
memcpy(cookie->IDm, idm, len);
write_mc_block, cookie,
t3_cookie_release);
-out_err:
- return t3_cookie_release(err, cookie);
}
static struct near_tag_driver type1_driver = {