函数逻辑报告 |
Source Code:mm\memory-failure.c |
Create Date:2022-07-27 17:54:22 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:poison_memory - Unpoison a previously poisoned page*@pfn: Page number of the to be unpoisoned page* Software-unpoison a page that has been poisoned by* memory_failure() earlier
函数原型:int unpoison_memory(unsigned long pfn)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
unsigned long | pfn |
1523 | freeit等于0 |
1530 | p等于pfn_to_page(pfn) |
1531 | page等于compound_head(p) |
1533 | 如果非PageHWPoison(p)则 |
1534 | unpoison_pr_info("Unpoison: Page was already unpoisoned %#lx\n", pfn, & unpoison_rs) |
1536 | 返回:0 |
1539 | 如果page_count(page)大于1则 |
1540 | unpoison_pr_info("Unpoison: Someone grabs the hwpoison page %#lx\n", pfn, & unpoison_rs) |
1542 | 返回:0 |
1546 | unpoison_pr_info("Unpoison: Someone maps the hwpoison page %#lx\n", pfn, & unpoison_rs) |
1548 | 返回:0 |
1551 | 如果page_mapping(page)则 |
1552 | unpoison_pr_info("Unpoison: the hwpoison page has non-NULL mapping %#lx\n", pfn, & unpoison_rs) |
1554 | 返回:0 |
1563 | unpoison_pr_info("Unpoison: Memory failure is now running on %#lx\n", pfn, & unpoison_rs) |
1565 | 返回:0 |
1569 | 如果TestClearPageHWPoison(p)则num_poisoned_pages_dec() |
1571 | unpoison_pr_info("Unpoison: Software-unpoisoned free page %#lx\n", pfn, & unpoison_rs) |
1573 | 返回:0 |
1583 | 如果TestClearPageHWPoison(page)则 |
1584 | unpoison_pr_info("Unpoison: Software-unpoisoned page %#lx\n", pfn, & unpoison_rs) |
1586 | num_poisoned_pages_dec() |
1587 | freeit等于1 |
1591 | put_hwpoison_page(page) |
1592 | 如果freeit且非pfn恒等于my_zero_pfn(0)且page_count(p)恒等于1的值则put_hwpoison_page(page) |
1595 | 返回:0 |
名称 | 描述 |
---|---|
hwpoison_unpoison |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |