2014-03-31 13:16:49

by Chen Gang

[permalink] [raw]
Subject: [PATCH] fs/ext4/extents_status.c: fix 64-bit number truncation bug

'0x7FDEADBEEF' will be truncated to 32-bit number under unicore32. Need
append 'ULL' for it.

The related warning (with allmodconfig under unicore32):

CC [M] fs/ext4/extents_status.o
fs/ext4/extents_status.c: In function ?__es_remove_extent?:
fs/ext4/extents_status.c:813: warning: integer constant is too large for ?long? type


Signed-off-by: Chen Gang <[email protected]>
---
fs/ext4/extents_status.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ext4/extents_status.c b/fs/ext4/extents_status.c
index 0a014a7..0ebc212 100644
--- a/fs/ext4/extents_status.c
+++ b/fs/ext4/extents_status.c
@@ -810,7 +810,7 @@ retry:

newes.es_lblk = end + 1;
newes.es_len = len2;
- block = 0x7FDEADBEEF;
+ block = 0x7FDEADBEEFULL;
if (ext4_es_is_written(&orig_es) ||
ext4_es_is_unwritten(&orig_es))
block = ext4_es_pblock(&orig_es) +
--
1.7.9.5


2014-04-04 09:18:58

by Chen Gang

[permalink] [raw]
Subject: Re: [PATCH] fs/ext4/extents_status.c: fix 64-bit number truncation bug

Hello Maintains:

Please help check this patch, when you have time, thanks.


On 03/31/2014 09:16 PM, Chen Gang wrote:
> '0x7FDEADBEEF' will be truncated to 32-bit number under unicore32. Need
> append 'ULL' for it.
>
> The related warning (with allmodconfig under unicore32):
>
> CC [M] fs/ext4/extents_status.o
> fs/ext4/extents_status.c: In function ?__es_remove_extent?:
> fs/ext4/extents_status.c:813: warning: integer constant is too large for ?long? type
>
>
> Signed-off-by: Chen Gang <[email protected]>
> ---
> fs/ext4/extents_status.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ext4/extents_status.c b/fs/ext4/extents_status.c
> index 0a014a7..0ebc212 100644
> --- a/fs/ext4/extents_status.c
> +++ b/fs/ext4/extents_status.c
> @@ -810,7 +810,7 @@ retry:
>
> newes.es_lblk = end + 1;
> newes.es_len = len2;
> - block = 0x7FDEADBEEF;
> + block = 0x7FDEADBEEFULL;
> if (ext4_es_is_written(&orig_es) ||
> ext4_es_is_unwritten(&orig_es))
> block = ext4_es_pblock(&orig_es) +
>

--
Chen Gang

Open, share, and attitude like air, water, and life which God blessed

2014-04-06 13:39:09

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH] fs/ext4/extents_status.c: fix 64-bit number truncation bug

On Mon, Mar 31, 2014 at 3:16 PM, Chen Gang <[email protected]> wrote:
> '0x7FDEADBEEF' will be truncated to 32-bit number under unicore32. Need
> append 'ULL' for it.
>
> The related warning (with allmodconfig under unicore32):
>
> CC [M] fs/ext4/extents_status.o
> fs/ext4/extents_status.c: In function ‘__es_remove_extent’:
> fs/ext4/extents_status.c:813: warning: integer constant is too large for ‘long’ type

Thanks! This is failing on all 32-bit architectures.

> Signed-off-by: Chen Gang <[email protected]>

Acked-by: Geert Uytterhoeven <[email protected]>

> ---
> fs/ext4/extents_status.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ext4/extents_status.c b/fs/ext4/extents_status.c
> index 0a014a7..0ebc212 100644
> --- a/fs/ext4/extents_status.c
> +++ b/fs/ext4/extents_status.c
> @@ -810,7 +810,7 @@ retry:
>
> newes.es_lblk = end + 1;
> newes.es_len = len2;
> - block = 0x7FDEADBEEF;
> + block = 0x7FDEADBEEFULL;
> if (ext4_es_is_written(&orig_es) ||
> ext4_es_is_unwritten(&orig_es))
> block = ext4_es_pblock(&orig_es) +

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2014-04-06 23:58:23

