File tree Expand file tree Collapse file tree 1 file changed +8
-6
lines changed Expand file tree Collapse file tree 1 file changed +8
-6
lines changed Original file line number Diff line number Diff line change @@ -1253,17 +1253,19 @@ int memory_failure(unsigned long pfn, int flags)
12531253 if (!sysctl_memory_failure_recovery )
12541254 panic ("Memory failure on page %lx" , pfn );
12551255
1256- if (!pfn_valid (pfn )) {
1256+ p = pfn_to_online_page (pfn );
1257+ if (!p ) {
1258+ if (pfn_valid (pfn )) {
1259+ pgmap = get_dev_pagemap (pfn , NULL );
1260+ if (pgmap )
1261+ return memory_failure_dev_pagemap (pfn , flags ,
1262+ pgmap );
1263+ }
12571264 pr_err ("Memory failure: %#lx: memory outside kernel control\n" ,
12581265 pfn );
12591266 return - ENXIO ;
12601267 }
12611268
1262- pgmap = get_dev_pagemap (pfn , NULL );
1263- if (pgmap )
1264- return memory_failure_dev_pagemap (pfn , flags , pgmap );
1265-
1266- p = pfn_to_page (pfn );
12671269 if (PageHuge (p ))
12681270 return memory_failure_hugetlb (pfn , flags );
12691271 if (TestSetPageHWPoison (p )) {
You can’t perform that action at this time.
0 commit comments