static inline void pn533_poll_next_mod(struct pn533 *dev)
{
+ if (!dev->poll_mod_count) {
+ WARN(1, "poll_mod_count is zero!");
+ return;
+ }
dev->poll_mod_curr = (dev->poll_mod_curr + 1) % dev->poll_mod_count;
}
/* We must stop the poll after a valid target found */
if (rc == 0) {
+ del_timer(&dev->listen_timer);
pn533_poll_reset_mod_list(dev);
return 0;
}
dev->nfc_dev->targets[0].idx,
0, NFC_RF_INITIATOR);
- if (!rc)
+ if (!rc) {
+ del_timer(&dev->listen_timer);
pn533_poll_reset_mod_list(dev);
+ }
}
error:
dev_kfree_skb(resp);
dev_dbg(&dev->interface->dev, "%s\n", __func__);
+ del_timer(&dev->listen_timer);
pn533_poll_reset_mod_list(dev);
if (dev->tgt_mode || dev->tgt_active_prot)