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
这个提交包含在:
@@ -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;
|
||||
}
|
||||
|
||||
|
在新工单中引用
屏蔽一个用户