2009-11-18 03:44:48

by Xiaotian Feng

[permalink] [raw]
Subject: [PATCH] x86/pat: no need to check overlaps with more than one entry in chk_conflict

memtype list is built via reserve_memtype, for the overlapped areas, they're
all the same type, otherwise reserve_memtype will fail to insert it into the
list. So there's no need to check overlaps with more than one entry in the
chk_conflict code.

Signed-off-by: Xiaotian Feng <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Suresh Siddha <[email protected]>
Cc: Venkatesh Pallipadi <[email protected]>
---
arch/x86/mm/pat.c | 7 -------
1 files changed, 0 insertions(+), 7 deletions(-)

diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
index 81fb753..8178763 100644
--- a/arch/x86/mm/pat.c
+++ b/arch/x86/mm/pat.c
@@ -247,13 +247,6 @@ chk_conflict(struct memtype *new, struct memtype *entry, unsigned long *type)
goto conflict;
}

- /* check overlaps with more than one entry in the list */
- list_for_each_entry_continue(entry, &memtype_list, nd) {
- if (new->end <= entry->start)
- break;
- else if (new->type != entry->type)
- goto conflict;
- }
return 0;

conflict:
--
1.6.2.5


2009-11-18 17:26:28

by Pallipadi, Venkatesh

[permalink] [raw]
Subject: RE: [PATCH] x86/pat: no need to check overlaps with more than one entry in chk_conflict

>-----Original Message-----
>From: [email protected]
>[mailto:[email protected]] On Behalf Of Xiaotian Feng
>Sent: Tuesday, November 17, 2009 6:48 PM
>To: [email protected]
>Cc: [email protected]; Xiaotian Feng; Ingo Molnar;
>Siddha, Suresh B; Pallipadi, Venkatesh
>Subject: [PATCH] x86/pat: no need to check overlaps with more
>than one entry in chk_conflict
>
>memtype list is built via reserve_memtype, for the overlapped
>areas, they're
>all the same type, otherwise reserve_memtype will fail to
>insert it into the
>list. So there's no need to check overlaps with more than one
>entry in the
>chk_conflict code.

NAK.

The reason we have to check for more than one entry is for the cases
like this.

New entry: s-------------------e
Existing entries: s----e s-----e s----e
(s=start, e=end)

Thanks,
Venki-