
Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[tlug] about sanitize_e820_map()
- Date: Sat, 14 Jan 2006 17:45:41 +0900 (JST)
- From: Toshiyuki Ishii <psbfan@example.com>
- Subject: [tlug] about sanitize_e820_map()
Good Evening.
I am Toshiyuki Ishii at Kurashiki.
I am a beginner of kernel source code,
so sorry if I am misunderstanding.
In sanitize_e820_map() I have a quistion.
When sorting change_point[] by address and swapping
two maps that represets the same memory region
and have a different address, end address for privious change_point
and start address for current change_point,
"if" statement is
if ((change_point[i]->addr < change_point[i-1]->addr) ||
((change_point[i]->addr == change_point[i-1]->addr) &&
(change_point[i]->addr == change_point[i]->pbios->addr) &&
(change_point[i-1]->addr != change_point[i-1]->pbios->addr))
There are two conditions and I think the first one is sorting by address.
I have a qestion in the second condition.
I think second line
change_point[i]->addr == change_point[i]->pbios->addr
checks that current change_point represents start address.
and third line
change_point[i-1]->addr != change_point[i-1]->pbios->addr
checks that previous change_point represents end address.
If this "if" statement intends to swap maps for "the same" region
that match these condition, the first line should be
change_point[i]->pbios->addr == change_point[i-1]->pbios->addr
I think.
Am I wrong?
Home |
Main Index |
Thread Index