NFC: digital: Call pending command callbacks at device unregister
With this patch, when freeing the command queue in the module unregister function, the callbacks of the commands still queued are called with a ENODEV error. This gives a chance to the command issuer to free any memory it could have allocate. Signed-off-by: Thierry Escande <thierry.escande@collabora.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
3f89fea35f
commit
82e5795286
|
@ -842,6 +842,14 @@ void nfc_digital_unregister_device(struct nfc_digital_dev *ddev)
|
|||
|
||||
list_for_each_entry_safe(cmd, n, &ddev->cmd_queue, queue) {
|
||||
list_del(&cmd->queue);
|
||||
|
||||
/* Call the command callback if any and pass it a ENODEV error.
|
||||
* This gives a chance to the command issuer to free any
|
||||
* allocated buffer.
|
||||
*/
|
||||
if (cmd->cmd_cb)
|
||||
cmd->cmd_cb(ddev, cmd->cb_context, ERR_PTR(-ENODEV));
|
||||
|
||||
kfree(cmd->mdaa_params);
|
||||
kfree(cmd);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue