Commit f0c8e2a3 authored by Keith Owens's avatar Keith Owens Committed by David Mosberger

[PATCH] ia64: Avoid double clear of CMC/CPE records

Credit to Ben Woodard <ben@zork.net>.
parent bfe27d15
...@@ -348,6 +348,8 @@ salinfo_log_read_cpu(void *context) ...@@ -348,6 +348,8 @@ salinfo_log_read_cpu(void *context)
{ {
struct salinfo_data *data = context; struct salinfo_data *data = context;
data->log_size = ia64_sal_get_state_info(data->type, (u64 *) data->log_buffer); data->log_size = ia64_sal_get_state_info(data->type, (u64 *) data->log_buffer);
if (data->type == SAL_INFO_TYPE_CPE || data->type == SAL_INFO_TYPE_CMC)
ia64_sal_clear_state_info(data->type);
} }
static void static void
...@@ -440,8 +442,11 @@ salinfo_log_clear(struct salinfo_data *data, int cpu) ...@@ -440,8 +442,11 @@ salinfo_log_clear(struct salinfo_data *data, int cpu)
data->saved_num = 0; data->saved_num = 0;
spin_unlock_irqrestore(&data_saved_lock, flags); spin_unlock_irqrestore(&data_saved_lock, flags);
} }
/* ia64_mca_log_sal_error_record or salinfo_log_read_cpu already cleared
* CPE and CMC errors
*/
if (data->type != SAL_INFO_TYPE_CPE && data->type != SAL_INFO_TYPE_CMC)
call_on_cpu(cpu, salinfo_log_clear_cpu, data); call_on_cpu(cpu, salinfo_log_clear_cpu, data);
/* clearing a record may make a new record visible */ /* clearing a record may make a new record visible */
salinfo_log_new_read(cpu, data); salinfo_log_new_read(cpu, data);
if (data->state == STATE_LOG_RECORD && if (data->state == STATE_LOG_RECORD &&
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment