2008-10-12 13:45:26

by bibo, mao

[permalink] [raw]
Subject: [patch 0/1]pat: remove redundant condition check

On file pat.c, if (start <= entry->start), it also means (start <
entry->end). This patch removes
redundant condition check.

Signed-off-by: [email protected]
thanks
bibo,mao

------------------------------------------------------
diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
index 2a50e0f..12cac5e 100644
--- a/arch/x86/mm/pat.c
+++ b/arch/x86/mm/pat.c
@@ -305,27 +305,6 @@ int reserve_memtype(u64 start, u64 end, unsigned
long req_type,
struct memtype, nd);
}
break;
- } else if (start < entry->end) { /* start > entry->start */
- err = chk_conflict(new, entry, new_type);
- if (!err) {
- dprintk("Overlap at 0x%Lx-0x%Lx\n",
- entry->start, entry->end);
- cached_entry = list_entry(entry->nd.prev,
- struct memtype, nd);
-
- /*
- * Move to right position in the linked
- * list to add this new entry
- */
- list_for_each_entry_continue(entry,
- &memtype_list, nd) {
- if (start <= entry->start) {
- where = entry->nd.prev;
- break;
- }
- }
- }
- break;
}
}


2008-10-13 18:55:16

by Pallipadi, Venkatesh

[permalink] [raw]
Subject: RE: [patch 0/1]pat: remove redundant condition check



>-----Original Message-----
>From: [email protected]
>[mailto:[email protected]] On Behalf Of bibo mao
>Sent: Sunday, October 12, 2008 6:45 AM
>To: [email protected]
>Cc: [email protected]
>Subject: [patch 0/1]pat: remove redundant condition check
>
>On file pat.c, if (start <= entry->start), it also means (start <
>entry->end). This patch removes
>redundant condition check.
>

No No.

start <= entry->start does mean start < entry->end
but
start <= entry->end does NOT mean start < entry->start

This 'else if' is to catch the cases where start < entry->end
and start > entry->start. Removing it will break the whole
logic of this function.

Thanks,
Venki

>Signed-off-by: [email protected]
>thanks
>bibo,mao
>
>------------------------------------------------------
>diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
>index 2a50e0f..12cac5e 100644
>--- a/arch/x86/mm/pat.c
>+++ b/arch/x86/mm/pat.c
>@@ -305,27 +305,6 @@ int reserve_memtype(u64 start, u64 end, unsigned
>long req_type,
> struct
>memtype, nd);
> }
> break;
>- } else if (start < entry->end) { /* start >
>entry->start */
>- err = chk_conflict(new, entry, new_type);
>- if (!err) {
>- dprintk("Overlap at 0x%Lx-0x%Lx\n",
>- entry->start, entry->end);
>- cached_entry =
>list_entry(entry->nd.prev,
>- struct
>memtype, nd);
>-
>- /*
>- * Move to right position in the linked
>- * list to add this new entry
>- */
>- list_for_each_entry_continue(entry,
>-
>&memtype_list, nd) {
>- if (start <= entry->start) {
>- where = entry->nd.prev;
>- break;
>- }
>- }
>- }
>- break;
> }
> }
>--
>To unsubscribe from this list: send the line "unsubscribe
>linux-kernel" in
>the body of a message to [email protected]
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at http://www.tux.org/lkml/
>