msm: adsprpc: print process kill failure only when subsystem is up
Print error message if process kill on remote subsystem failed. Validate channel ID before dereferencing the channel info struct. When trying to release process on DSP, print failure message only when the subsystem is up, to avoid flooding of kernel logs for daemons. Change-Id: I1b7325d686f6e8699e6f98f529c5dff85cce630d Acked-by: Thyagarajan Venkatanarayanan <venkatan@qti.qualcomm.com> Signed-off-by: Tharun Kumar Merugu <mtharu@codeaurora.org>
This commit is contained in:
parent
6e94fb15c8
commit
a5cdf80ea8
1 changed files with 9 additions and 1 deletions
|
@ -652,7 +652,7 @@ static int fastrpc_mmap_create(struct fastrpc_file *fl, int fd, unsigned attr,
|
||||||
struct fastrpc_session_ctx *sess;
|
struct fastrpc_session_ctx *sess;
|
||||||
struct fastrpc_apps *apps = fl->apps;
|
struct fastrpc_apps *apps = fl->apps;
|
||||||
int cid = fl->cid;
|
int cid = fl->cid;
|
||||||
struct fastrpc_channel_ctx *chan = &apps->channel[cid];
|
struct fastrpc_channel_ctx *chan = NULL;
|
||||||
struct fastrpc_mmap *map = NULL;
|
struct fastrpc_mmap *map = NULL;
|
||||||
struct dma_attrs attrs;
|
struct dma_attrs attrs;
|
||||||
dma_addr_t region_start = 0;
|
dma_addr_t region_start = 0;
|
||||||
|
@ -660,6 +660,11 @@ static int fastrpc_mmap_create(struct fastrpc_file *fl, int fd, unsigned attr,
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
int err = 0, vmid;
|
int err = 0, vmid;
|
||||||
|
|
||||||
|
VERIFY(err, cid >= 0 && cid < NUM_CHANNELS);
|
||||||
|
if (err)
|
||||||
|
goto bail;
|
||||||
|
chan = &apps->channel[cid];
|
||||||
|
|
||||||
if (!fastrpc_mmap_find(fl, fd, va, len, mflags, ppmap))
|
if (!fastrpc_mmap_find(fl, fd, va, len, mflags, ppmap))
|
||||||
return 0;
|
return 0;
|
||||||
map = kzalloc(sizeof(*map), GFP_KERNEL);
|
map = kzalloc(sizeof(*map), GFP_KERNEL);
|
||||||
|
@ -2016,6 +2021,9 @@ static int fastrpc_release_current_dsp_process(struct fastrpc_file *fl)
|
||||||
ioctl.attrs = NULL;
|
ioctl.attrs = NULL;
|
||||||
VERIFY(err, 0 == (err = fastrpc_internal_invoke(fl,
|
VERIFY(err, 0 == (err = fastrpc_internal_invoke(fl,
|
||||||
FASTRPC_MODE_PARALLEL, 1, &ioctl)));
|
FASTRPC_MODE_PARALLEL, 1, &ioctl)));
|
||||||
|
if (err)
|
||||||
|
pr_err("adsprpc: %s: releasing DSP process failed for %s, returned 0x%x",
|
||||||
|
__func__, current->comm, err);
|
||||||
bail:
|
bail:
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue