mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
Revert "mm: don't hold heap lock in alloc_heap_pages() longer than necessary"
This reverts commit dab6a84aad,
as it introduces a race with free_heap_pages().
This commit is contained in:
1 parent
dab6a84aad
commit
dfe280c17d
1 file changed
+1
-6
@@ -855,7 +855,6 @@ static struct page_info *alloc_heap_pages(
|
||||
struct page_info *pg;
|
||||
bool need_tlbflush = false;
|
||||
uint32_t tlbflush_timestamp = 0;
|
||||
unsigned int dirty_cnt = 0;
|
||||
|
||||
/* Make sure there are enough bits in memflags for nodeID. */
|
||||
BUILD_BUG_ON((_MEMF_bits - _MEMF_node) < (8 * sizeof(nodeid_t)));
|
||||
@@ -944,8 +943,6 @@ static struct page_info *alloc_heap_pages(
|
||||
if ( d != NULL )
|
||||
d->last_alloc_node = node;
|
||||
|
||||
spin_unlock(&heap_lock);
|
||||
|
||||
for ( i = 0; i < (1 << order); i++ )
|
||||
{
|
||||
/* Reference count must continuously be zero for free pages. */
|
||||
@@ -955,7 +952,7 @@ static struct page_info *alloc_heap_pages(
|
||||
{
|
||||
if ( !(memflags & MEMF_no_scrub) )
|
||||
scrub_one_page(&pg[i]);
|
||||
dirty_cnt++;
|
||||
node_need_scrub[node]--;
|
||||
}
|
||||
|
||||
pg[i].count_info = PGC_state_inuse;
|
||||
@@ -977,8 +974,6 @@ static struct page_info *alloc_heap_pages(
|
||||
check_one_page(&pg[i]);
|
||||
}
|
||||
|
||||
spin_lock(&heap_lock);
|
||||
node_need_scrub[node] -= dirty_cnt;
|
||||
spin_unlock(&heap_lock);
|
||||
|
||||
if ( need_tlbflush )
|
||||
|
||||