Merge "msm: ADSPRPC: avoid sending new requests to dsp while device_release"

This commit is contained in:
Linux Build Service Account 2017-07-19 09:10:28 -07:00 committed by Gerrit - the friendly Code Review server
commit 8ee12d5cb2

View file

@ -291,6 +291,7 @@ struct fastrpc_file {
int cid;
int ssrcount;
int pd;
int file_close;
struct fastrpc_apps *apps;
struct fastrpc_perf perf;
struct dentry *debugfs_file;
@ -2195,6 +2196,9 @@ static int fastrpc_file_free(struct fastrpc_file *fl)
return 0;
}
(void)fastrpc_release_current_dsp_process(fl);
spin_lock(&fl->hlock);
fl->file_close = 1;
spin_unlock(&fl->hlock);
fastrpc_context_list_dtor(fl);
fastrpc_buf_list_free(fl);
hlist_for_each_entry_safe(map, n, &fl->maps, hn) {
@ -2583,6 +2587,14 @@ static long fastrpc_device_ioctl(struct file *file, unsigned int ioctl_num,
p.inv.fds = 0;
p.inv.attrs = 0;
spin_lock(&fl->hlock);
if (fl->file_close == 1) {
err = EBADF;
pr_warn("ADSPRPC: fastrpc_device_release is happening, So not sending any new requests to DSP");
spin_unlock(&fl->hlock);
goto bail;
}
spin_unlock(&fl->hlock);
switch (ioctl_num) {
case FASTRPC_IOCTL_INVOKE: