2015-06-04 02:19:48

by Wei Yang

[permalink] [raw]
Subject: [PATCH] x86, setup: code clean of e820_reserve_setup_data()

pa_data and found are highly related, so there is no need to set a found
flag.

This patch removes the found and just return when pa_data is NULL.

Signed-off-by: Wei Yang <[email protected]>
---
arch/x86/kernel/setup.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 0a2421c..b95e653 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -461,19 +461,18 @@ static void __init e820_reserve_setup_data(void)
{
struct setup_data *data;
u64 pa_data;
- int found = 0;

pa_data = boot_params.hdr.setup_data;
+ if (!pa_data)
+ return;
+
while (pa_data) {
data = early_memremap(pa_data, sizeof(*data));
e820_update_range(pa_data, sizeof(*data)+data->len,
E820_RAM, E820_RESERVED_KERN);
- found = 1;
pa_data = data->next;
early_iounmap(data, sizeof(*data));
}
- if (!found)
- return;

sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
memcpy(&e820_saved, &e820, sizeof(struct e820map));
--
1.7.9.5


2015-06-04 05:42:52

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] x86, setup: code clean of e820_reserve_setup_data()


* Wei Yang <[email protected]> wrote:

> pa_data and found are highly related, so there is no need to set a found
> flag.
>
> This patch removes the found and just return when pa_data is NULL.
>
> Signed-off-by: Wei Yang <[email protected]>
> ---
> arch/x86/kernel/setup.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
> index 0a2421c..b95e653 100644
> --- a/arch/x86/kernel/setup.c
> +++ b/arch/x86/kernel/setup.c
> @@ -461,19 +461,18 @@ static void __init e820_reserve_setup_data(void)
> {
> struct setup_data *data;
> u64 pa_data;
> - int found = 0;
>
> pa_data = boot_params.hdr.setup_data;
> + if (!pa_data)
> + return;
> +
> while (pa_data) {
> data = early_memremap(pa_data, sizeof(*data));
> e820_update_range(pa_data, sizeof(*data)+data->len,
> E820_RAM, E820_RESERVED_KERN);
> - found = 1;
> pa_data = data->next;
> early_iounmap(data, sizeof(*data));
> }
> - if (!found)
> - return;
>
> sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
> memcpy(&e820_saved, &e820, sizeof(struct e820map));

This patch does not apply to Linus's latest tree.

Thanks,

Ingo

2015-06-04 06:21:15

by Wei Yang

[permalink] [raw]
Subject: [PATCH] x86, setup: code clean of e820_reserve_setup_data()

pa_data and found are highly related, so there is no need to set a found
flag.

This patch removes the found and just return when pa_data is NULL.

Signed-off-by: Wei Yang <[email protected]>
---
arch/x86/kernel/setup.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index d74ac33..c3992c3 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -461,19 +461,18 @@ static void __init e820_reserve_setup_data(void)
{
struct setup_data *data;
u64 pa_data;
- int found = 0;

pa_data = boot_params.hdr.setup_data;
+ if (!pa_data)
+ return;
+
while (pa_data) {
data = early_memremap(pa_data, sizeof(*data));
e820_update_range(pa_data, sizeof(*data)+data->len,
E820_RAM, E820_RESERVED_KERN);
- found = 1;
pa_data = data->next;
early_memunmap(data, sizeof(*data));
}
- if (!found)
- return;

sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
memcpy(&e820_saved, &e820, sizeof(struct e820map));
--
1.7.9.5

2015-06-04 07:09:35

by Wei Yang

[permalink] [raw]
Subject: Re: [PATCH] x86, setup: code clean of e820_reserve_setup_data()

On Thu, Jun 04, 2015 at 07:42:38AM +0200, Ingo Molnar wrote:
>
>* Wei Yang <[email protected]> wrote:
>
>> pa_data and found are highly related, so there is no need to set a found
>> flag.
>>
>> This patch removes the found and just return when pa_data is NULL.
>>
>> Signed-off-by: Wei Yang <[email protected]>
>> ---
>> arch/x86/kernel/setup.c | 7 +++----
>> 1 file changed, 3 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
>> index 0a2421c..b95e653 100644
>> --- a/arch/x86/kernel/setup.c
>> +++ b/arch/x86/kernel/setup.c
>> @@ -461,19 +461,18 @@ static void __init e820_reserve_setup_data(void)
>> {
>> struct setup_data *data;
>> u64 pa_data;
>> - int found = 0;
>>
>> pa_data = boot_params.hdr.setup_data;
>> + if (!pa_data)
>> + return;
>> +
>> while (pa_data) {
>> data = early_memremap(pa_data, sizeof(*data));
>> e820_update_range(pa_data, sizeof(*data)+data->len,
>> E820_RAM, E820_RESERVED_KERN);
>> - found = 1;
>> pa_data = data->next;
>> early_iounmap(data, sizeof(*data));
>> }
>> - if (!found)
>> - return;
>>
>> sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
>> memcpy(&e820_saved, &e820, sizeof(struct e820map));
>
>This patch does not apply to Linus's latest tree.

Thanks Ingo.

Rebased on top of v4.1-rc6.

>
>Thanks,
>
> Ingo

--
Richard Yang
Help you, Help me

Subject: [tip:x86/boot] x86/boot/setup: Clean up the e820_reserve_setup_data() code

Commit-ID: f2af7d25b4aa5b01203cc76e7530ea7fd18864a0
Gitweb: http://git.kernel.org/tip/f2af7d25b4aa5b01203cc76e7530ea7fd18864a0
Author: Wei Yang <[email protected]>
AuthorDate: Thu, 4 Jun 2015 14:18:49 +0800
Committer: Ingo Molnar <[email protected]>
CommitDate: Fri, 5 Jun 2015 13:53:22 +0200

x86/boot/setup: Clean up the e820_reserve_setup_data() code

Deobfuscate the 'found' logic, it can be replaced with a simple:

if (!pa_data)
return;

and 'found' can be eliminated.

Signed-off-by: Wei Yang <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: Borislav Petkov <[email protected]>
Cc: H. Peter Anvin <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: Yinghai Lu <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
---
arch/x86/kernel/setup.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index d74ac33..c3992c3 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -461,19 +461,18 @@ static void __init e820_reserve_setup_data(void)
{
struct setup_data *data;
u64 pa_data;
- int found = 0;

pa_data = boot_params.hdr.setup_data;
+ if (!pa_data)
+ return;
+
while (pa_data) {
data = early_memremap(pa_data, sizeof(*data));
e820_update_range(pa_data, sizeof(*data)+data->len,
E820_RAM, E820_RESERVED_KERN);
- found = 1;
pa_data = data->next;
early_memunmap(data, sizeof(*data));
}
- if (!found)
- return;

sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
memcpy(&e820_saved, &e820, sizeof(struct e820map));