函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |