It is unnecessary to continue looping the list, if we find there is an
entry that the value of rating is smaller than the new one. It is safe
to be out the loop, because all of entry are inserted in descending
order.
Signed-off-by: Minfei Huang <[email protected]>
---
kernel/time/clocksource.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c
index 56ece14..6a5a310 100644
--- a/kernel/time/clocksource.c
+++ b/kernel/time/clocksource.c
@@ -669,10 +669,12 @@ static void clocksource_enqueue(struct clocksource *cs)
struct list_head *entry = &clocksource_list;
struct clocksource *tmp;
- list_for_each_entry(tmp, &clocksource_list, list)
+ list_for_each_entry(tmp, &clocksource_list, list) {
/* Keep track of the place, where to insert */
- if (tmp->rating >= cs->rating)
- entry = &tmp->list;
+ if (tmp->rating < cs->rating)
+ break;
+ entry = &tmp->list;
+ }
list_add(&cs->list, entry);
}
--
2.6.3
Ping.
Any comment is appreciate.
Thanks
Minfei
On 04/25/16 at 05:20P, Minfei Huang wrote:
> It is unnecessary to continue looping the list, if we find there is an
> entry that the value of rating is smaller than the new one. It is safe
> to be out the loop, because all of entry are inserted in descending
> order.
>
> Signed-off-by: Minfei Huang <[email protected]>
> ---
> kernel/time/clocksource.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c
> index 56ece14..6a5a310 100644
> --- a/kernel/time/clocksource.c
> +++ b/kernel/time/clocksource.c
> @@ -669,10 +669,12 @@ static void clocksource_enqueue(struct clocksource *cs)
> struct list_head *entry = &clocksource_list;
> struct clocksource *tmp;
>
> - list_for_each_entry(tmp, &clocksource_list, list)
> + list_for_each_entry(tmp, &clocksource_list, list) {
> /* Keep track of the place, where to insert */
> - if (tmp->rating >= cs->rating)
> - entry = &tmp->list;
> + if (tmp->rating < cs->rating)
> + break;
> + entry = &tmp->list;
> + }
> list_add(&cs->list, entry);
> }
>
> --
> 2.6.3
>