qcacmn: Add protection for pkt_log ops with module stop

Packet log ops are protected against load-unload and SSR, but not
against module stop. Take care to add check for module stop.
Also takecare to NULLing of wdi_event_list and NULL check before accessing.

Change-Id: I20d49ff587719fc14f60a53e86092383de6ef5b8
CRs-Fixed: 2131044
这个提交包含在:
Manjunathappa Prakash
2017-10-19 23:30:24 -07:00
提交者 snandini
父节点 a8cff1d786
当前提交 2620760503

查看文件

@@ -573,8 +573,8 @@ static int __pktlog_open(struct inode *i, struct file *f)
return -EBUSY;
}
if (cds_is_load_or_unload_in_progress() || cds_is_driver_recovering()) {
pr_info("%s: Load/Unload or recovery is in progress", __func__);
if (cds_is_module_state_transitioning()) {
pr_info("%s: module transition in progress", __func__);
return -EAGAIN;
}
@@ -639,8 +639,8 @@ static int __pktlog_release(struct inode *i, struct file *f)
if (!pl_info)
return -EINVAL;
if (cds_is_load_or_unload_in_progress() || cds_is_driver_recovering()) {
pr_info("%s: Load/Unload or recovery is in progress", __func__);
if (cds_is_module_state_transitioning()) {
pr_info("%s: module transition in progress", __func__);
return -EAGAIN;
}
@@ -860,8 +860,8 @@ __pktlog_read(struct file *file, char *buf, size_t nbytes, loff_t *ppos)
struct ath_pktlog_info *pl_info;
struct ath_pktlog_buf *log_buf;
if (cds_is_load_or_unload_in_progress() || cds_is_driver_recovering()) {
pr_info("%s: Load/Unload or recovery is in progress", __func__);
if (cds_is_module_state_transitioning()) {
pr_info("%s: module transition in progress", __func__);
return -EAGAIN;
}
@@ -1094,8 +1094,8 @@ static int __pktlog_mmap(struct file *file, struct vm_area_struct *vma)
return -ENOMEM;
}
if (cds_is_load_or_unload_in_progress() || cds_is_driver_recovering()) {
pr_info("%s: Load/Unload or recovery is in progress", __func__);
if (cds_is_module_state_transitioning()) {
pr_info("%s: module transition in progress", __func__);
return -EAGAIN;
}