2008-02-10 20:16:22

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 8/8] : Use FIELD_SIZEOF

From: Julia Lawall <[email protected]>

Robert P.J. Day proposed to use the macro FIELD_SIZEOF in replace of code
that matches its definition.

The modification was made using the following semantic patch
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@haskernel@
@@

#include <linux/kernel.h>

@depends on haskernel@
type t;
identifier f;
@@

- (sizeof(((t*)0)->f))
+ FIELD_SIZEOF(t, f)

@depends on haskernel@
type t;
identifier f;
@@

- sizeof(((t*)0)->f)
+ FIELD_SIZEOF(t, f)
// </smpl>

Signed-off-by: Julia Lawall <[email protected]>

---

diff -u -p a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h
--- a/include/net/sctp/sctp.h 2008-02-10 17:13:55.000000000 +0100
+++ b/include/net/sctp/sctp.h 2008-02-10 18:27:30.000000000 +0100
@@ -618,7 +618,7 @@ static inline int param_type2af(__be16 t
static inline int sctp_sanity_check(void)
{
SCTP_ASSERT(sizeof(struct sctp_ulpevent) <=
- sizeof(((struct sk_buff *)0)->cb),
+ FIELD_SIZEOF(struct sk_buff, cb),
"SCTP: ulpevent does not fit in skb!\n", return 0);

return 1;


2008-02-10 21:13:19

by Alexey Dobriyan

[permalink] [raw]
Subject: Re: [PATCH 8/8] : Use FIELD_SIZEOF

On Sun, Feb 10, 2008 at 09:16:04PM +0100, Julia Lawall wrote:
> --- a/include/net/sctp/sctp.h
> +++ b/include/net/sctp/sctp.h
> @@ -618,7 +618,7 @@ static inline int param_type2af(__be16 t
> static inline int sctp_sanity_check(void)
> {
> SCTP_ASSERT(sizeof(struct sctp_ulpevent) <=
> - sizeof(((struct sk_buff *)0)->cb),
> + FIELD_SIZEOF(struct sk_buff, cb),
> "SCTP: ulpevent does not fit in skb!\n", return 0);
>
> return 1;

Same here. Use BUILD_BUG_ON instead.

2008-02-11 02:24:24

by Vlad Yasevich

[permalink] [raw]
Subject: Re: [Lksctp-developers] [PATCH 8/8] : Use FIELD_SIZEOF

Alexey Dobriyan wrote:
> On Sun, Feb 10, 2008 at 09:16:04PM +0100, Julia Lawall wrote:
>> --- a/include/net/sctp/sctp.h
>> +++ b/include/net/sctp/sctp.h
>> @@ -618,7 +618,7 @@ static inline int param_type2af(__be16 t
>> static inline int sctp_sanity_check(void)
>> {
>> SCTP_ASSERT(sizeof(struct sctp_ulpevent) <=
>> - sizeof(((struct sk_buff *)0)->cb),
>> + FIELD_SIZEOF(struct sk_buff, cb),
>> "SCTP: ulpevent does not fit in skb!\n", return 0);
>>
>> return 1;
>
> Same here. Use BUILD_BUG_ON instead.

Ack. BUILD_BUG_ON is definitely appropriate here, especially considering
that SCTP_ASSERT compiles to nothing with debugging turned off.

-vlad

>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Lksctp-developers mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/lksctp-developers
>