On Mon, Jul 01, 2013 at 08:37:43PM +0530, Naveen N. Rao wrote:On 06/28/2013 11:01 PM, Tony Luck wrote:+ if (sec_sev == GHES_SEV_CORRECTED &&
+ (gdata->flags & CPER_SEC_ERROR_THRESHOLD_EXCEEDED) &&
+ (mem_err->validation_bits & CPER_MEM_VALID_PHYSICAL_ADDRESS)) {
+ unsigned long pfn;
+ pfn = mem_err->physical_addr >> PAGE_SHIFT;
As Reagan said "Trust ... but verify" ... we should make sure BIOS
gave us a good pfn
if (pfn_valid(pfn))
soft_memory_failure_queue(pfn, 0, 0);
else
printk( ...something about
BIOS giving us bad pfn = %lu\n", pfn);
Ah, nice catch - I thought soft_offline_page() takes care of this,
but it sure is good to point a finger at the firmware.
While at it maybe make it pr_warning(FW_BUG or FW_WARN...