2015-06-19 03:23:37

by Vaishali Thakkar

[permalink] [raw]
Subject: [PATCH] aoe: Convert use of __constant_htons to htons

In little endian cases, the macro htons unfolds to __swab16 which
provides special case for constants. In big endian cases,
__constant_htons and htons expand directly to the same expression.
So, replace __constant_htons with htons with the goal of getting
rid of the definition of __constant_htons completely.

The semantic patch that performs this transformation is as follows:

@@expression x;@@

- __constant_htons(x)
+ htons(x)

Signed-off-by: Vaishali Thakkar <[email protected]>
---
drivers/block/aoe/aoenet.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/block/aoe/aoenet.c b/drivers/block/aoe/aoenet.c
index 63773a9..78ff47a 100644
--- a/drivers/block/aoe/aoenet.c
+++ b/drivers/block/aoe/aoenet.c
@@ -192,7 +192,7 @@ exit:
}

static struct packet_type aoe_pt __read_mostly = {
- .type = __constant_htons(ETH_P_AOE),
+ .type = htons(ETH_P_AOE),
.func = aoenet_rcv,
};

--
1.9.1


2015-06-20 00:45:35

by Ed Cashin

[permalink] [raw]
Subject: Re: [PATCH] aoe: Convert use of __constant_htons to htons

OK. Thanks.

On 06/18/2015 11:23 PM, Vaishali Thakkar wrote:
> In little endian cases, the macro htons unfolds to __swab16 which
> provides special case for constants. In big endian cases,
> __constant_htons and htons expand directly to the same expression.
> So, replace __constant_htons with htons with the goal of getting
> rid of the definition of __constant_htons completely.
>
> The semantic patch that performs this transformation is as follows:
>
> @@expression x;@@
>
> - __constant_htons(x)
> + htons(x)
>
> Signed-off-by: Vaishali Thakkar <[email protected]>
> ---
> drivers/block/aoe/aoenet.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/block/aoe/aoenet.c b/drivers/block/aoe/aoenet.c
> index 63773a9..78ff47a 100644
> --- a/drivers/block/aoe/aoenet.c
> +++ b/drivers/block/aoe/aoenet.c
> @@ -192,7 +192,7 @@ exit:
> }
>
> static struct packet_type aoe_pt __read_mostly = {
> - .type = __constant_htons(ETH_P_AOE),
> + .type = htons(ETH_P_AOE),
> .func = aoenet_rcv,
> };
>