by Chen Gang

[permalink] [raw]
Subject: Re: [PATCH] fs/ext4/extents_status.c: fix 64-bit number truncation bug


On 04/06/2014 09:39 PM, Geert Uytterhoeven wrote:
> On Mon, Mar 31, 2014 at 3:16 PM, Chen Gang <[email protected]> wrote:
>> '0x7FDEADBEEF' will be truncated to 32-bit number under unicore32. Need
>> append 'ULL' for it.
>>
>> The related warning (with allmodconfig under unicore32):
>>
>> CC [M] fs/ext4/extents_status.o
>> fs/ext4/extents_status.c: In function ‘__es_remove_extent’:
>> fs/ext4/extents_status.c:813: warning: integer constant is too large for ‘long’ type
>
> Thanks! This is failing on all 32-bit architectures.
>

Yeah.

>> Signed-off-by: Chen Gang <[email protected]>
>
> Acked-by: Geert Uytterhoeven <[email protected]>
>
[...]

Thank you very much!

I will/should continue, and try to finish unicore32 within this month
(although, excuse me, in this week and next week, I will have no much
free time on open source).


Thanks.
--
Chen Gang

Open, share, and attitude like air, water, and life which God blessed

2014-04-07 04:14:41

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH] fs/ext4/extents_status.c: fix 64-bit number truncation bug

On Sun, Apr 06, 2014 at 03:39:09PM +0200, Geert Uytterhoeven wrote:
> On Mon, Mar 31, 2014 at 3:16 PM, Chen Gang <[email protected]> wrote:
> > '0x7FDEADBEEF' will be truncated to 32-bit number under unicore32. Need
> > append 'ULL' for it.
> >
> > The related warning (with allmodconfig under unicore32):
> >
> > CC [M] fs/ext4/extents_status.o
> > fs/ext4/extents_status.c: In function ‘__es_remove_extent’:
> > fs/ext4/extents_status.c:813: warning: integer constant is too large for ‘long’ type
>
> Thanks! This is failing on all 32-bit architectures.

Yes, it's harmless (since we don't actually check the value anywhere;
this is just so humans could easily spot bugs when debugging), but
I'll make sure this gets queued for 3.15 fixes in the ext4 tree.

Thanks!!

Signed-off-by: "Theodore Ts'o" <[email protected]>

- Ted

2014-04-07 05:00:23

by Chen Gang

[permalink] [raw]
Subject: Re: [PATCH] fs/ext4/extents_status.c: fix 64-bit number truncation bug


On 04/07/2014 12:14 PM, Theodore Ts'o wrote:
> On Sun, Apr 06, 2014 at 03:39:09PM +0200, Geert Uytterhoeven wrote:
>> On Mon, Mar 31, 2014 at 3:16 PM, Chen Gang <[email protected]> wrote:
>>> '0x7FDEADBEEF' will be truncated to 32-bit number under unicore32. Need
>>> append 'ULL' for it.
>>>
>>> The related warning (with allmodconfig under unicore32):
>>>
>>> CC [M] fs/ext4/extents_status.o
>>> fs/ext4/extents_status.c: In function ‘__es_remove_extent’:
>>> fs/ext4/extents_status.c:813: warning: integer constant is too large for ‘long’ type
>>
>> Thanks! This is failing on all 32-bit architectures.
>
> Yes, it's harmless (since we don't actually check the value anywhere;
> this is just so humans could easily spot bugs when debugging), but
> I'll make sure this gets queued for 3.15 fixes in the ext4 tree.
>
> Thanks!!
>

OK, thanks. Also thank for the related Application usage information.

Next, in open source, welcome to provide related Application usage
information, when review my patches. It will be useful to evaluate my
contributions (at least, it can let myself more clearer).

It will also be useful to me (in fact, for most of my patches, I am not
familiar with the related Application's usage case).


Thanks.
--
Chen Gang

Open, share, and attitude like air, water, and life which God blessed