mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-26 00:21:17 +00:00
iwlwifi: dbg: decrement occurrences for all triggers
iwl_fw_dbg_collect can be called by any function that already has the error string ready. iwl_fw_dbg_collect_trig, on the other hand, does string formatting. The occurrences decrement is at iwl_fw_dbg_collect_trig, instead of iwl_fw_dbg_collect, which causes it to sometimes be skipped. Move it to the right location. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
This commit is contained in:
parent
5bea4304ee
commit
af303252bf
2 changed files with 11 additions and 7 deletions
|
@ -1044,10 +1044,13 @@ IWL_EXPORT_SYMBOL(iwl_fw_dbg_collect_desc);
|
||||||
int iwl_fw_dbg_collect(struct iwl_fw_runtime *fwrt,
|
int iwl_fw_dbg_collect(struct iwl_fw_runtime *fwrt,
|
||||||
enum iwl_fw_dbg_trigger trig,
|
enum iwl_fw_dbg_trigger trig,
|
||||||
const char *str, size_t len,
|
const char *str, size_t len,
|
||||||
const struct iwl_fw_dbg_trigger_tlv *trigger)
|
struct iwl_fw_dbg_trigger_tlv *trigger)
|
||||||
{
|
{
|
||||||
struct iwl_fw_dump_desc *desc;
|
struct iwl_fw_dump_desc *desc;
|
||||||
|
|
||||||
|
if (trigger && !le16_to_cpu(trigger->occurrences))
|
||||||
|
return 0;
|
||||||
|
|
||||||
if (trigger && trigger->flags & IWL_FW_DBG_FORCE_RESTART) {
|
if (trigger && trigger->flags & IWL_FW_DBG_FORCE_RESTART) {
|
||||||
IWL_WARN(fwrt, "Force restart: trigger %d fired.\n", trig);
|
IWL_WARN(fwrt, "Force restart: trigger %d fired.\n", trig);
|
||||||
iwl_force_nmi(fwrt->trans);
|
iwl_force_nmi(fwrt->trans);
|
||||||
|
@ -1058,6 +1061,12 @@ int iwl_fw_dbg_collect(struct iwl_fw_runtime *fwrt,
|
||||||
if (!desc)
|
if (!desc)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
if (trigger) {
|
||||||
|
u16 occurrences = le16_to_cpu(trigger->occurrences) - 1;
|
||||||
|
|
||||||
|
trigger->occurrences = cpu_to_le16(occurrences);
|
||||||
|
}
|
||||||
|
|
||||||
desc->len = len;
|
desc->len = len;
|
||||||
desc->trig_desc.type = cpu_to_le32(trig);
|
desc->trig_desc.type = cpu_to_le32(trig);
|
||||||
memcpy(desc->trig_desc.data, str, len);
|
memcpy(desc->trig_desc.data, str, len);
|
||||||
|
@ -1070,13 +1079,9 @@ int iwl_fw_dbg_collect_trig(struct iwl_fw_runtime *fwrt,
|
||||||
struct iwl_fw_dbg_trigger_tlv *trigger,
|
struct iwl_fw_dbg_trigger_tlv *trigger,
|
||||||
const char *fmt, ...)
|
const char *fmt, ...)
|
||||||
{
|
{
|
||||||
u16 occurrences = le16_to_cpu(trigger->occurrences);
|
|
||||||
int ret, len = 0;
|
int ret, len = 0;
|
||||||
char buf[64];
|
char buf[64];
|
||||||
|
|
||||||
if (!occurrences)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (fmt) {
|
if (fmt) {
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
|
@ -1099,7 +1104,6 @@ int iwl_fw_dbg_collect_trig(struct iwl_fw_runtime *fwrt,
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
trigger->occurrences = cpu_to_le16(occurrences - 1);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
IWL_EXPORT_SYMBOL(iwl_fw_dbg_collect_trig);
|
IWL_EXPORT_SYMBOL(iwl_fw_dbg_collect_trig);
|
||||||
|
|
|
@ -111,7 +111,7 @@ int iwl_fw_dbg_collect_desc(struct iwl_fw_runtime *fwrt,
|
||||||
int iwl_fw_dbg_collect(struct iwl_fw_runtime *fwrt,
|
int iwl_fw_dbg_collect(struct iwl_fw_runtime *fwrt,
|
||||||
enum iwl_fw_dbg_trigger trig,
|
enum iwl_fw_dbg_trigger trig,
|
||||||
const char *str, size_t len,
|
const char *str, size_t len,
|
||||||
const struct iwl_fw_dbg_trigger_tlv *trigger);
|
struct iwl_fw_dbg_trigger_tlv *trigger);
|
||||||
int iwl_fw_dbg_collect_trig(struct iwl_fw_runtime *fwrt,
|
int iwl_fw_dbg_collect_trig(struct iwl_fw_runtime *fwrt,
|
||||||
struct iwl_fw_dbg_trigger_tlv *trigger,
|
struct iwl_fw_dbg_trigger_tlv *trigger,
|
||||||
const char *fmt, ...) __printf(3, 4);
|
const char *fmt, ...) __printf(3, 4);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue